Compiling functional parallelism on distributed-memory systems

We have developed an automatic compilation method that combines data- and code-based approaches to schedule a program's functional parallelism onto distributed memory systems. Our method works with Sisal, a parallel functional language, and replaces the back end of the Optimizing Sisal Compiler so that it produces code for distributed memory systems. Our extensions allow the compiler to generate code for Intel's distributed-memory Touchstone iPSC/860 machines (Gamma, Delta, and Paragon). The modified compiler can generate a partition that minimizes program completion time (for systems with many processors) or the required number of processors (for systems with few processors). To accomplish this, we have developed a heuristic algorithm that uses the new concept of threshold to treat the problem of scheduling as a trade-off between schedule length and the number of required processors. Most compilers for distributed memory systems force the programmer to partition the data or the program code. This modified version of a Sisal compiler handles both tasks automatically in a unified framework, and lets the programmer compile for a chosen number of processors.<<ETX>>

[1]  V. Sarkar,et al.  Automatic partitioning of a program dependence graph into parallel tasks , 1991, IBM J. Res. Dev..

[2]  Dharma P. Agrawal,et al.  A Threshold Scheduling Strategy for Sisal on Distributed Memory Machines , 1994, J. Parallel Distributed Comput..

[3]  Ken Kennedy,et al.  Compiling Fortran D for MIMD distributed-memory machines , 1992, CACM.

[4]  Rice UniversityCORPORATE,et al.  High performance Fortran language specification , 1993 .

[5]  Keshav Pingali,et al.  Access normalization: loop restructuring for NUMA compilers , 1992, ASPLOS V.

[6]  G. C. Fox,et al.  An Evolutionary Approach to Load Balancing Parallel Computations , 1991, The Sixth Distributed Memory Computing Conference, 1991. Proceedings.

[7]  Daniel Gajski,et al.  CAMP: A Programming Aide for Multiprocessors , 1986, ICPP.

[8]  Philip J. Hatcher,et al.  Data-Parallel Programming on MIMD Computers , 1991, IEEE Trans. Parallel Distributed Syst..

[9]  David C. Cann,et al.  A Report on the Sisal Language Project , 1990, J. Parallel Distributed Comput..

[10]  Tao Yang,et al.  A Comparison of Clustering Heuristics for Scheduling Directed Acycle Graphs on Multiprocessors , 1992, J. Parallel Distributed Comput..

[11]  Charles Koelbel,et al.  Semi-Automatic Domain Decomposition in BLAZE , 1987, ICPP.

[12]  Milind Girkar,et al.  Automatic Extraction of Functional Parallelism from Ordinary Programs , 1992, IEEE Trans. Parallel Distributed Syst..

[13]  P. Sadayappan,et al.  Access based data decomposition fam distributed memory machines , 1991, The Sixth Distributed Memory Computing Conference, 1991. Proceedings.