About
I have left Imperial College and moved to Hadean.
I was previously a research associate under the supervision of
Wayne Luk in the Custom Computing
research group. Before that, I was a member of the
Software Performance Optimisation research group under
the supervision of Paul Kelly.
My most recent research involved the simulation of chaotic
systems on FPGAs in the context of atmospheric
modelling.
Previous research involved the investigation of the
applicability of Domain Specific Languages to the quantum
chemistry package ONETEP.
Further details can be found in slides I've presented on
this work here.
Prior to that, I looked at the use of active libraries
in the context of optimising the finite element method.
The outcome of this work was a library, Excafé, that generated optimised C code for
performing finite element local assembly. This work was
presented at the
FEniCS'11 workshop.
Presentations
These are the slides I presented at the
FCCM 2015 conference. They
cover work exploring the implementation of chaotic
systems on FPGAs. Specifically, I look at the Lorenz'96
chaotic system and evaluate the power and performance
benefits to an FPGA system when the precision is reduced.
Due to the chaotic nature of the system, we can reduce
precision further than we might otherwise be able, since
we do not have to match the behaviour of a reference
implementation to produce valid results.
These are the slides I presented at the June 2013 PSL
(Particle Science Language) project meeting. They discuss
my work on improving the performance of the Fourier
interpolation of 3D datasets. This is a
performance-critical kernel in the linear-scaling quantum
chemistry application
ONETEP.
These are the slides I presented at the
FEniCS'11 workshop on using symbolic algebra to
reduce the operation count of local assembly in the
finite element method. More information on the library
developed to explore these techniques, Excafé, can be
found
here.
These are a slightly updated version of the slides that
were presented at my 4th year MEng individual project
presentation.
Publications
Bartosz D. Wozniak, Freddie D. Witherden, Francis P. Russell,
Peter E. Vincent and Paul H. J. Kelly. Computer Physics
Communications, Volume 202, May 2016, Pages 12-22.
Peter D. Düben, Francis P. Russell, Xinyu Niu, Wayne Luk
and T. N. Palmer. Journal of Advances in Modelling Earth
Systems, Volume 7, Pages 1393-1408, August 2015.
Francis P. Russell, Peter D. Düben, Xinyu Niu, Wayne Luk
and T. N. Palmer. 2015 IEEE 23rd Annual International
Symposium on Field-Programmable Custom Computing Machines
(FCCM), Pages 171-178, May 2015.
Doru Thom Popovici, Francis P. Russell, Karl Wilkinson,
Chris-Kriton Skylaris, Paul H. J. Kelly and Franz
Franchetti. Parallel and Distributed Processing Symposium
(IPDPS), 2015 IEEE International, May 2015, Pages
743-752.
Francis P. Russell, Karl Wilkinson, Paul H. J. Kelly and
Chris-Kriton Skylaris. Computer Physics Communications.
Volume 187, February 2015, Pages 8-19. Available online 7
October 2014.
Francis P. Russell and Paul H. J. Kelly. ACM Transactions
on Mathematical Software. Volume 39, Issue 4, July 2013,
Article 26.
Pre-print.
Francis P. Russell, Michael R. Mellor, Paul H. J. Kelly
and Olav Beckmann. Science of Computer Programming,
Volume 76, Issue 4, April 2011, pp. 227-242.
Accepted Author
Manuscript.
Francis P. Russell, Michael R. Mellor, Paul H. J. Kelly
and Olav Beckmann. In Proceedings of the Second
International Workshop on Library-Centric Software Design
(LCSD'06), pp. 5-13.
Reports
In this thesis, I explore an approach called "active
libraries". These are libraries that take part in their
own optimisation, enabling both high-performance code and
the presentation of intuitive abstractions.
I investigate the use of active libraries in two
domains. Firstly, dense and sparse linear algebra,
particularly, the solution of linear systems of
equations. Secondly, the specification and solution of
finite element problems.
Extending my earlier (MEng) thesis work, I describe
the modifications to my linear algebra library "DESOLA"
required to perform sparse-matrix code generation. I show
that optimisations easily applied in the dense case using
code-transformation must be applied at a higher level of
abstraction in the sparse case. I present performance
results for sparse linear system solvers generated using
DESOLA and compare against an implementation using the
Intel Math Kernel Library. I also present improved dense
linear-algebra performance results.
Next, I explore the active-library approach by
developing a finite element library that captures runtime
representations of basis functions, variational forms and
sequences of operations between discretised operators and
fields. Using captured representations of variational
forms and basis functions, I demonstrate optimisations to
cell-local integral assembly that this approach enables,
and compare against the state of the art.
As part of my work on optimising local assembly, I
extend the work of Hosangadi et al. on common
sub-expression elimination and factorisation of
polynomials. I improve the weight function presented by
Hosangadi et al., increasing the number of factorisations
found. I present an implementation of an optimised
branch-and-bound algorithm inspired by reformulating the
original matrix-covering problem as a maximal graph
biclique search problem. I evaluate the algorithm's
effectiveness on the expressions generated by our finite
element solver.
This is the project report for my 4th year MEng
individual project. It describes a C++ numerical library
that delays evaluation of the calls made to it. When the
results of the computation are required, optimised code
is generated at runtime to perform the delayed
operations.
This is the project report from my 3rd year group
project. The project was an experiment with a filesystem
where files are identified by metadata rather than
filenames. This makes the filesystem usage similar to
that of a database.
Views can be defined on the filesystem filtering on
selection criteria. These views are notified when
changes, addition or removal of files alter the results.
Many tasks become easier under such a system. Music
players no longer need to search and index media folders.
They can just create a view containing all music files,
retrieve any metadata through the view and be notified of
all changes.