Unimodularity considered non-essential (extended abstract)
Loop transformations for parallelization are linear, invertible mappings from an iteration space to spacc-time; a further restriction on the mapping, unimodularity, simplifies code generation. In most previous work, non-unimodular transformations require a potentially large amount of overhead. We sketch a method for producing efficient code for non-unimodular loop transformations.
KeywordsIteration Space Systolic Array Integer Point Source Program Loop Index
Unable to display preview. Download preview PDF.
- 1.C. Ancourt and F. Irigoin. Scanning polyhedra with DO loops. In Proc. Third ACM SIGPLAN Symp. on Principles & Practice of Parallel Programming (PPoPP), pages 39–50. ACM Press, Apr. 1991.Google Scholar
- 2.M. Barnett. A Systolizing Compiler. PhD thesis, Department of Computer Sciences, The University of Texas at Austin, May 1992. Technical Report TR-92-13.Google Scholar
- 3.R. T. Boute. The Euclidean definition of the functions div and mod. ACM Trans. on Programming Languages and Systems, 14(2): 127–144, Apr. 1992.Google Scholar
- 4.P. Feautrier. Semantical analysis and mathematical programming. In M. Cosnard, Y. Robert, P. Quinton, and M. Raynal, editors, Parallel & Distributed Algorithms, pages 309–320. North-Holland, 1989Google Scholar
- 5.L.-C. Lu and M. Chen. New loop transformation techniques for massive parallelism. Technical Report YALEU/DCS/TR-833, Department of Computer Science, Yale University, Oct. 1990.Google Scholar
- 6.H. B. Ribas. Automatic Generation of Systolic Programs from Nested Loops. PhD thesis, Department of Computer Science, Carnegie-Mellon University, June 1990. Technical Report CMU-CS-90-143.Google Scholar
- 7.M. Wolf and M. Lam. A loop transformation theory and an algorithm to maximize parallelism. IEEE Trans. on Parallel and Distributed Systems, 2(4):452–471, Oct. 1991.Google Scholar