Skip to main content
Log in

An Analytical Evaluation of Data Dependence Analysis Techniques

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

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”).

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1

Similar content being viewed by others

References

  1. Allen, R., Kennedy, K.: Optimizing Compilers for Modern Architectures. Morgan Kaufmann Publishers, San Francisco (2002)

    Google Scholar 

  2. Bacon, D.F., Graham, S.L., Sharp, O.J.: Compiler transformations for high-performance computing. ACM Comput. Surv. 26(4), 345–420 (1994)

    Article  Google Scholar 

  3. Banerjee, U.: Loop Parallelization. Kluwer Academic Publishers, Norwell (1994)

    Book  Google Scholar 

  4. Banerjee, U.: Dependence Analysis. Kluwer Academic Publishers, Norwell (1997)

    MATH  Google Scholar 

  5. 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)

  6. Blume, W., Eigenmann, R.: Nonlinear and symbolic data dependence testing. IEEE Trans. Parallel Distrib. Syst. 9(12), 1180–1194 (1998)

    Article  Google Scholar 

  7. Chandru, V.: Variable elimination in linear constraints. Comput. J. 36(5), 463–473 (1993)

    Article  MathSciNet  Google Scholar 

  8. Fahringer, T., Scholz, B.: A unified symbolic evaluation framework for parallelizing compilers. IEEE Trans. Parallel Distrib. Syst. 11(11), 1105–1125 (2000)

    Article  Google Scholar 

  9. 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)

  10. Haghighat, M.R.: Symbolic Analysis for Parallelizing Compilers. Kluwer Academic Publishers, Norwell (1995)

    MATH  Google Scholar 

  11. 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)

    Article  Google Scholar 

  12. Kyriakopoulos, K., Psarris, K.: Data dependence analysis techniques for increased accuracy and extracted parallelism. Int. J. Parallel Program. (IJPP) 32(4), 317–359 (2004)

    Article  Google Scholar 

  13. Kyriakopoulos, K., Psarris, K.: Non-linear symbolic analysis for advanced program parallelization. IEEE Trans. Parallel Distrib. Syst. 20(5), 623–640 (2009)

    Article  Google Scholar 

  14. Li, Z., Yew, P., Zhu, C.: An efficient data dependence analysis for parallelizing compilers. IEEE Trans. Parallel Distrib. Syst. 1(1), 26–34 (1990)

    Article  Google Scholar 

  15. 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)

  16. Petersen, P., Padua, D.: Static and dynamic evaluation of data dependence analysis techniques. IEEE Trans. Parallel Distrib. Syst. 7(11), 1121–1132 (1996)

    Article  Google Scholar 

  17. Psarris, K.: The Banerjee–Wolfe and GCD tests on exact data dependence information. J. Parallel Distrib. Comput. 32(2), 119–138 (1996)

    Article  MathSciNet  Google Scholar 

  18. Psarris, K., Kyriakopoulos, K.: An experimental evaluation of data dependence analysis techniques. IEEE Trans. Parallel Distrib. Syst. 15(3), 196–213 (2004)

    Article  Google Scholar 

  19. Psarris, K., Kong, X., Klappholz, D.: The direction vector I Test. IEEE Trans. Parallel Distrib. Syst. 4(11), 1280–1290 (1993)

    Article  Google Scholar 

  20. Pugh, W.: A practical algorithm for exact array dependence analysis. Commun. ACM 35(8), 102–114 (1992)

    Article  Google Scholar 

  21. 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)

  22. Pugh, W., Wonnacott, D.: Constraint-based array dependence analysis. ACM Trans. Program. Lang. Syst. 20(3), 635–678 (1998)

    Article  Google Scholar 

  23. Schrijver, A.: Theory of Linear and Integer Programming. Wiley, Hoboken (1986)

    MATH  Google Scholar 

  24. 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)

  25. Williams, H.P.: Fourier–Motzkin elimination: extension to integer programming problems. J. Comb. Theory (A) 21, 118–123 (1976)

    Article  MathSciNet  Google Scholar 

  26. Williams, H.P.: A characterisation of all feasible solutions to an integer program. Discrete Appl. Math. 5, 147–155 (1983)

    Article  MathSciNet  Google Scholar 

  27. Wolfe, M.E.: High Performance Compilers for Parallel Computing. Addison-Wesley, Redwood City (1996)

    MATH  Google Scholar 

  28. Wolfe, M., Tseng, C.: The power test for data dependence. IEEE Trans. Parallel Distrib. Syst. 3(5), 591–601 (1992)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Kleanthis Psarris.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-018-0577-7

Keywords

Navigation