Distribution of Operations and Data Arrays over Processors

For algorithms described by loop nests, a method of construction of affine mappings of operations and data arrays onto virtual processors is suggested. Only local communications between the processors are required; in particular, there may be no communications at all. The method makes it possible to find many heuristic solutions, allows for dependence on outer loop indices, and can be used for automated parallelizing sequential programs.

[1]  Yves Robert,et al.  Compiling Affine Nested Loops: How to Optimize the Residual Communications after the Alignment Phase , 1996, J. Parallel Distributed Comput..

[2]  Keshav Pingali,et al.  Solving Alignment Using Elementary Linear Algebra , 2001, Compiler Optimizations for Scalable Parallel Systems Languages.

[3]  Hyuk-Jae Lee,et al.  Automatic Generation of Modular Time-Space Mappings and Data Alignments , 1998, J. VLSI Signal Process..

[4]  Monica S. Lam,et al.  An affine partitioning algorithm to maximize parallelism and minimize communication , 1999, ICS '99.

[5]  Yves Robert,et al.  Resource-constrained scheduling of partitioned algorithms on processor arrays , 1996, Integr..

[6]  François Irigoin,et al.  Supernode partitioning , 1988, POPL '88.

[7]  Jack Dongarra,et al.  Automatic Blocking of Nested Loops , 1990 .

[8]  Monica S. Lam,et al.  Maximizing Parallelism and Minimizing Synchronization with Affine Partitions , 1998, Parallel Comput..

[9]  Weijia Shang,et al.  Independent Partitioning of Algorithms with Uniform Dependencies , 1992, IEEE Trans. Computers.

[10]  Yves Robert,et al.  On the Alignment Problem , 1994, Parallel Process. Lett..

[11]  Yves Robert,et al.  Mapping Affine Loop Nests , 1996, Parallel Comput..

[12]  Monica S. Lam,et al.  Communication-Free Parallelization via Affine Transformations , 1994, LCPC.

[13]  Monica S. Lam,et al.  Blocking and array contraction across arbitrarily nested loops using affine partitioning , 2001, PPoPP '01.