Parallel computers, languages, and the search for portable programming (circa 1990).
Progra m transformations, com munication insertion
Runtime (extra copying)
Progra m transfor m ations, synchronization insertion
Vectorization, data layout (for SI M D)
each class. A line from a language L to
an architecture A represents the com-piler/runtime or transformation technology needed to implement L on A.
For completeness, we include sequential computers and FORTRAN 77.
The data-parallel computation
model is characterized by the prop-
erty that sequences of operations or
statements can be performed in par-
allel on each element of a collection of
data. This model was in part motivat-
ed by the work on the NESL language.
Two common implementations were
vector processors (featuring highly
pipelined CPUs operating on vec-
tor registers) and single instruction
multiple data (SIMD) computers (fea-
turing thousands of simple proces-
sors operating under a single control
unit). Due to this fine-grain control,
the most natural languages for these
machines provided array arithmetic
and array functions mirroring the
vector and matrix operations in many