This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
An Experimental Evaluation of Data Dependence Analysis Techniques
March 2004 (vol. 15 no. 3)
pp. 196-213

Abstract—Optimizing compilers rely upon program analysis techniques to detect data dependences between program statements. Data dependence information captures the essential ordering constraints of the statements in a program that need to be preserved in order to produce valid optimized and parallel code. Data dependence testing is very important for automatic parallelization, vectorization, and any other code transformation. In this paper, we examine the impact of data dependence analysis in practice. A number of data dependence tests have been proposed in the literature. In each test, there are different trade offs between accuracy and efficiency. We present an experimental evaluation of several data dependence tests, including the Banerjee test, the I-Test, and the Omega test. We compare these tests in terms of data dependence accuracy, compilation efficiency, effectiveness in parallelization, and program execution performance. We analyze the reasons why a data dependence test can be inexact and we explain how the examined tests handle such cases. We run various experiments using the Perfect Club Benchmarks and the scientific library Lapack. We present the measured accuracy of each test and the reasons for any approximation. We compare these tests in terms of efficiency and we analyze the trade offs between accuracy and efficiency. We also determine the impact of each data dependence test on the total compilation time. Finally, we measure the number of loops parallelized by each test and we compare the execution performance of each benchmark on a multiprocessor. Our results indicate that the Omega test is more accurate, but also very inefficient in the cases where the other two tests are inaccurate. In general, the cost of the Omega test is high and uses a significant percentage of the total compilation time. Furthermore, the difference in accuracy of the Omega test over the Banerjee test and the I-Test does not improve parallelization and program execution performance.

[1] A. Aho, R. Sethi, and J. Ullman, Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1988.
[2] U. Banerjee, Dependence Analysis for Supercomputing. Boston: Kluwer Academic, 1988.
[3] W. Blume and W. Eigenmann, “Nonlinear and Symbolic Data Dependence Testing,” IEEE Trans. Parallel and Distributed Systems, vol. 9, no. 12, pp. 1180-1194, Dec. 1998.
[4] W. Blume, R. Eigenmann, K. Faigin, J. Grout, J. Hoeflinger, D. Padua, P. Petersen, B. Pottenger, L. Rauchwerger, P. Tu, and S. Weatherford, Effective Automatic Parallelization with Polaris Int'l J. Parallel Programming, May 1995.
[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] M. Burke and R. Cytron, Interprocedural Dependence Analysis and Parallelization Proc. SIGPLAN Symp. Compiler Construction, June 1986.
[7] G. Dantzig and B. Eaves, Fourier-Motzkin Elimination and Its Dual J. Combinatorial Theory (A), vol. 14, 1973.
[8] G. Golf, K. Kennedy, and C. Tseng, Practical Dependence Testing Proc. SIGPLAN Conf. Programming Language Design and Implementation, June 1991.
[9] D. Knuth, The Art of Computer Programming, vol. 2, Seminumerical Algorithms. Addison-Wesley, 1981.
[10] X. Kong, D. Klappholz, and K. Psarris, The I-Test: An Improved Dependence Test for Automatic Parallelization and Vectorization IEEE Trans. Parallel and Distributed Systems, vol. 2, no. 3, July 1991.
[11] Z. Li, P.-C. Yew, and C.-Q. Zhu, "An Efficient Data Dependence Analysis for Parallelizing Compilers," IEEE Trans. Parallel and Distributed Systems, vol. 1, Jan. 1990.
[12] D. Maydan, J. Hennesy, and M. Lam, Efficient and Exact Data Dependence Analysis for Parallelizing Compilers Proc. SIGPLAN Conf. Programming Language Design and Implementation, June 1991.
[13] D. Niedzielski and K. Psarris, An Analytical Comparison of the I-Test and Omega Test Proc. 12th Int'l Workshop Languages and Compilers for Parallel Computing, Aug. 1999.
[14] P.M. Petersen and D.A. Padua, Static and Dynamic Evaluation of Data Dependence Analysis Techniques IEEE Trans. Parallel and Distributed Systems, vol. 7, no. 11, pp. 1121-1132, Nov. 1996.
[15] K. Psarris, The Banerjee-Wolfe and GCD Tests on Exact Data Dependence Information J. Parallel and Distributed Computing, vol. 32, no. 2, Feb. 1996.
[16] K. Psarris, D. Klappholz, and X. Kong, On the Accuracy of the Banerjee Test J. Parallel and Distributed Computing, vol. 12, no. 2, June 1991.
[17] K. Psarris, X. Kong, and D. Klappholz, The Direction Vector I Test IEEE Trans. Parallel and Distributed Systems, vol. 4, no. 11, Nov. 1993.
[18] K. Psarris and K. Kyriakopoulos, Data Dependence Testing in Practice Proc. Int'l Conf. Parallel Architectures and Compilation Techniques, Oct. 1999.
[19] K. Psarris and S. Pande, An Empirical Study of the I Test for Exact Data Dependence Proc. Int'l Conf. Parallel Processing, Aug. 1994.
[20] W. Pugh, A Practical Algorithm for Exact Array Dependence Analysis Comm. ACM, vol. 35, no. 8, Aug. 1992.
[21] W. Pugh and D. Wonnacott, Eliminating False Data Dependences Using the Omega Test Proc. SIGPLAN Conf. Programming Language Design and Implementation, June 1992.
[22] Z. Shen, Z. Li, and P.-C. Yew, "An Empirical Study of Fortran Programs for Parallelizing Compilers," IEEE Trans. Parallel and Distributed Systems, vol. 1, no. 3, pp. 356-364, July 1990.
[23] M. Wolfe, Optimizing Compilers for Supercomputers. London: Pitman and Cambridge, Mass.: MIT Press, 1989.
[24] M. Wolfe and C.-W. Tseng, "The Power Test for Data Dependence," IEEE Trans. Parallel and Distributed Systems, vol. 3, Sept. 1992.

Index Terms:
Parallelizing compilers, data dependence, program analysis, automatic parallelization, compiler optimization.
Citation:
Kleanthis Psarris, Konstantinos Kyriakopoulos, "An Experimental Evaluation of Data Dependence Analysis Techniques," IEEE Transactions on Parallel and Distributed Systems, vol. 15, no. 3, pp. 196-213, March 2004, doi:10.1109/TPDS.2004.1264806
Usage of this product signifies your acceptance of the Terms of Use.