Department of Mathematics,
University of California San Diego
****************************
Center for Computational Mathematics Seminar
Scott Baden
Lawrence Berkeley National Lab and UCSD
Embedded domain specific languages: A Blueprint for Robust Performance of Scientific Computations
Abstract:
An outstanding challenge in large scale computing is to enable the casual application programmer to realize performance obtained by an expert. The challenge has grown in recent years due to disruptive technological changes, which are expected to continue. In HPC, performance programming generally relies on a priori knowledge about the application. However, it is important to avoid entangling application software with knowledge about the hardware. The HPC community relies heavily on libraries, which have helped insulate application software against technological change. However, not all change can be accommodated via libraries, and an alternative approach is to restructure the source using a custom translator that incorporates the required a priori knowledge. I will describe custom source-to-source translators targeting different performance programming problems arising in large scale computation. The first translator, Saaz, reduces the overheads of abstraction by up to an order of magnitude in application libraries used to construct tools for data discovery in turbulent flow simulation. The second translator, MATE, restructures MPI applications to tolerate significant amounts of communication on distributed memory computers. The third translator, Mint, transforms annotated C++ stencil codes into highly optimized CUDA that comes close (80%) to the performance of carefully hand coded CUDA running on GPUs. Each translator incorporates application semantics into the optimization process, which are unavailable through a traditional compiler working with conventional language constructs. In effect, the translators treat idiomatic constructs or library APIs as a domain specific language embedded within a conventional programming language--in our case C or C++. Domain specific translation is an effective means of managing development costs, enabling the domain scientist to remain focused on the domain science, while realizing performance usually attributed to expert coders. I will conclude the talk with earlier work on run times, that led to the research in domain specific translation.
May 14, 2019
11:00 AM
AP&M 2402
****************************