• 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.
Full list available at my Google scholar page


Available here.


WARNING: This sections is out of date. Just google my name or take a look at the presentations here


  • 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.


This 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.