Firedrake: the architecture of a compiler that automates the finite element method
- 11:00 6th November 2019 ( Michaelmas Term 2019 )Lecture Theatre B, Department of Computer Science, Wolfson Building, Parks Road, Oxford OX1 3QD
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 (https://www.firedrakeproject.org/).
Bio: I lead the Software Performance Optimisation group within the Department of Computing, which in turn is part of the Programming Languages and Systems research section. I am co-Director of Imperial's Centre for Computational Methods in Science and Engineering, and also Director of Industrial Liaison for our Centre for Doctoral Training in High-performance Embedded and Distributed Systems (HiPEDS).
While I have worked in many areas of computer systems, the core of my current work is compiler technology. Much of my work aims to push the frontiers of compiler research through moving up the "food chain" - exploiting properties and opportunities special to particular classes of application. This has led me to engage deeply with collaborators in finite element methods, and computer vision.