Embedded domain specific languages: A Blueprint for Robust Performance of Scientific Computations
Seminar | February 1 | 2-3 p.m. | Soda Hall, 430-438 Wozniak Lounge
Dr. Scott Baden, Leader, Computer Languages and System Software Group, Lawrence Berkeley National Laboratory
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, Toucan, 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.
Bio: Dr. Baden received his M.S and PhD in Computer Science from
UC Berkeley in 1982 and 1987. He is also Adjunct Professor in the Deptartment of Computer Science and Engineering at UCSD, where he was a faculty member for 27 years. His research interests are in high performance and scientific computation: domain specific translation, abstraction mechanisms, run times, and irregular problems.