A loop transformation theory and an algorithm to maximize parallelism
- 1 October 1991
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Parallel and Distributed Systems
- Vol. 2 (4) , 452-471
- https://doi.org/10.1109/71.97902
Abstract
An approach to transformations for general loops in which dependence vectors represent precedence constraints on the iterations of a loop is presented. Therefore, dependences extracted from a loop nest must be lexicographically positive. This leads to a simple test for legality of compound transformations: any code transformation that leaves the dependences lexicographically positive is legal. The loop transformation theory is applied to the problem of maximizing the degree of coarse- or fine-grain parallelism in a loop nest. It is shown that the maximum degree of parallelism can be achieved by transforming the loops into a nest of coarsest fully permutable loop nests and wavefronting the fully permutable nests. The canonical form of coarsest fully permutable nests can be transformed mechanically to yield maximum degrees of coarse- and/or fine-grain parallelism. The efficient heuristics can find the maximum degrees of parallelism for loops whose nesting level is less than five.<>Keywords
This publication has 10 references indexed in Scilit:
- A data locality optimizing algorithmPublished by Association for Computing Machinery (ACM) ,1991
- Efficient and exact data dependence analysisPublished by Association for Computing Machinery (ACM) ,1991
- More iteration space tilingPublished by Association for Computing Machinery (ACM) ,1989
- Strategies for cache and local memory management by global program transformationJournal of Parallel and Distributed Computing, 1988
- Software pipelining: an effective scheduling technique for VLIW machinesPublished by Association for Computing Machinery (ACM) ,1988
- Dependence Analysis for SupercomputingPublished by Springer Nature ,1988
- Supernode partitioningPublished by Association for Computing Machinery (ACM) ,1988
- Automatic translation of FORTRAN programs to vector formACM Transactions on Programming Languages and Systems, 1987
- Parallelism detection and transformation techniques useful for VLSI algorithmsJournal of Parallel and Distributed Computing, 1985
- Automatic synthesis of systolic arrays from uniform recurrent equationsPublished by Association for Computing Machinery (ACM) ,1984