Computational Modelling Group

Seminar  27th November 2014 2 p.m.  176/2013

Solving partial differential equations using the finite element method efficiently and productively with Firedrake and PyOP2

Dr Florian Rathgeber

ARCHER, Computer Science, CUDA, Finite elements, GPU, GPU-libs, HPC, Linux, Multi-core, Multi-physics, NGCM, OpenCL, PETSc, Python, Software Engineering
Susanne Ufermann Fangohr

Firedrake - a high-level framework for solving partial differential equations using the finite element method.


In this talk I will give an overview of my PhD research in computational science at Imperial College London before joining ECMWF, which involved designing and implementing a two-layer domain-specific framework for the efficient solution of partial differential equations from a high-level problem specification. I will present Firedrake, a high-level framework for solving partial differential equations using the finite element method, built on top of PyOP2, a domain-specific language embedded in Python for parallel mesh-based computations. I am going to highlight characteristic features that differentiate this tool chain from existing solutions, reflect on the process of designing and implementing the framework and discuss some lessons learnt in running an academic open source software project.

Firedrake allows scientists to describe variational forms and discretisations for linear and non-linear finite element problems symbolically, in a notation very close to their mathematical models. PyOP2 abstracts the performance-portable parallel execution of local computations over the mesh on a range of hardware architectures, targeting multi-core CPUs, GPUs and accelerators. Thereby, a separation of concerns is achieved, in which Firedrake encapsulates domain knowledge about the finite element method separately from its efficient parallel execution in PyOP2, which in turn is completely agnostic to the higher abstraction layer.

As a consequence of the composability of those abstractions, optimised implementations for different hardware architectures can be automatically generated without any changes to a single high-level source. Performance matches or exceeds what is realistically attainable by hand-written code. Firedrake and PyOP2 are combined to form a tool chain that is demonstrated to be competitive with or faster than available alternatives on a wide range of different finite element problems.


Florian is a Computational Scientist at the European Centre for Medium-range Weather Forecast, working on the performance optimisation of ECMWF's product generation as part of the Scalability Programme. He did a PhD in the Software Performance Optimisation group at the Department of Computing, Imperial College London. As part of his PhD research, he was one of the main developers of the PyOP2 framework for performance-portable unstructured mesh-based computations and the Firedrake framework for portable finite element computations.


This seminar presentation will be held at Boldrewood Innovation Campus, Building 176, in room 2013.

Location of campus (10 minutes on foot from Highfield Campus):

Campus location

Location of building 176 and entrance:

Map of Boldrewood Campus