The ExaStencils consortium consists of six research groups at four 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)|
|ACS:||Matthias Bolten (Chair of High Performance Computing / Software Engineering, University of Wuppertal)|
|Meta:||Shigeru Chiba (Chair of Creative Informatics, The University of Tokyo)|
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:
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.
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.
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.
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.
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.
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.
Two initial ExaStencils case studies were in quantum chemistry and the simulation of non-Newtonian fluids. Further applications in the multigrid domain are feasible.
Recent post on ScienceNode: How to liberate scientists from writing code
Multigrid methods have many parameters that influence the execution time of the method. To identify a good parameter configuration, we need to predict the execution time of the method for various parameter configurations.
It is not sufficient to predict the time of the individual operations that a method performs, but it is also necessary to predict their number. Multigrid methods are iterative, i.e., they compute a sequence of iterations that converge towards the solution sought. The number of iterations needed to reach a certain accuracy depends on the convergence rate of the method.
The parameters of a multigrid method influence its convergence rate. The convergence rate is not available directly, but it can be estimated using local Fourier analysis.
As part of project ExaStencils, we developed LFA Lab, a flexible software library that performs a local Fourier analysis. LFA Lab takes as input the formula for the error propagator of the method and a description of the operations involved in this formula. Using this information, LFA Lab is able to predict the convergence rate of a given multigrid method.
By combining the convergence rate estimate with a performance model, it becomes possible to predict the execution time of a multigrid method for a given parameter configuration. This knowledge can then be used to identify an optimal parameter configuration.Website
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.