Addt: Automatic Data Distribution Tool for Porting Programs to Distributed Memory Machines

Data parallel languages like HPF require the user to specify the distribution of the data in the application. This distribution is speciied over the processors on which the application is to execute. A good data distribution depends on the number of processors, the communication latency and the underlying compilation system. Hence it is diicult to do this manually. In this paper we present a method for automatically generating a data distribution for a distributed memory environment. This method has been implemented in an automatic data distribution tool called ADDT. ADDT reads in a shared memory parallel program in Fortran and generates as output a HPF program. Our method works by breaking up the input program into sub parts called distribution blocks (DB). (A somewhat similar idea has been suggested by other researchers). It then obtains a data distribution for the arrays in each DB using the data layouts from preceding DB's. The 1 2 algorithms used to obtain a data distribution for a DB are also discussed in this paper. We present experimental results obtained by running ADDT on some example programs.

[1]  Viktor K. Prasanna,et al.  Permutations on Illiac IV-Type Networks , 1986, IEEE Transactions on Computers.

[2]  Ken Kennedy,et al.  Parallelization of linearized applications in Fortran D , 1994, Proceedings of 8th International Parallel Processing Symposium.

[3]  Manish Gupta,et al.  PARADIGM: a compiler for automatic data distribution on multicomputers , 1993, ICS '93.

[4]  Marina C. Chen,et al.  The Data Alignment Phase in Compiling Programs for Distrubuted-Memory Machines , 1991, J. Parallel Distributed Comput..

[5]  Prithviraj Banerjee,et al.  Automatic Data Partitioning on Distributed Memory Multiprocessors , 1991, The Sixth Distributed Memory Computing Conference, 1991. Proceedings.

[6]  Ken Kennedy,et al.  Interprocedural compilation of Fortran D for MIMD distributed-memory machines , 1992, Proceedings Supercomputing '92.

[7]  Robert J. Harrison,et al.  Global Arrays: a portable "shared-memory" programming model for distributed memory computers , 1994, Proceedings of Supercomputing '94.

[8]  Paul Feautrier Toward automatic partitioning of arrays on distributed memory computers , 1993, ICS '93.

[9]  Charles Koelbel,et al.  Compiling Global Name-Space Parallel Loops for Distributed Execution , 1991, IEEE Trans. Parallel Distributed Syst..

[10]  Robert P. Weaver,et al.  The DINO Parallel Programming Language , 1991, J. Parallel Distributed Comput..

[11]  Ken Kennedy,et al.  Compiling Fortran 77D and 90D for MIMD distributed-memory machines , 1992, [Proceedings 1992] The Fourth Symposium on the Frontiers of Massively Parallel Computation.

[12]  Ken Kennedy,et al.  Automatic Data Layout for High Performance Fortran , 1995, SC.

[13]  Ken Kennedy,et al.  Evaluation of compiler optimizations for Fortran D on MIMD distributed memory machines , 1992, ICS '92.

[14]  Ken Kennedy,et al.  Automatic Data Layout for Distributed-Memory Machines in the D Programming Environment , 1994, Automatic Parallelization.

[15]  Manish Gupta,et al.  Demonstration of Automatic Data Partitioning Techniques for Parallelizing Compilers on Multicomputers , 1992, IEEE Trans. Parallel Distributed Syst..

[16]  J. Ramanujam,et al.  Compile-Time Techniques for Data Distribution in Distributed Memory Machines , 1991, IEEE Trans. Parallel Distributed Syst..

[17]  John A. Chandy,et al.  Communication Optimizations Used in the Paradigm Compiler for Distributed-Memory Multicomputers , 1994, 1994 Internatonal Conference on Parallel Processing Vol. 2.

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

[19]  Geoffrey C. Fox,et al.  Fortran 90D/HPF compiler for distributed memory MIMD computers: design, implementation, and performance results , 1993, Supercomputing '93.

[20]  Ravi Mirchandaney,et al.  Improving the performance of DSM systems via compiler involvement , 1994, Proceedings of Supercomputing '94.

[21]  Monica S. Lam,et al.  Data and computation transformations for multiprocessors , 1995, PPOPP '95.