Title :
A loop transformation theory and an algorithm to maximize parallelism
Author :
Wolf, Michael E. ; Lam, Monica S.
Author_Institution :
Comput. Syst. Lab., Stanford Univ., CA, USA
fDate :
10/1/1991 12:00:00 AM
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 :
parallel algorithms; parallel programming; program compilers; canonical form; coarse grain parallelism; coarsest fully permutable loop nests; code transformation; compound transformations; dependence vectors; fine-grain parallelism; fully permutable nests; general loops; heuristics; legality; lexicographically positive; loop iterations; loop transformation theory; maximum degree; parallel algorithm; precedence constraints; wavefront; Computer languages; Conferences; Law; Legal factors; Parallel machines; Parallel processing; Program processors; Space exploration; Testing; Vectors;
Journal_Title :
Parallel and Distributed Systems, IEEE Transactions on