- F. Luporini, M. Lange, M. Louboutin, N. Kukreja, J. Huckelheim, C. Yount, P. Witte, P. H. J. Kelly, G. J. Gorman, F. J. Herrmann. Architecture and performance of Devito, a system for automated stencil computation. Submitted to ACM Transactions on Mathematical Software (TOMS) during summer 2018.
- M. Louboutin, M. Lange, F. Luporini, N. Kukreja, P. A. Witte, F. J. Herrmann, P. Velesko, G. J. Gorman. Devito: an embedded domain-specific language for finite differences and geophysical exploration. Geoscientific Model Development, 2019.
- F. Luporini, M. Lange, C. T. Jacobs, G. J. Gorman, J. Ramanujam, P. H. J. Kelly. Automated Tiling of Unstructured Mesh Computations with Application to Seismological Modelling. ACM Transactions on Mathematical Software (TOMS), 2019.
- F. Luporini, D.A. Ham, P.H.J. Kelly. An algorithm for the optimization of finite element integration loops. ACM Transactions on Mathematical Software (TOMS), 2017.
- F. Rathgeber, D.A. Ham, L. Mitchell, M. Lange, F. Luporini, A.T.T. McRae, G.-T. Bercea, G.R. Markall, and P.H.J. Kelly. Firedrake: automating the finite element method by composing abstractions. ACM Transactions on Mathematical Software, 2016.
- F. Luporini, A.L. Varbanescu, F. Rathgeber, G.-T. Bercea, J. Ramanujam, D.A. Ham, and P.H.J. Kelly. Cross-Loop Optimization of Arithmetic Intensity for Finite Element Local Assembly. ACM Transactions on Architecture and Code Optimization (TACO), 2015; also appeared in HiPEAC 2015.
PHD THESISAvailable here.
SELECTED TALKSWARNING: This sections is out of date. Just google my name or take a look at the presentations here
- Vectorization and locality optimizations for seismic imaging methods through automated code generation. SIAM CSE 2017.
- An algorithm for the optimization of finite element integration loops. PRISM Workshop (Imperial College) 2016.
- Generating high performance finite element kernels using optimality criteria. SIAM PP 2016.
- Cross-loop Optimization of Arithmetic Intensity for Finite Element Local Assembly. HiPEAC (main track), 2015.
- Effective Resource-Driven Loop Splitting for Large Unstructured Mesh Applications on GPUs. HiStencils (at HiPEAC), 2015.
- Cross-loop Optimization of Arithmetic Intensity and Data Locality for Unstructured Mesh Applications. Oxford Many-core seminars, 2014.
- Optimization of Arithemtic Intensity for Finite Element Assembly. GungHo! 2014.
- COFFEE: an Optimizing Compiler for Fintie Element Local Assembly. FEniCS 2014.
- Generalised Sparse Tiling for Unstructured Mesh Computations in the OP2 Framework. CPC 2013.
- I'm the lead developer of Devito, a software to automatically generate optimized iterative methods based on (but not limited to) stencil computation. Our primary focus is finite differences for seismic inversion. In a typical seismic inversion operator solving a PDE is just one of the many necessary steps -- so, over time, Devito has evolved and become able to generate fairly arbitrary, sophisticated loop nests, including typical stencil updates, advanced boundary conditions, interpolation, tensor contractions, etc.
OTHER SOFTWAREThis is a list of software I've contributed to in the past, mostly during my PhD. Some of these are still active projects.
- I'm the author of COFFEE, a tool for optimising compute-intensive expressions embedded in (possibly non-perfect) loop nests. COFFEE is integrated with Firedrake -- an automated system for the solution of partial differential equations using the finite element method. COFFEE is/will be replaced by TSFC, although most of its optimizations and algorithms will remain the same -- just implemented at a higher level of abstraction.
- I also have developed SLOPE, a run-time system for fusing and tiling loops with indirect memory accesses (e.g., A[B[i]]). The library ships a Python interface that can be used for integration with scientific codes based on Python and run-time code generation. I integrated SLOPE with Firedrake.
- I'm one of the contributors of PyOP2, another key component of Firedrake. PyOP2 is responsible for applying numerical kernels over unstructured meshes.