Dr.Hans Zima Abstract
High-productivity programming languages and models for petascale computing
Hans P. Zima
Principal Scientist,Jet Propulsion Laboratory,California Institute of Technology
and
Professor Emeritus, University of Vienna, Austria
High performance computing has become the third pillar of science and
technology, providing the superior computational capability required
for dramatic advances in fields such as DNA analysis, drug design and
astrophysics. However, in today's dominating programming paradigm
users wanting to fully exploit the capabilities of parallel machines
are forced to adopt a low-level programming style that leads to
high-cost software production and error-prone programs that are
difficult to write, reuse, and maintain. Emerging petascale
architectures built with many-core components providing millions of
threads, and applications of growing size and complexity will further
aggravate this problem.
This presentation will discuss the state-of-the-art in programming
paradigms for high performance computing and identify the challenges
posed by emerging petascale architectures of unmatched complexity,
which are characterized by massive parallelism across multiple levels
of computation hierarchies, deep memory structures, and sophisticated
interconnection networks. We will outline the requirements for
high-productivity programming languages that provide a viable
compromise between the dual goals of human productivity and target
code efficiency, followed by an overview of the major ideas underlying
the programming languages developed in the DARPA-funded
High-Productivity-Computing-Systems (HPCS) program. A focus will be
placed on the discussion of the language "Chapel" designed in the HPCS
project Cascade, which addresses some of the key challenges identified
above. Chapel is a global-view programming language providing
high-level features for explicit parallelism and locality awareness
based on general concepts of index sets, domains, and data
collections. The language is unique in including a capability for
user-defined data distributions, which offers an abstraction that can
be compared to the role of functions as control abstractions.
The final part of the lecture will outline alternative language
approaches, identify open research issues, discuss the need for
intelligent compiler technology, and point out the crucial role of
effective programming environment support for the adoption of a new
language.