English

COFFEE: an Optimizing Compiler for Finite Element Local Assembly

Mathematical Software 2017-05-11 v2 Computational Engineering, Finance, and Science Performance

Abstract

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.

Keywords

Cite

@article{arxiv.1407.0904,
  title  = {COFFEE: an Optimizing Compiler for Finite Element Local Assembly},
  author = {Fabio Luporini and Ana Lucia Varbanescu and Florian Rathgeber and Gheorghe-Teodor Bercea and J. Ramanujam and David A. Ham and Paul H. J. Kelly},
  journal= {arXiv preprint arXiv:1407.0904},
  year   = {2017}
}

Comments

Remove volume metadata

R2 v1 2026-06-22T04:54:23.538Z