Advanced Stencil-Code Engineering (ExaStencils)

ExaStencils Consortium

The ExaStencils consortium consists of five research groups at three locations:

Prog: Christian Lengauer (Chair of Programming, University of Passau)
SE: Sven Apel (Chair of Software Engineering, University of Passau)
LSS: Ulrich Rüde, Harald Köstler (Chair of System Simulation, Friedrich-Alexander University Erlangen-Nürnberg)
CoD: Jürgen Teich, Frank Hannig (Chair of Hardware-Software-Co-Design, Friedrich-Alexander University Erlangen-Nürnberg)
AAM: Matthias Bolten (Group of Analysis and Applied Mathematics, University of Kassel)
Meta: Shigeru Chiba (Group of Metaprogramming, The University of Tokyo)

Project Description

The central goal of ExaStencils is to develop a radically new software technology for applications with exascale performance. To reach this goal, the project focusses on a comparatively narrow but very important application domain. The aim is to enable a simple and convenient formulation of problem solutions in this domain. The software technology developed in ExaStencils shall facilitate the highly automatic generation of a large variety of efficient implementations via the judicious use of domain-specific knowledge in each of a sequence of optimization steps such that, at the end, exascale performance results.

The application domain chosen is that of stencil codes, i.e., compute-intensive algorithms in which data points in a grid are redefined repeatedly as a combination of the values of neighboring points. The neighborhood pattern used is called a stencil. Stencil codes are used for the solution of discrete partial differential equations and the resulting linear systems.

The domain-specific optimization proceeds in five major steps:
  1. Adaptation of the mathematical problem (AAM, LSS):

    In a first step, the formulation of the mathematical algorithm is being optimized for efficiency and scalability. This happens via a precise specification of the variabilities of operators and solutions approaches, customized for the application problem and execution platform at hand.

  2. Formulation of a program in a domain-specific language (CoD):

    Next, the on-paper solution is being converted to an abstract but executable domain-specific programming language (DSL) in which the major attributes of the solution can be specific easily.

  3. Domain-specific optimization customized for the attributes of the stencil code (SE):

    In a third step, software product-line technology is being used to exploit the similarities of stencil codes for different applications. This way, a stencil code need not be developed from scratch since it is not being viewed as an individual but as a member of a product line, which is determined by the choice of its variants. The implementation of the stencil code then proceeds automatically by composing its attributes, bringing domain-specific optimizations to bear that are customized for the special nature and requirements of the application at hand.

  4. Loop optimization in the polyhedron model (Prog):

    Next, the polyhedron model of loop parallelization is being employed to optimize the stencil code for a given cost function. This helps to maximize the performance and scalability of the code by calibrating influences like parallelism, memory consumption and communication volume.

  5. Platform-specific adaptations (CoD, LSS):

    Last, the individual characteristics of the execution platform will be taken into account in order to avoid unnecessary reductions in performance. Special consideration will be given to the heterogeneity of future exascale architectures.

In the second project phase, an additional research topic is productivity:
  1. Rapid prototyping of stencil DSLs (Meta):

    The project pursues an external DSL approach in order not to be constrained by a host language in the pursuit of exascale performance. Case studies shall contrast this with an approach embedded in a JVM-based host language in order to evaluate the trade-off between performance and productivity.

At the end of the project, a software product line of exascale stencil codes is being envisaged. However, the main result of the project will not be the individual codes but the technology with which they have been generated. One expectation is that this technology will also be useful for similarly well delineated application domains in other SPPEXA projects and beyond.

Project Phases: Two Posters (A0) and Latest Yearly Presentation

1st funding period (2013-2015)


2nd funding period (2016-2018)


4th-year project state (2016)

4th year


This publication list has been extracted automatically from the bibliography database of project ExaStencils. Please respect copyrights (copyright notice).






Copyright Notice: This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these publications may not be reposted without the explicit permission of the copyright holder.

Selected Theses

Habilitation Theses


Master Theses





Bachelor Theses




ExaStencils is funded by the German Research Foundation (DFG) as part of the Priority Programme 1648 (Software for Exascale Computing). The first funding period from January 2013 to December 2015 has been completed. The project is in its second funding period from January 2016 to December 2018.


Coordinator of ExaStencils is Christian Lengauer.