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.