Florian Rathgeber
Imperial College London
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Florian Rathgeber.
ACM Transactions on Mathematical Software | 2017
Florian Rathgeber; David A. Ham; Lawrence Mitchell; Fabio Luporini; Andrew T. T. McRae; Gheorghe-Teodor Bercea; Graham Markall; Paul H. J. Kelly
Firedrake is a new tool for automating the numerical solution of partial differential equations. Firedrake adopts the domain-specific language for the finite element method of 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 more complete separation of concerns which eases the incorporation of separate contributions from computer scientists, numerical analysts and application specialists. These contributions may add functionality, or improve performance. Firedrake benefits from automatically applying new optimisations. This includes factorising mixed function spaces, transforming and vectorising inner loops, and intrinsically supporting block matrix operations. Importantly, Firedrake presents a simple public API for escaping the UFL abstraction. This allows users to implement common operations that fall outside pure variational formulations, such as flux-limiters.
ieee international conference on high performance computing data and analytics | 2012
Florian Rathgeber; Graham Markall; Lawrence Mitchell; Nicolas Loriant; David A. Ham; Carlo Bertolli; Paul H. J. Kelly
Emerging many-core platforms are very difficult to program in a performance portable manner whilst achieving high efficiency on a diverse range of architectures. We present work in progress on PyOP2, a high-level embedded domain-specific language for mesh-based simulation codes that executes numerical kernels in parallel over unstructured meshes. Just-in-time kernel compilation and parallel scheduling are delayed until runtime, when problem-specific parameters are available. Using generative metaprogramming, performance portability is achieved, while details of the parallel implementation are abstracted from the programmer. PyOP2 kernels for finite element computations can be generated automatically from equations given in the domain-specific Unified Form Language. Interfacing to the multi-phase CFD code Fluidity through a very thin layer on top of PyOP2 yields a general purpose finite element solver with an input notation very close to mathematical formulae. Preliminary performance figures show speedups of up to 3.4× compared to Fluiditys built-in solvers when running in parallel.
ACM Transactions on Architecture and Code Optimization | 2015
Fabio Luporini; Ana Lucia Varbanescu; Florian Rathgeber; Gheorghe-Teodor Bercea; J. Ramanujam; David A. Ham; Paul H. J. Kelly
The numerical solution of partial differential equations using the finite element method is one of the key applications of high performance computing. Local assembly is its characteristic operation. This entails the execution of a problem-specific kernel to numerically evaluate an integral for each element in the discretized problem domain. Since the domain size can be huge, executing efficient kernels is fundamental. Their op- timization is, however, a challenging issue. Even though affine loop nests are generally present, the short trip counts and the complexity of mathematical expressions make it hard to determine a single or unique sequence of successful transformations. Therefore, we present the design and systematic evaluation of COF- FEE, a domain-specific compiler for local assembly kernels. COFFEE manipulates abstract syntax trees generated from a high-level domain-specific language for PDEs by introducing domain-aware composable optimizations aimed at improving instruction-level parallelism, especially SIMD vectorization, and register locality. It then generates C code including vector intrinsics. Experiments using a range of finite-element forms of increasing complexity show that significant performance improvement is achieved.
international supercomputing conference | 2013
Graham Markall; Florian Rathgeber; Lawrence Mitchell; Nicolas Loriant; Carlo Bertolli; David A. Ham; Paul H. J. Kelly
We describe a toolchain that provides a fully automated compilation pathway from a finite element domain-specific language to low-level code for multicore and GPGPU platforms. We demonstrate that the generated code exceeds the performance of the best available alternatives, without requiring manual tuning or modification of the generated code. The toolchain can easily be integrated with existing finite element solvers, providing a means to add performance portable methods without having to rebuild an entire complex implementation from scratch.
Archive | 2016
Florian Rathgeber; Hector Dearman; gbts; Gheorghe-Teodor Bercea; Kaho Sato; Simon W. Funke; Lawrence Mitchell; Miklós Homolya; Francis Russell; Christian T. Jacobs; David A. Ham; Andrew T. T. McRae; Graham Markall; Fabio Luporini
Archive | 2016
Fabio Luporini; Michael Lange; Francis Russell; Graham Markall; Miklós Homolya; Lawrence Mitchell; David A. Ham; Florian Rathgeber
Archive | 2016
Marie E. Rognes; Colin J. Cotter; Robert C. Kirby; Garth N. Wells; Anders Logg; Lizao Li; Johannes Ring; Jan Blechta; Miklós Homolya; Martin Sandve Alnæs; Nico Schlömer; David A. Ham; mliertzer; Aslak Bergersen; Andrew T. T. McRae; Florian Rathgeber; Lawrence Mitchell
Geoscientific Model Development | 2016
Gheorghe-Teodor Bercea; Andrew T. T. McRae; David A. Ham; Lawrence Mitchell; Florian Rathgeber; Luigi Nardi; Fabio Luporini; Paul H. J. Kelly
Archive | 2016
Lawrence Mitchell; Colin J. Cotter; Gheorghe-Teodor Bercea; Asbjørn Nilsen Riseth; Simon W. Funke; Graham Markall; Eike Hermann Mueller; Tuomas Kärnä; Patrick E. Farrell; Geordie McBain; Miklós Homolya; Henrik Büsing; Anna Kalogirou; Christian T. Jacobs; David A. Ham; Andrew T. T. McRae; Florian Rathgeber; Hannah Rittich; Stephan C. Kramer; Fabio Luporini
Geoscientific Model Development Discussions | 2016
Gheorghe-Teodor Bercea; Andrew T. T. McRae; David A. Ham; Lawrence Mitchell; Florian Rathgeber; Luigi Nardi; Fabio Luporini; Paul H. J. Kelly