Abstract
Optimizing compilers rely upon data dependence analysis to reveal the ordering constraints among statements in a program that need to be preserved in order to produce valid optimized and parallel code. Testing array references for data dependence is equivalent to determining whether a system of equalities and inequalities has an integer solution. 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 study the fundamental relationships between several data dependence tests. We consider the Banerjee Extreme Value test, Fourier Motzkin Variable Elimination (FMVE), the I-Test, and the Omega test, which are representative of the state of the art in data dependence analysis. The Banerjee Extreme Value test and FMVE can only determine the existence of real solutions to a system. Thus they can only disprove, but not prove, data dependence. The I-Test and the Omega test refine the Banerjee Extreme Value test and FMVE, respectively, to the integer domain and can prove data dependence. The Omega test is a more accurate data dependence test, but with worst case exponential time complexity. The I-Test is a polynomial time test, but it is not always conclusive. We first show that FMVE is equivalent to the Banerjee Extreme Value test. We then show that the Omega test’s technique to refine FMVE to integer solutions (dark shadow) is equivalent to the I-Test’s refinement of the Banerjee Extreme Value test to integer solutions (the accuracy condition). We prove that the I-Test returns an inconclusive (“maybe”) answer if and only if the Omega test requires an exponential time exhaustive search to produce an exact answer (the so-called “Omega Test Nightmare”).
Similar content being viewed by others
References
Allen, R., Kennedy, K.: Optimizing Compilers for Modern Architectures. Morgan Kaufmann Publishers, San Francisco (2002)
Bacon, D.F., Graham, S.L., Sharp, O.J.: Compiler transformations for high-performance computing. ACM Comput. Surv. 26(4), 345–420 (1994)
Banerjee, U.: Loop Parallelization. Kluwer Academic Publishers, Norwell (1994)
Banerjee, U.: Dependence Analysis. Kluwer Academic Publishers, Norwell (1997)
Birch, J., van Engelen, R.A., Gallivan, K.A., Shou, Y.: An empirical evaluation of chains of recurrences for array dependence testing. In: Proceedings of the 15th International Conference on Parallel Architectures and Compilation Techniques, Seattle, WA (2006)
Blume, W., Eigenmann, R.: Nonlinear and symbolic data dependence testing. IEEE Trans. Parallel Distrib. Syst. 9(12), 1180–1194 (1998)
Chandru, V.: Variable elimination in linear constraints. Comput. J. 36(5), 463–473 (1993)
Fahringer, T., Scholz, B.: A unified symbolic evaluation framework for parallelizing compilers. IEEE Trans. Parallel Distrib. Syst. 11(11), 1105–1125 (2000)
Golf, G., Kennedy, K., Tseng, C.: Practical dependence testing. In: Proceedings of the SIGPLAN’91 Conference on Programming Language Design and Implementation, Toronto, Canada (1991)
Haghighat, M.R.: Symbolic Analysis for Parallelizing Compilers. Kluwer Academic Publishers, Norwell (1995)
Kong, X., Klappholz, D., Psarris, K.: The I-Test: an improved dependence test for automatic parallelization and vectorization. IEEE Trans. Parallel Distrib. Syst. 2(3), 342–349 (1991)
Kyriakopoulos, K., Psarris, K.: Data dependence analysis techniques for increased accuracy and extracted parallelism. Int. J. Parallel Program. (IJPP) 32(4), 317–359 (2004)
Kyriakopoulos, K., Psarris, K.: Non-linear symbolic analysis for advanced program parallelization. IEEE Trans. Parallel Distrib. Syst. 20(5), 623–640 (2009)
Li, Z., Yew, P., Zhu, C.: An efficient data dependence analysis for parallelizing compilers. IEEE Trans. Parallel Distrib. Syst. 1(1), 26–34 (1990)
Maydan, D., Hennesy, J., Lam, M.: Efficient and exact data dependence analysis for parallelizing compilers. In: Proceedings of the SIGPLAN’91 Conference on Programming Language Design and Implementation, Toronto, Canada (1991)
Petersen, P., Padua, D.: Static and dynamic evaluation of data dependence analysis techniques. IEEE Trans. Parallel Distrib. Syst. 7(11), 1121–1132 (1996)
Psarris, K.: The Banerjee–Wolfe and GCD tests on exact data dependence information. J. Parallel Distrib. Comput. 32(2), 119–138 (1996)
Psarris, K., Kyriakopoulos, K.: An experimental evaluation of data dependence analysis techniques. IEEE Trans. Parallel Distrib. Syst. 15(3), 196–213 (2004)
Psarris, K., Kong, X., Klappholz, D.: The direction vector I Test. IEEE Trans. Parallel Distrib. Syst. 4(11), 1280–1290 (1993)
Pugh, W.: A practical algorithm for exact array dependence analysis. Commun. ACM 35(8), 102–114 (1992)
Pugh, W., Wonnacott, D.: Eliminating false data dependences using the omega test. In: Proceedings of the SIGPLAN’92 Conference on Programming Language Design and Implementation, San Francisco, CA (1992)
Pugh, W., Wonnacott, D.: Constraint-based array dependence analysis. ACM Trans. Program. Lang. Syst. 20(3), 635–678 (1998)
Schrijver, A.: Theory of Linear and Integer Programming. Wiley, Hoboken (1986)
van Engelen, R.A., Birch, J., Shou, Y., Walsh, B., Gallivan, K.A.: A unified framework for nonlinear dependence testing and symbolic analysis. In: Proceedings of the ACM International Conference on Supercomputing, Saint-Malo, France (2004)
Williams, H.P.: Fourier–Motzkin elimination: extension to integer programming problems. J. Comb. Theory (A) 21, 118–123 (1976)
Williams, H.P.: A characterisation of all feasible solutions to an integer program. Discrete Appl. Math. 5, 147–155 (1983)
Wolfe, M.E.: High Performance Compilers for Parallel Computing. Addison-Wesley, Redwood City (1996)
Wolfe, M., Tseng, C.: The power test for data dependence. IEEE Trans. Parallel Distrib. Syst. 3(5), 591–601 (1992)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Niedzielski, D., Psarris, K. & Theoharis, T. An Analytical Evaluation of Data Dependence Analysis Techniques. Int J Parallel Prog 47, 781–804 (2019). https://doi.org/10.1007/s10766-018-0577-7
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10766-018-0577-7