practice
Doi: 10.1145/1785414.1785433
Article development led by
queue.acm.org
Maybe it’s Fortran.
Or maybe it just doesn’t matter.
BY euGene Loh
the ideal hPc
Programming
Language
The darpa hiGh Productivity Computing Systems
(HPCS) program sought a tenfold productivity
improvement in trans-petaflop systems for high-performance computing (HPC). This article describes
programmability studies undertaken by Sun
Microsystems in its HPCS participation. These studies
were distinct from Sun’s ongoing development of a
new HPC programming language (Fortress) and the
company’s broader HPCS productivity studies, though
there was certainly overlap with both activities.
These programmability studies began with a focus
on programming languages, but the focus quickly
shifted to other topics. Existing languages—notably
Fortran, which is arguably still the primary language
in HPC—proved remarkably adequate. Programming
challenges stem mostly from other factors.
What if programming did not mean having to learn
a language someone else devised and then wrestling
with the limitations of that language, its compilers,
and computers to implement your
task? What if it meant, in a sense,
the opposite? You could write your
program in whatever way was most
expressive for you, without regard for
language rules imposed by someone
else. Then it would be someone else’s
job to define the programming language that would make sense of what
you wrote, write the compilers to digest the program, and build the computers that would efficiently run the
task you specified.
We undertook such an exercise
to get a feel for what an “ideal” programming language for HPC applications might look like. Our approach
was to take existing HPC programs
and have someone rewrite them in
whatever way suited that individual,
not bound by the constraints of any
existing computer, compiler, or language. Rather, he was invited to write
whatever seemed most expressive. We
might not be able to compile or run
these programs, but we could at least
see what the writer wanted.
Almost immediately, we were struck
by what we were seeing. Of course, the
rewritten code was much more compact and readable than the original,
but, surprisingly, the “ideal” programming language was basically Fortran.
My first job here is to convince you
that this finding is not ridiculous. I admit, the experiment was biased in that
we were starting with existing code,
mostly written in Fortran, and used
a human subject who was not only
familiar with Fortran but indeed embraced it. The main point, however,
is less that every programmer would
have ended up preferring Fortran and
more that the problems with the original source code have more to do with
reasons other than the limitations of
existing programming languages. We
look at some of these reasons here.
The DARPA HPCS program also
sponsored the development of new
programming languages: Chapel from
Cray, Fortress from Sun, and X10 from
IBM. Proponents of those languages
would show early on how rewriting