Firedrake: High Productivity, High Performance Simulation through Code Generation
Event Type
Focus Session
Parallel Applications
Programming Models & Languages
Scientific Software Development
TimeWednesday, June 19th8:40am - 9am CEST
LocationPanorama 1
DescriptionA critical challenge in the numerical solution of PDEs is that the mathematical route from equations to simulation comprises many steps, each of which demands a high degree of sophistication. Choice of equations and discretisation, implementation of local operators, global assembly and parallelisation, low-level code optimisation, solvers, preconditioners: each of these is a domain of expertise in its own right on which theses and books have been written. However the simulation developer necessarily has limited resources and can only be truly expert in some parts of this chain.

Firedrake addresses this challenge by modelling the finite element simulation creation process as a series of mathematical representations, and software which maps between them, automatically transforming the simulation problem from higher to lower mathematical abstractions until high performance compiled code is generated and executed. This makes every stage of the simulation process composable: users can benefit from advanced algorithms at every layer, and can change their choices without reimplementing. By tightly integrating with PETSc's composable solver interface, sophisticated nested preconditioners which create and solve the appropriate auxiliary differential operators on the fly can easily be created. This composable infrastructure yields a step-change in productivity for users, who become able to create sophisticated optimised PDE solvers much more efficiently than is otherwise possible.