12.04.15 - 17.04.15, Seminar 15161

Advanced Stencil-Code Engineering

Diese Seminarbeschreibung wurde vor dem Seminar auf unseren Webseiten veröffentlicht und bei der Einladung zum Seminar verwendet.

Motivation

The seminar will investigate and further the state of the art of stencil-code engineering. Stencil codes have extremely high significance and value for a good-sized community of scientific computing experts in academia and industry. They see wide-spread use in computing the discrete solutions of partial differential equations and systems composed of such equations. Connected to the implementation of stencil codes is the use of efficient solver technology, i.e., iterative solvers that rely on the application of a stencil and that provide good convergence properties. Major application areas are the natural sciences and engineering.

Stencil codes are algorithms with a pleasantly high regularity: the data structures are higher-dimensional grids and the computations follow a static, locally contained dependence pattern and are typically arranged in nested loops with linearly affine bounds. This invites massive parallelism and raises the hope for easily achieved high performance. However, serious challenges remain:

  • Because of the large numbers and varieties of stencil code implementations, deriving each of them individually, even if by code modification from one another, is not practical. Not even the use of program libraries is practical; instead, a domain-specific metaprogramming approach is needed.
  • Efficiency, i.e., a high ratio of speedup to the degree of parallelism, is impaired by the low mathematical density, i.e., the low ratio of computation steps to data transfers of stencil codes.
  • An inappropriate use of the execution platform may act as a performance brake.

Stencil-code engineering has received increased attention in the last few years, which is evidenced by the appearance of a number of stencil-code programming languages and frameworks, such as Liszt/DeLite, Pochoir, PATUS, HIPACC and others. To reach the highest possible execution speed and to conserve hardware resources and energy, the stencil code must be tuned cleverly to the specific application problem at hand and the execution platform used. This circumstance and a variety of optimization techniques make the spectrum of concrete stencil codes so wide that it can only be managed reliably by an automated software technology. In addition, to predict the performance of a stencil code, a performance model and mathematical tools for forecasting the expected convergence properties are necessary.

The goal of the seminar is to raise the level of abstraction for application programmers significantly and to support this raise with an automated software technology that generates highly efficient massively parallel implementations which are tuned to the specific problem at hand and the execution platform used. Concepts whose place in and benefit for stencil code engineering will be discussed include domain-specific programming languages, program skeletons, software product lines, autotuning, machine learning, polyhedral loop optimization and others.

The seminar will bring together experts on stencil codes from mathematics, computer science, high-performance computing, and software engineering, as well as from application domains such as physics and engineering. Members of the projects mentioned above are on the invitation list. A special issue on the seminar in a high-quality international journal will be compiled subsequently.