01/31/2006 09:00 AM
Computer Engineering
Three goals of High End Computing software are high programmer pro ductivity, Òwrite once, compile
once, run high p erformance anywhereÓ, and wide acceptance. This pap er conjectures that achieving
these goals requires defining an integrated platform which covers every asp ect of software, including
authoring, debugging, compiling, distributing, op erating system, computation mo del, and mainte-
nance. This notion is supp orted by a discussion of the dep endencies which led to choices in the
design of the Co deTime platform. This pap er illustrates how each goal drives inclusion of one or
more platform elements.
The platform is illustrated in a numb er of other pap ers, it is presented here as background, to
provide a concrete example with which to illustrate the dep endencies.
The top-level platform elements are a virtual server, a family of languages, and a development
environment. The virtual server contains the computation mo del and an OS interface. It is imple-
mented custom for each set of hardware, the same as any virtual machine. However, the Co deTime
computation mo del intro duces significant new semantics that allow: a simple back-end compiler to
change the parallelism granularity to suit the hardware; and allow a run-time to dynamically adjust
data size to tune computation-to-communication ratio and scheduling overhead. The platform also
enforces the collection and distribution of profile information and other p erformance-enhancing infor-
mation, for use by the back-end compiler.