This Article 
 Bibliographic References 
 Add to: 
Removal of Redundant Dependences in DOACROSS Loops with Constant Dependences
July 1991 (vol. 2 no. 3)
pp. 281-289

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.

[1] A. V. Aho, M. R. Garey, and J. D. Ullman, "The transitive reduction of a directed graph,"SIAM J. Comput., pp. 131-137, June 1972.
[2] F. Allen, M. Burke, P. Charles, R. Cytron, and J. Ferrante, "An overview of the PTRAN analysis system for multiprocessing,"J. Parallel Distributed Comput., vol. 5, no. 5, pp. 617-640, Oct. 1988.
[3] J. R. Allen and K. Kennedy, "PFC: A program to convert FORTRAN to parallel form," inProc. IBM Conf. Parallel Comput. Scientif. Computations, Mar. 1982.
[4] S. Even,Graph Algorithms. Rockville, MD: Computer Science Press, 1979.
[5] Z. Fang, P. Yew, P. Tang, and C. Zhu, "Dynamic processor self-scheduling for general parallel nested loops," inProc. Int. Conf. Parallel Processing, 1987, pp. 1-10.
[6] D. N. Jayasimha, "Communication and synchronization in parallel computation," Ph.D. dissertation, Univ. of Illinois, Urbana-Champaign, 1988.
[7] V. P. Krothapalli and P. Sadayappan, "Dynamic scheduling of DOACROSS loops," inProc. Parbase-90 Int. Conf. Databases and Parallel Architectures, 1990, pp. 66-75.
[8] D. J. Kuck, R.H. Kuhn, B. Leasure, D.A. Padua, and M. Wolfe, "Compiler transformation of dependence graphs," inConf. Rec. 8th ACM Symp. Principles Program. Languages, Williamsburg, VA, Jan. 1981.
[9] D. J. Kucket al., "Parallel supercomputing today and the CEDAR approach,"Science, vol. 231, no. 2, pp. 967-974, 1986.
[10] Z. Li and Abu-Sufah, "On reducing data synchronization in multiprocessed loops,"IEEE Trans. Comput., vol. C-36, pp. 105-109, 1987.
[11] S. P. Midkiff, "Automatic generation of synchronization instructions for parallel processors," Master's thesis, Univ. of Illinois, Urbana-Champaign, May 1986.
[12] S. P. Midkiff and D. A. Padua, "Compiler algorithms for synchronization,"IEEE Trans. Comput., vol. C-36, no. 12, pp. 1485-1495, Dec. 1987.
[13] C. Polychronopoulos,Parallel Programming and Compilers, Kluwer Academic Publishers, 1988.
[14] C. Polychronopoulos and D. Kuck, "Guided self-scheduling: A practical scheduling scheme for parallel supercomputers,"IEEE Tran. Comput., 1987.
[15] P. L. Shaffer, "Minimization of interprocessor synchronization in multiprocessors with shared and private memory," inProc. Int. Conf. Parallel Processing, 1989, pp. 138-141.
[16] P. Tang, P. Yew, Z. Fang, and C. Zhu, "Deadlock prevention in processor self-scheduling for parallel nested loops," inProc. Int. Conf. Parallel Processing, 1987, pp. 11-18.
[17] R. Tarjan, "Depth first search and linear graph algorithms,"SIAM J. Comput., vol. 1, no. 2, pp. 146-160, 1972.
[18] M. J. Wolfe, "Techniques for improving the inherent parallelism in programs," Master's thesis, Univ. of Illinois, Urbana-Champaign, July 1978.
[19] M. Wolfe,Optimizing Supercompilers for Supercomputers. Cambridge MA: MIT Press, 1989.
[20] C. Zhu and P. Yew, "A scheme to enforce data dependences on large multiprocessor systems,"IEEE Trans. Software Eng., vol. SE-13, no. 6, pp. 726-739, June 1987.
[21] C. Q. Zhu and P. C. Yew, "A synchronization scheme and its applications for large multiprocessor systems," inProc. 4th Int. Conf. Distributed Comput. Syst., 1984, pp. 486-493.

Index Terms:
Index TermsDOACROSS loops; constant dependences; redundant dependences; simple loops; parallelexecution; synchronization instructions; nested loops; iteration space; doubly nestedloop; directed graphs; parallel programming; redundancy
V.P. Krothapalli, P. Sadayappan, "Removal of Redundant Dependences in DOACROSS Loops with Constant Dependences," IEEE Transactions on Parallel and Distributed Systems, vol. 2, no. 3, pp. 281-289, July 1991, doi:10.1109/71.86104
Usage of this product signifies your acceptance of the Terms of Use.