An experimental evaluation of data dependence analysis techniques

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 term's 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 l-Test does not improve parallelization and program execution performance.

[1]  Yunheung Paek,et al.  Parallel Programming with Polaris , 1996, Computer.

[2]  David Niedzielski,et al.  An Analytical Comparison of the I-Test and Omega Test , 1999, LCPC.

[3]  William Pugh,et al.  Eliminating false data dependences using the Omega test , 1992, PLDI '92.

[4]  Chau-Wen Tseng,et al.  The Power Test for Data Dependence , 1992, IEEE Trans. Parallel Distributed Syst..

[5]  Utpal Banerjee,et al.  Dependence analysis for supercomputing , 1988, The Kluwer international series in engineering and computer science.

[6]  George B. Dantzig,et al.  Fourier-Motzkin Elimination and Its Dual , 1973, J. Comb. Theory A.

[7]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[8]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[9]  Kleanthis Psarris The Banerjee-Wolfe and GCD Tests on Exact Data Dependence Information , 1996, J. Parallel Distributed Comput..

[10]  Donald E. Knuth The Art of Computer Programming 2 / Seminumerical Algorithms , 1971 .

[11]  Konstantinos Kyriakopoulos,et al.  Data dependence testing in practice , 1999, 1999 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00425).

[12]  William Pugh,et al.  A practical algorithm for exact array dependence analysis , 1992, CACM.

[13]  Zhiyuan Li,et al.  An Efficient Data Dependence Analysis for Parallelizing Compilers , 1990, IEEE Trans. Parallel Distributed Syst..

[14]  Zhiyu Shen,et al.  An Empirical Study of Fortran Programs for Parallelizing Compilers , 1990, IEEE Trans. Parallel Distributed Syst..

[15]  KLEANTHIS PSARRIS,et al.  On the Accuracy of the Banerjee Test , 1991, J. Parallel Distributed Comput..

[16]  Rudolf Eigenmann,et al.  Nonlinear and Symbolic Data Dependence Testing , 1998, IEEE Trans. Parallel Distributed Syst..

[17]  William Pugh,et al.  Going Beyond Integer Programming with the Omega Test to Eliminate False Data Dependences , 1995, IEEE Trans. Parallel Distributed Syst..

[18]  Monica S. Lam,et al.  Efficient and exact data dependence analysis , 1991, PLDI '91.

[19]  Santosh Pande,et al.  An Empirical Study of the I Test for Exact Data Dependence , 1994, 1994 International Conference on Parallel Processing Vol. 3.

[20]  Ron Cytron,et al.  Interprocedural dependence analysis and parallelization , 1986, SIGP.

[21]  David A. Padua,et al.  Static and Dynamic Evaluation of Data Dependence Analysis Techniques , 1996, IEEE Trans. Parallel Distributed Syst..

[22]  Xiangyun Kong,et al.  The Direction Vector I Test , 1993, IEEE Trans. Parallel Distributed Syst..

[23]  Kleanthis Psarris,et al.  The I Test: An Improved Dependence Test for Automatic Parallelization and Vectorization , 1991, IEEE Trans. Parallel Distributed Syst..

[24]  Lawrence Rauchwerger,et al.  Effective Automatic Parallelization with Polaris , 1995 .

[25]  Ken Kennedy,et al.  Practical dependence testing , 1991, PLDI '91.