A framework for automatic dynamic data mapping

Physically-distributed memory multiprocessors are becoming popular and data distribution and loop parallelization are aspects that a parallelizing compiler has to consider in order to get efficiency from the system. The cost of accessing local and remote data can be one or several orders of magnitude different, and this can dramatically affect the performance of the system. It would be desirable to free the programmer from considerations of the low-level details of the target architecture, to program explicit processes or specify interprocess communication. We present an approach to automatically derive static or dynamic data distribution strategies for the arrays used in a program. All the information required about data movement and parallelism is contained in a single data structure, called the Communication-Parallelism Graph (CPG). The problem is modeled and solved using a general purpose linear 0-1 integer programming solver. This allows us to find the optimal solution for the problem for one-dimensional array distributions. We also show the feasibility of using this approach in terms of compilation time and quality of the solutions generated.

[1]  Chau-Wen Tseng An optimizing Fortran D compiler for MIMD distributed-memory machines , 1993 .

[2]  Ronald H. Perrott,et al.  An automatic data distribution generator for distributed memory machines , 1998, Concurrency Practice and Experience.

[3]  Jingke Li,et al.  Index domain alignment: minimizing cost of cross-referencing between distributed arrays , 1990, [1990 Proceedings] The Third Symposium on the Frontiers of Massively Parallel Computation.

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

[5]  Ken Kennedy,et al.  Interactive Parallel Programming using the ParaScope Editor , 1991, IEEE Trans. Parallel Distributed Syst..

[6]  Skef Wholey Automatic data mapping for distributed-memory parallel computers , 1992, ICS '92.

[7]  Manish Gupta,et al.  Automatic Data Partitioning on Distributed Memory Multicomputers , 1992 .

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

[9]  John R. Gilbert,et al.  Aligning parallel arrays to reduce communication , 1994, Proceedings Frontiers '95. The Fifth Symposium on the Frontiers of Massively Parallel Computation.

[10]  Eduard Ayguade,et al.  Dynamic data distribution with control flow analysis , 1996, Supercomputing '96.

[11]  Ken Kennedy,et al.  Automatic Data Layout Using 0-1 Integer Programming , 1994, IFIP PACT.

[12]  Eduard Ayguadé,et al.  Data Redistribution in an Automatic Data Distribution Tool , 1995, LCPC.

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

[14]  Ulrich Kremer,et al.  NP-completeness of Dynamic Remapping , 1993 .

[15]  Barbara M. Chapman,et al.  Automatic Support for Data Distribution on Distributed Memory Multiprocessor Systems , 1993, LCPC.

[16]  E. Ayguade,et al.  A Novel Approach Towards Automatic Data Distribution , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[17]  K. Kennedy,et al.  Automatic Data Layout for High Performance Fortran , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[18]  Jordi Torres,et al.  Detecting and Using Affinity in an Automatic Data Distribution Tool , 1994, LCPC.