COFFEE swMATH ID: 20274 Software Authors: Fabio Luporini, Ana Lucia Varbanescu, Florian Rathgeber, Gheorghe-Teodor Bercea, J. Ramanujam, David A. Ham, Paul H.J. Kelly Description: 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. Homepage: https://github.com/coneoproject/COFFEE Source Code: https://github.com/coneoproject/COFFEE Related Software: Firedrake; PETSc; TSFC; UFL; petsc4py; FEniCS; PyOP2; FIAT; FIAT; mpi4py; FFC; FInAT; deal.ii; chammp; hypre; FreeFem++; DMPlex; Python; SyFi; Gmsh Cited in: 20 Publications all top 5 Cited by 43 Authors 5 Cotter, Colin John 4 Chang, Justin 4 Ham, David A. 4 Luporini, Fabio 4 McRae, Andrew T. T. 4 Mitchell, Lawrence 3 Kelly, Paul H. J. 3 Nakshatrala, K. B. 2 Bercea, Gheorghe-Teodor 2 Budd, Christopher John 2 Knepley, Matthew G. 2 Lange, Michael 2 Wechsung, Florian 1 Bauer, Werner 1 Dubos, Thomas 1 Eldred, Christopher 1 Fabien, Maurice S. 1 Farrell, Patrick Emmet 1 Gibson, Thomas H. 1 Gorman, Gerard J. 1 Homolya, Miklós 1 Jacobs, Christian T. 1 Joshaghani, M. S. 1 Kirby, Robert C. 1 Kritsikis, Evaggelos 1 Mapakshi, N. K. 1 Markall, Graham R. 1 Mills, Richard Tran 1 Moulton, Derek E. 1 Müller, Eike Hermann 1 Oseledets, Ivan Valer’evich 1 Ovchinnikov, George V. 1 Paganini, Alberto 1 Pikle, Nileshchandra K. 1 Ramanujam, Jagannathan 1 Rathgeber, Florian 1 Sathe, Shailesh R. 1 Shipton, Jemma 1 Turney, B. W. 1 Vyavhare, Arvind Y. 1 Waters, Sarah Louise 1 Wimmer, Golo A. 1 Zorin, Denis N. all top 5 Cited in 8 Serials 7 Journal of Computational Physics 5 SIAM Journal on Scientific Computing 3 ACM Transactions on Mathematical Software 1 Computer Methods in Applied Mechanics and Engineering 1 Journal of Fluid Mechanics 1 Russian Journal of Numerical Analysis and Mathematical Modelling 1 Sādhanā 1 SMAI Journal of Computational Mathematics all top 5 Cited in 10 Fields 19 Numerical analysis (65-XX) 6 Fluid mechanics (76-XX) 6 Geophysics (86-XX) 3 Partial differential equations (35-XX) 1 Calculus of variations and optimal control; optimization (49-XX) 1 Global analysis, analysis on manifolds (58-XX) 1 Computer science (68-XX) 1 Mechanics of deformable solids (74-XX) 1 Classical thermodynamics, heat transfer (80-XX) 1 Operations research, mathematical programming (90-XX) Citations by Year