About this Event
29 Oxford Street, Cambridge, MA 02138
Thursday, October 3
2 - 3pm
Location: Pierce 301
Title: Motif-based Programming Systems and High-performance Computations for Numerical PDE
Speaker: Dr. Phillip Colella, Lawrence Berkeley National Laboratory
Abstract: A motif is a class of simulation capabilities whose performance-critical sections can be described in terms of the composition of a small set of high-level mathematical/algorithmic abstractions. Examples of motifs in simulating physical systems include structured grids, unstructured grids, dense linear algebra, sparse linear algebra, discrete Fourier transforms, particles, and Monte Carlo. The way simulation codes are traditionally designed is to express the algorithm in terms of a motif-based high-level description, which is then translated into a program, written by human developers, in a general-purpose programming language. Traditional performance engineering involves identifying and measuring critical sections, and using the developers' understanding of the algorithm, the use cases and the computer architecture, to find a new representation in terms of a (usually larger) number of motif operations, which is then written in the general-purpose language.This strategy has served us well. However, obtaining the best possible performance leads to large code relative to the size of the initial high-level specification. Furthermore, the detailed form of the high-performance code, as well as the choice of the section that must be transformed, depends on the details of the application, including build-time information, such as the size of the inputs / outputs and of the architecture and the supporting software system of the system that the code is to run on. This renders performance engineering by human programmers prohibitively expensive, and requires substantial rewriting every time there is a major change in HPC computer systems, e.g. the transition from CPUs to CPUs + GPUs.
In this talk, we will describe an attempt to automate the most onerous parts of the process described above, initially for the structured grid and FFT motifs. At the top level, we are designing an embedded domain-specific languages for expressing the motif-based algorithms, expressed in terms of library calls implemented in the general-purpose target language. Performance-critical sections are subjected by the software system to a series of transformations that improve the performance of the code. Ultimately, this process produces a higher-performance version of the code section, written in the target language, that replaces the performance-critical section in a complete application. Furthermore, we are meeting one of the other goals of a motif-based system, which is the deployment of a more productive programming system, in which the number of lines of code written in the top-level motif language is comparable to the size of a high-level description used to describe algorithms mathematically. We will illustrate the use and benefits of using motif-based systems with some applications examples primarily from CFD.