Role-Oriented Code Generation in an Engine for Solving Hyperbolic PDE Systems

Jean Matthieu Gallard, Lukas Krenz, Leonhard Rannabauer, Anne Reinarz, Michael Bader

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

1 Scopus citations

Abstract

The development of a high performance PDE solver requires the combined expertise of interdisciplinary teams with respect to application domain, numerical scheme and low-level optimization. In this paper, we present how the ExaHyPE engine facilitates the collaboration of such teams by isolating three roles: application, algorithms, and optimization expert. We thus support team members in letting them focus on their own area of expertise while integrating their contributions into an HPC production code. Inspired by web application development practices, ExaHyPE relies on two custom code generation modules, the Toolkit and the Kernel Generator, which follow a Model-View-Controller architectural pattern on top of the Jinja2 template engine library. Using Jinja2’s templates to abstract the critical components of the engine and generated glue code, we isolate the application development from the engine. The template language also allows us to define and use custom template macros that isolate low-level optimizations from the numerical scheme described in the templates. We present three use cases, each focusing on one of our user roles, showcasing how the design of the code generation modules allows to easily expand the solver schemes to support novel demands from applications, to add optimized algorithmic schemes (with reduced memory footprint, e.g.), or provide improved low-level SIMD vectorization support.

Original languageEnglish
Title of host publicationTools and Techniques for High Performance Computing - Selected Workshops, HUST, SE-HER and WIHPC, held in Conjunction with SC 2019, Revised Selected Papers
EditorsGuido Juckeland, Sunita Chandrasekaran
PublisherSpringer
Pages111-128
Number of pages18
ISBN (Print)9783030447274
DOIs
StatePublished - 2020
Event6th Annual Workshop on HPC User Support Tools, HUST 2019, International Workshop on Software Engineering for HPC-Enabled Research, SE-HER 2019, and 3rd Workshop on Interactive High-Performance Computing, WIHPC 2019, held in conjunction with the International Conference for High Performance Computing, Networking, Storage, and Analysis, SC 2019 - Denver , United States
Duration: 17 Nov 201918 Nov 2019

Publication series

NameCommunications in Computer and Information Science
Volume1190 CCIS
ISSN (Print)1865-0929
ISSN (Electronic)1865-0937

Conference

Conference6th Annual Workshop on HPC User Support Tools, HUST 2019, International Workshop on Software Engineering for HPC-Enabled Research, SE-HER 2019, and 3rd Workshop on Interactive High-Performance Computing, WIHPC 2019, held in conjunction with the International Conference for High Performance Computing, Networking, Storage, and Analysis, SC 2019
Country/TerritoryUnited States
CityDenver
Period17/11/1918/11/19

Keywords

  • Code generation
  • ExaHyPE
  • High-order discontinuous Galerkin
  • Hyperbolic PDE systems
  • Jinja2
  • Model-View-Controller

Fingerprint

Dive into the research topics of 'Role-Oriented Code Generation in an Engine for Solving Hyperbolic PDE Systems'. Together they form a unique fingerprint.

Cite this