Transformations of Nested Loops with Non-Convex Iteration Spaces

Abstract When compiling for parallel machines, it is often necessary to generate a loop nest to scan a region of index points in lexicographic order. One well-known application example is the use of loop transformations to restructure loop nests. Previous work shows how to generate code to scan a convex polyhedron (possibly intersected with a lattice), a region derived from an application of a non-singular transformation to a convex iteration space. The driving force behind this work is to investigate how to generate code for non-singular transformations of nested loops with non-convex iteration spaces. The final result is a method that generates code for a union of convex polyhedra, possibly intersected with a lattice. Two other applications that are discussed include generation of data transfer code for machines with a hierarchical memory and construction of SPMD programs for distributed memory parallel machines.

[1]  Patrice Quinton,et al.  The mapping of linear recurrence equations on regular arrays , 1989, J. VLSI Signal Process..

[2]  Keshav Pingali,et al.  A Singular Loop Transformation Framework Based on Non-Singular Matrices , 1992, LCPC.

[3]  P. Feautrier Parametric integer programming , 1988 .

[4]  Ken Kennedy,et al.  Automatic translation of FORTRAN programs to vector form , 1987, TOPL.

[5]  Monica S. Lam,et al.  A Loop Transformation Theory and an Algorithm to Maximize Parallelism , 1991, IEEE Trans. Parallel Distributed Syst..

[6]  Jingling Xue Automating Non-Unimodular Loop Transformations for Massive Parallelism , 1994, Parallel Comput..

[7]  Corinne Ancourt,et al.  Scanning polyhedra with DO loops , 1991, PPOPP '91.

[8]  Zbigniew Chamski,et al.  Nested loop sequences: towards efficient loop structures in automatic parallelization , 1994, 1994 Proceedings of the Twenty-Seventh Hawaii International Conference on System Sciences.

[9]  Michael Wolfe,et al.  More iteration space tiling , 1989, Proceedings of the 1989 ACM/IEEE Conference on Supercomputing (Supercomputing '89).

[10]  M. C. Cheng General criteria for redundant and nonredundant linear inequalities , 1987 .

[11]  Jingling Xue Closed-form mapping conditions for the synthesis of linear processor arrays , 1995, J. VLSI Signal Process..

[12]  K. Kennedy,et al.  Preliminary experiences with the Fortran D compiler , 1993, Supercomputing '93.

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