Compiling for massively parallel machines - Philippsen, Michael; Tichy, Walter F. (Code Generation - Concepts, Tools, Techniques, 1992)
This article discusses techniques for compiling high-level, explicitly-parallel languages for massively parallel machines. We present mechanisms for translating asynchronous as well as synchronous parallelism for both SIMD and MIMD machines. We show how the parallelism specified in a program is mapped onto the available processors and discuss an effective optimization that eliminates redundant synchronization points. Approaches for improving scheduling, load balancing, and co-location of data and processes are also presented. We conclude with important architectural principles required of parallel computers to support efficient, compiled programs. Our discussion is based on the language Modula-2*, an extension of Modula-2 for writing highly parallel programs in a machine-independent, problem-oriented way. The novel attributes of Modula-2* are that programs are independent of the number of processors, independent of whether memory is shared or distributed, and independent of the control mode (SIMD or MIMD) of a parallel machine. Similar extensions could easily be included in other languages.
UnivIS-Import:2015-04-16:Pub.1992.tech.IMMD.IMMD2.compil