the u.s. Department of energy’s Jaguar supercomputer took home a trio of gold medals—for speed, sustainable memory bandwidth, and for
fft execution—at the recent hPc challenge competition.
IMAGe CouRTesy oF The nATIonAl Cen TeR FoR CoMPu TATIonAl sCIenCes, oAK RIDGe nATIonAl lAboRAToRy
familiar HPC benchmarks in the new
languages could reduce source-code
volume substantially—tenfold reductions were not surprising—but rewriting these benchmarks even in Fortran
achieved similar source-code reductions and corresponding improvements in expressivity.
New programming languages still
have much to offer, for example, in the
areas of expressing concurrency and
especially data distribution. It’s just
that the bloat we see in current HPC
source code stems not so much from
inadequacies in current languages as
from other factors.
What We Did
We rewrote a number of HPC bench-
marks and applications using mod-
ern Fortran in a way that took into ac-
coount the human costs of software
development: programmability and
associated characteristics such as
readability, verifiability, and main-
tainability. These are important con-
siderations; although copy-and-paste
is a fast way of writing lines of code,
it degrades readability and increases
maintenance costs.
In this article, we focus on the output of the rewriting activity, examining the rewritten HPC programs and
causes of source-code bloat. The particular HPC test codes used here are
the NPBs (NAS Parallel Benchmarks)
CG, MG, and BT; the plasma fusion
application GTC; and the 3D hydrodynamics code sPPM.
A key metric was the number of
source lines of code (SLOC). This is
admittedly a crude and often deceptive metric, but it served as a convenient starting point for quantifying
readability and expressivity of source
code.
Since the generated computer programs were in Fortran, they could be
compiled and run. Thus, we were able
to study their performance relative to
the original code, test automatic par-