Issue No. 03 - July (1991 vol. 2)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/71.86104
<p>An efficient algorithm to remove redundant dependences in simple loops with constant dependences is presented. Dependences constrain the parallel execution of programs and are typically enforced by synchronization instructions. The synchronization instructions represent a significant part of the overhead in the parallel execution of a program. Some program dependences are redundant because they are covered by other dependences. It is shown that unlike with single loops, in the case of nested loops, a particular dependence may be redundant at some iterations but not redundant at others, so that the redundancy of a dependence may not be uniform over the entire iteration space. A sufficient condition for the uniformity of redundancy in a doubly nested loop is developed.</p>
Index TermsDOACROSS loops; constant dependences; redundant dependences; simple loops; parallelexecution; synchronization instructions; nested loops; iteration space; doubly nestedloop; directed graphs; parallel programming; redundancy
P. Sadayappan and V. Krothapalli, "Removal of Redundant Dependences in DOACROSS Loops with Constant Dependences," in IEEE Transactions on Parallel & Distributed Systems, vol. 2, no. , pp. 281-289, 1991.