Code generation for productive portable scalable finite element simulation in Firedrake
Jack D. Betteridge, Patrick E. Farrell, David A. Ham

TL;DR
This paper presents a code generation approach from a high-level Python interface that simplifies creating scalable, high-performance PDE simulations adaptable to different hardware and application requirements with minimal development effort.
Contribution
It introduces a method to generate simulation code from high-level Python, enabling easy adaptation to various hardware and application-specific algorithmic changes.
Findings
Code generation enables scalable performance across supercomputers.
Minimal user code required for high-performance PDE simulations.
Facilitates adaptation to different hardware and application needs.
Abstract
Creating scalable, high performance PDE-based simulations requires a suitable combination of discretizations, differential operators, preconditioners and solvers. The required combination changes with the application and with the available hardware, yet software development time is a severely limited resource for most scientists and engineers. Here we demonstrate that generating simulation code from a high-level Python interface provides an effective mechanism for creating high performance simulations from very few lines of user code. We demonstrate that moving from one supercomputer to another can require significant algorithmic changes to achieve scalable performance, but that the code generation approach enables these algorithmic changes to be achieved with minimal development effort.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsComputational Geometry and Mesh Generation · Simulation and Modeling Applications · Innovations in Concrete and Construction Materials
