This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Nonlinear and Symbolic Data Dependence Testing
December 1998 (vol. 9 no. 12)
pp. 1180-1194

Abstract—One of the most crucial qualities of an optimizing compiler is its ability to detect when different data references access the same storage location. Such references are said to be data-dependent and they impose constraints on the amount of program modifications the compiler can apply for improving the program's performance. For parallelizing compilers, the most important program constructs to investigate are loops and the array references they contain. In previous work, we have found a serious limitation of current data dependence tests to be that they cannot handle loop bounds or array subscripts that are symbolic, nonlinear expressions. In this paper, we describe a dependence test, called the Range Test, that can handle such expressions. Briefly, the Range Test proves independence by determining whether certain symbolic inequalities hold for a permutation of the loop nest. Powerful symbolic analyses and constraint propagation techniques were developed to prove such inequalities. The Range Test has been implemented in Polaris, a parallelizing compiler developed at the University of Illinois. We will present measurements of the Range Test's performance and compare it with state-of-the-art tests.

[1] U. Banerjee,Dependence Analysis for Supercomputing. Norwell, MA: Kluwer, 1988.
[2] U. Banerjee, "A Theory of Loop Permutations," Languages and Compilers for Parallel Computing, D. Gelernter, A. Nicolau, and D. Padua, eds.. MIT Press, 1990.
[3] U. Banerjee, R. Eigenmann, A. Nicolau, and D.A. Padua, "Automatic Program Parallelization," Proc. IEEE, vol. 81, Feb. 1993.
[4] M. Berry, D. Chen, P. Koss, D. Kuck, L. Pointer, S. Lo, Y. Pang, R. Roloff, A. Sameh, E. Clementi, S. Chin, D. Schneider, G. Fox, P. Messina, D. Walker, C. Hsiung, J. Schwarzmeier, K. Lue, S. Orszag, F. Seidl, O. Johnson, G. Swanson, R. Goodrum, and J. Martin, "The Perfect Club Benchmarks: Effective Performance Evaluation of Supercomputers," Int'l. J. Supercomputer Applications, vol. 3, no. 3, pp. 5-40, Fall 1989.
[5] W. Blume, R. Doallo, R. Eigenmann, J. Grout, J. Hoeflinger, T. Lawrence, J. Lee, D. Padua, Y. Paek, B. Pottenger, L. Rauchwerger, and P. Tu,“Parallel Programming with Polaris,” Computer, vol. 29, no. 12, pp. 78-82, Dec. 1996.
[6] W. Blume and R. Eigenmann, "The Range Test: A Dependence Test for Symbolic, Non-Linear Expressions," Proc. Supercomputing '94, pp. 528-537,Washington D.C., Nov. 1994.
[7] W. Blume and R. Eigenmann, "Symbolic Range Propagation," Proc. Ninth Int'l Parallel Processing Symp., pp. 357-363, Apr. 1995.
[8] W. Blume and R. Eigenmann, “Demand-Driven, Symbolic Range Propagation,” Proc. Eighth Workshop Languages and Compilers for Parallel Computing, Aug. 1995.
[9] W. Blume and R. Eigenmann, "An Overview of Symbolic Analysis Techniques Needed for the Effective Parallelization of the Perfect Benchmarks," Proc. 1994 Int'l Conf. Parallel Processing, pp. II233-II238, Aug. 1994.
[10] W. Blume, R. Eigenmann, K. Faigin, J. Grout, J. Hoeflinger, D. Padua, P. Petersen, B. Pottenger, L. Rauchwerger, P. Tu, and S. Weatherford, "Polaris: Improving the Effectiveness of Parallelizing Compilers," Lecture Notes in Computer Science, 892: Languages and Compilers for Parallel Computing, pp. 141-154, 1995.
[11] W. Blume, R. Eigenmann, J. Hoeflinger, D. Padua, P. Petersen, L. Rauchwerger, and P. Tu, "Automatic Detection of Parallelism: A Grand Challenge for High-Performance Computing," IEEE Parallel and Distributed Technology, vol. 2, no. 3, pp. 37-47, Fall 1994.
[12] F. Bourdoncle, "Abstract Debugging of Higher-Order Imperative Languages," Proc. ACM SIGPLAN '93 Conf. Programming Language Design and Implementation, pp. 46-55, June 1993.
[13] P. Cousot and R. Cousot, "Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints," Proc. Symp. Principles of Programming Languages, 1977.
[14] P. Cousot and N. Halbwachs, “Automatic Discovery of Linear Restraints among Variables of a Program,” Proc. Fifth Ann. ACM Symp. Principles of Programming Languages, pp. 84–97, Jan. 1978.
[15] R. Cytron, J. Ferrante, B.K. Rosen, M.N. Wegman, and F.K. Zadeck, "Efficiently Computing Static Single Assignment Form and the Control Dependence Graph," ACM Trans. Programming Languages and Systems, Oct. 1991.
[16] R.J. Duffin, "On Fourier's Analysis of Linear Inequality Systems," Math. Programming Study 1, pp. 71-95, 1974.
[17] R. Eigenmann, J. Hoeflinger, Z. Li, and D. Padua, “Experience in the Automatic Parallelization of Four Perfect-Benchmark Programs,” Proc. Fourth Workshop Languages and Compilers for Parallel Computing, Aug. 1991.
[18] R. Eigenmann, J. Hoeflinger, and D. Padua, "On the Automatic Parallelization of the Perfect Benchmarks," IEEE Trans. Parallel and Distributed Systems, vol. 9, no. 1, pp. 5-23, Jan. 1998.
[19] K.A. Faigin, J.P. Hoeflinger, D.A. Padua, P.M. Petersen, and S.A. Weatherford, "The Polaris Internal Representation," Int'l J. Parallel Programming, vol. 22, no. 5, pp. 553-586, Oct. 1994.
[20] G. Goff, K. Kennedy, and C. Tseng, "Practical Dependence Testing," Proc. SIGPLAN '91 Conf. Programming Language Design and Implementation, pp. 15-29,Toronto, Canada, June 1991.
[21] M. Haghighat and C. Polychronopoulos, "Symbolic Dependence Analysis for High-Performance Parallelizing Compilers," Parallel and Distributed Computing: Advances in Languages and Compilers for Parallel Processing, pp. 310-330.Cambridge, Mass.: MIT Press, 1991.
[22] M. Haghighat and C. Polychronopoulos, "Symbolic Analysis: A Basis for Parallelization, Optimization, and Scheduling of Programs," Proc. Sixth Ann. Workshop Languages and Compilers for Parallel Computing,Portland, Ore., Aug. 1993.
[23] W.H. Harrison, "Compiler Analysis of the Value Ranges for Variables," IEEE Trans. Software Eng., vol. 3, no. 3, pp. 243-250, May 1977.
[24] J. Hoeflinger, "Run-Time Dependence Testing by Integer Sequence Analysis," Technical Report 1194, Center for Supercomputing Research and Development, Univ. of Illinois at Urbana-Champaign, Jan. 1992.
[25] W. Kelly, V. Maslov, W. Pugh, E. Rosser, T. Shpeisman, and D. Wonnacott, “The Omega Library Interface Guide,” Technical Report CS-TR-3445, Computer Science Dept., Univ. of Maryland, College Park, Mar. 1995.
[26] V. Maslov, "Delinearization: An Efficient Way to Break Multi-Loop Dependence Equations," Proc. SIGPLAN Conf. Programming Language Design and Implementation, pp. 152-161,San Francisco, June 1992.
[27] D. Maydan, J. Hennessy, and M. Lam,“Efficient and exact data dependence analysis,”inProc. ACM SIGPLAN 91' Conf. Progr. Lang. Des., Implement., Toronto, Canada, June 1991, pp. 1–14.
[28] Y. Paek, J. Hoeflinger, D. Padua, “Simplification of Array Access Patterns for Compiler Optimizations,” Proc. ACM SIGPLAN‘98, PLDI, pp. 60–71, June 1998.
[29] P.M. Petersen and D.A. Padua, "Static and Dynamic Evaluation of Data Dependence Analysis," Proc. Int'l Conf. Supercomputing, ICS '93, pp. 107-116,Tokyo, June 1993.
[30] W. Pugh, “The Omega Test: A Fast and Practical Integer Programming Algorithm for Dependence Analysis,” Comm. ACM, vol. 8, pp. 102–114, Aug. 1992.
[31] H.P. Williams, "Fourier's Method of Linear Programming and its Dual," The Am. Math. Monthly, vol. 93, no. 9, pp. 681-695, Nov. 1986.
[32] M. Wolfe, "Triangular Banerjee's Inequalities with Directions," Technical Report CS/E 92-013, Oregon Graduate Inst. of Science and Tech nology, June 1992.
[33] M. Wolfe and U. Banerjee, "Data Dependence and Its Application to Parallel Processing," Int'l J. Parallel Programming, vol. 16, no. 2, pp. 137-178, 1987.

Index Terms:
Data-dependence test, optimizing compilers, program parallelization.
Citation:
William Blume, Rudolf Eigenmann, "Nonlinear and Symbolic Data Dependence Testing," IEEE Transactions on Parallel and Distributed Systems, vol. 9, no. 12, pp. 1180-1194, Dec. 1998, doi:10.1109/71.737695
Usage of this product signifies your acceptance of the Terms of Use.