Data dependence testing in practice

Data dependence analysis is a fundamental step in an optimizing compiler. The results of the analysis enable the compiler to identify code fragments that can be executed in parallel. A number of data dependence tests have been proposed in the literature. In each test there are different tradeoffs between accuracy and efficiency. In this paper 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 accuracy and efficiency. We run various experiments using the Perfect Club Benchmarks and the scientific libraries Eispack, Linpack and Lapack. Several observations and conclusions are derived from the experimental results, which are displayed and analyzed in this paper.

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

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

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

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

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

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

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

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

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

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

[11]  Michael Wolfe,et al.  The Tiny Loop Restructuring Research Tool , 1991, ICPP.

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

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

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

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

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

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

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

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