ICSA Colloquium Talk - 18/11/2019

Talk Title

Firedrake: the architecture of a compiler that automates the finite element method


Firedrake is a tool for automating the numerical solution of partial differential equations.  It has a growing community of users, particularly in geophysical flows, for weather, climate and tidal energy.   Firedrake adopts a domain-specific language, UFL, from the FEniCS project, but with a pure Python runtime-only implementation centred on the composition of several existing and new abstractions for particular aspects of scientific computing. The result is a separation of concerns which eases the incorporation of separate contributions from computer scientists, numerical analysts and application specialists.  Firedrake’s generated code achieves a high fraction of the peak performance of laptop and supercomputer processors. This talk is a reflection on some of our experience in building Firedrake, focusing on compiler architecture – the design of the intermediate representations to deliver optimisations at the level at which they look easy.  Firedrake is the work of an interdisciplinary team including Florian Rathgeber, David A. Ham, Lawrence Mitchell, Michael Lange, Fabio Luporini, Andrew T. T. McRae, Gheorghe-Teodor Bercea, Graham R. Markall, Tianjiao Sun and Thomas Gibson 


Paul Kelly leads the Software Performance Optimisation Group at Imperial College London.  He graduated in Computer Science at UCL in 1983, and his PhD in parallel functional programming was completed in 1987.  He has worked on abstractions for parallel programming, compilers (pointer analysis, bounds checking), operating systems, cache coherency, and more recently on domain-specific optimisations – in computational science and robot vision.


Related Links

Firedrake Project

Paul Kelly



Nov 18 2019 -

ICSA Colloquium Talk - 18/11/2019

Paul Kelly (Software Performance Optimisation Group at Imperial College London)

5.10, Bayes Centre