A High-Level Programming Environment
for Distributed Memory Architecture
Wolfgang Giloi
The talk presents the PROMOTER programming model for the
abstract, problem-oriented programming of message-passing
architectures. PROMOTER enables its user to formulate
parallel applications in an abstract, algebraic form so
that the PROMOTER compiler can take care of the correct
and time-optimal execution. PROMOTER allows the user to
deal with a large variety of array-like or hierarchical
data structures that may be regular or irregular, static
or dynamic. Programs are written at a level at which the
data types look homogeneous -- thus allowing the use of
distributed types -- although there may be local differences
in thread execution. Domains of computation are created as
finite, possibly irregular and/or dynamic substructures of
a regular, static "structured universe," which is an index
domain with group property. Communication is viewed by the
programmer as the observation of state in some domain points
by other domain points as specified by the definition of a
"communication domain." Coordination of parallel threads is
guided by a "coordination scheme" selected by the programmer.
Existing coordination schemes are: lock-step (bulk
synchronization), wave fronts, asynchronous iteration,
chaotic iteration. PROMOTER has been implemented on a
variety of platforms and competes in efficiency with
PVM or MPI.