COFFEE is a COmpiler For Fast Expression Evaluation. Given mathematical expressions embedded in a loop nest, COFFEE can be driven in the application of two classes of transformations: Expression rewriting, for flops minimisation. A small set of rewrite operators, such as expansion, factorization, and generalized code motion, can be composed with the aim of reducing the operation count. Code specialisation, to maximise the impact of low level optimisation. For example, COFFEE can analyse the arrays, loops, and memory access pattern in a kernel, and then autonomously decide on the application of padding and data alignment, a transformation for enhancing the effectiveness of compiler auto-vectorisation. COFFEE is currently used in Firedrake, an automated system for the solution of partial differential equations using the finite element method. An optimisation pipeline in COFFEE was designed to exploit a fundamental mathematical property of finite element integration kernels, namely linearity of operators in test and trial functions.

References in zbMATH (referenced in 18 articles )

Showing results 1 to 18 of 18.
Sorted by year (citations)

  1. Luporini, Fabio; Lange, Michael; Jacobs, Christian T.; Gorman, Gerard J.; Ramanujam, J.; Kelly, Paul H. J.: Automated tiling of unstructured mesh computations with application to seismological modeling (2019)
  2. Ovchinnikov, George V.; Zorin, Denis; Oseledets, Ivan V.: Robust regularization of topology optimization problems with \textitaposteriori error estimators (2019)
  3. Budd, Chris J.; McRae, Andrew T. T.; Cotter, Colin J.: The scaling and skewness of optimally transported meshes on the sphere (2018)
  4. Chang, Justin; Fabien, Maurice S.; Knepley, Matthew G.; Mills, Richard T.: Comparative study of finite element methods using the time-accuracy-size (TAS) spectrum analysis (2018)
  5. Homolya, Miklós; Mitchell, Lawrence; Luporini, Fabio; Ham, David A.: TSFC: a structure-preserving form compiler (2018)
  6. Kirby, Robert C.: A general approach to transforming finite elements (2018)
  7. Mapakshi, N. K.; Chang, J.; Nakshatrala, K. B.: A scalable variational inequality approach for flow through porous media models with pressure-dependent viscosity (2018)
  8. McRae, Andrew T. T.; Cotter, Colin J.; Budd, Chris J.: Optimal-transport -- based mesh adaptivity on the plane and sphere using finite elements (2018)
  9. Paganini, Alberto; Wechsung, Florian; Farrell, Patrick E.: Higher-order moving mesh methods for PDE-constrained shape optimization (2018)
  10. Pikle, Nileshchandra K.; Sathe, Shailesh R.; Vyavhare, Arvind Y.: GPGPU-based parallel computing applied in the FEM using the conjugate gradient algorithm: a review (2018)
  11. Shipton, J.; Gibson, T. H.; Cotter, C. J.: Higher-order compatible finite element schemes for the nonlinear rotating shallow water equations on the sphere (2018)
  12. Chang, J.; Nakshatrala, K. B.: Variational inequality approach to enforcing the non-negative constraint for advection-diffusion equations (2017)
  13. Luporini, Fabio; Ham, David A.; Kelly, Paul H. J.: An algorithm for the optimization of finite element integration loops (2017)
  14. Miklos Homolya, Lawrence Mitchell, Fabio Luporini, David A. Ham: TSFC: a structure-preserving form compiler (2017) arXiv
  15. Rathgeber, Florian; Ham, David A.; Mitchell, Lawrence; Lange, Michael; Luporini, Fabio; Mcrae, Andrew T. T.; Bercea, Gheorghe-Teodor; Markall, Graham R.; Kelly, Paul H. J.: Firedrake, automating the finite element method by composing abstractions (2017)
  16. Robert C. Kirby, Lawrence Mitchell: Solver composition across the PDE/linear algebra barrier (2017) arXiv
  17. Mitchell, Lawrence; Müller, Eike Hermann: High level implementation of geometric multigrid solvers for finite element problems: applications in atmospheric modelling (2016)
  18. Fabio Luporini, Ana Lucia Varbanescu, Florian Rathgeber, Gheorghe-Teodor Bercea, J. Ramanujam, David A. Ham, Paul H.J. Kelly: COFFEE: an Optimizing Compiler for Finite Element Local Assembly (2014) arXiv