Embedded domain specific languages:
A Blueprint for Robust Performance of Scientific Computations
Scott Baden
Lawrence Berkeley National Lab and UCSD
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.
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 regular 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.