Florian Rathgeber1, Graham Markall1, Lawrence Mitchell3, Nicolas Loriant1, David Ham1,2, Paul Kelly1
Slides from my talk at CPC 2013, June 3-5, Lyon, France.
Contact: Florian Rathgeber, @frathgeber
We present a tool chain for the fully automated synthesis of performance-portable finite-element solvers for multicore and GPGPU platforms from high-level specifications. Our runtime code generation and just-in-time compilation pathway takes finite-element forms in the domain-specific language UFL to low-level code. Automatically generated finite-element assembly kernels are passed to PyOP2, a domain-specific language for mesh-based simulation codes, which acts as an intermediate abstraction layer for executing the numerical kernels in parallel over an unstructured mesh. Easy integration of our tool chain allows transparently adding performance portability to existing simulation codes.
All the code is open source under BSD or LGPLv3 license
https://bitbucket.org/mapdes/ffc
https://code.launchpad.net/~fluidity-core/fluidity/firedrake