Compiling Global Name-Space Parallel Loops for Distributed Execution

Compiler support required to allow programmers to express their algorithms using a global name-space is discussed. A general method for the analysis of a high-level source program and its translation into a set of independently executing tasks that communicate using messages is presented. It is shown that if the compiler has enough information, the translation can be carried out at compile time; otherwise; run-time code is generated to implement the required data movement. The analysis required in both situations is described, and the performance of the generated code on the Intel iPSC/2 hypercube is presented. >

[1]  Charles Koelbel,et al.  Supporting shared data structures on distributed memory architectures , 1990, PPOPP '90.

[2]  Roland Glowinski,et al.  Distributed Irregular Finite Elements , 1989 .

[3]  Willy Zwaenepoel,et al.  Munin: distributed shared memory based on type-specific memory coherence , 1990, PPOPP '90.

[4]  Piyush Mehrotra,et al.  Programming distributed memory architectures using Kali , 1990 .

[5]  Zhiyu Shen,et al.  An Empirical Study on Array Subscripts and Data Dependencies , 1989, ICPP.

[6]  Philip J. Hatcher,et al.  Compiling SIMD programs for MIMD architectures , 1990, Proceedings. 1990 International Conference on Computer Languages.

[7]  Anne Rogers,et al.  Process decomposition through locality of reference , 1989, PLDI '89.

[8]  Jeffrey S. Chase,et al.  The Amber system: parallel programming on a network of multiprocessors , 1989, SOSP '89.

[9]  Ken Kennedy,et al.  Fortran D Language Specification , 1990 .

[10]  Michael Gerndt,et al.  SUPERB: A tool for semi-automatic MIMD/SIMD parallelization , 1988, Parallel Comput..

[11]  Harry Berryman,et al.  Multiprocessors and run-time compilation , 1991, Concurr. Pract. Exp..

[12]  Marco Annaratone,et al.  Parallelization of FORTRAN code on distributed-memory parallel processors , 1990, ICS '90.

[13]  Kai Li,et al.  Shared virtual memory on loosely coupled multiprocessors , 1986 .

[14]  D. Mavriplis Multigrid solution of the two-dimensional Euler equations on unstructured triangular meshes , 1987 .

[15]  Arjan J. C. van Gemund,et al.  A method for parallel program generation with an application to the Booster language , 1990, ICS '90.

[16]  P.-S. Tseng A parallelizing compiler for distributed memory parallel computers , 1989, PLDI 1989.

[17]  Joel H. Saltz,et al.  A Scheme for Supporting Automatic Data Migration on Multlcomputers , 1990, Proceedings of the Fifth Distributed Memory Computing Conference, 1990..

[18]  Piyush Mehrotra,et al.  The BLAZE language: A parallel language for scientific programming , 1987, Parallel Comput..

[19]  Zhiyu Shen,et al.  An Empirical Study of Fortran Programs for Parallelizing Compilers , 1990, IEEE Trans. Parallel Distributed Syst..

[20]  Ronald Gary Cytron Compile-time scheduling and optimization for asynchronous machines (multiprocessor, compiler, parallel processing) , 1984 .

[21]  Charles Howard Koelbel,et al.  Compiling programs for nonshared memory machines , 1991 .

[22]  G. C. Fox,et al.  Solving Problems on Concurrent Processors , 1988 .

[23]  Robert B. Schnabel,et al.  Expressing Complex Parallel Algorithms in DINO , 1989 .

[24]  Jean-Louis Pazat,et al.  Pandore: a system to manage data distribution , 1990, ICS '90.

[25]  John Randal Allen,et al.  Dependence analysis for subscripted variables and its application to program transformations , 1983 .

[26]  Michael Gerndt,et al.  Automatic parallelization for distributed-memory multiprocessing systems , 1989 .

[27]  Joel H. Saltz,et al.  Principles of runtime support for parallel processors , 1988, ICS '88.