The Journal of Supercomputing

, Volume 74, Issue 4, pp 1655–1675 | Cite as

K-DT: a formal system for the evaluation of linear data dependence testing techniques

Article
  • 188 Downloads

Abstract

The power of data dependence testing techniques of a parallelizing compiler is its essence to transform and optimize programs. Numerous techniques were proposed in the past, and it is, however, still a challenging problem to evaluate the relative power of these techniques to better understand the data dependence testing problem. In the past, either empirical studies or experimental evaluation results are published to compare these data dependence testing techniques, being not able to convince the research community completely. In this paper, we show a theoretical study on this issue, comparing the power on disproving dependences of existing techniques by proving theorems in a proposed formal system K-DT. Besides, we also present the upper bounds of these techniques and introduce their minimum complete sets. To the best of our knowledge, K-DT is the first formal system used to compare the power of data dependence testing techniques, and this paper is the first work to show the upper bounds and minimum complete sets of data dependence testing techniques.

Keywords

Parallelizing compiler Data dependence testing technique Predicate logic Minimum complete set 

Notes

Acknowledgements

We would like to acknowledge anonymous referees for their invaluable comments and suggestions on this paper. Our work is supported by the National Natural Science Foundation of China under Grant No. 61702546.

References

  1. 1.
    Allen R, Kennedy K (2001) Optimizing compilers for modern architectures: a dependence-based approach. Morgan Kaufmann PublisherGoogle Scholar
  2. 2.
    Goff G, Kennedy K, Tseng CW (1991) Practical dependence testing. In: Proceedings of the ACM SIGPLAN 1991 Conference on Programming Language Design and Implementation, pp 15–29Google Scholar
  3. 3.
    Allen R, Kennedy K (1984) PFC: a program to convert Fortran to parallel form. In: Hwang K (ed) Supercomputers: design and applications. IEEE Computer Society Press, Silver Spring, pp 186–203Google Scholar
  4. 4.
    Shen Z, Li Z, Yew P (1990) An empirical study of Fortran programs for parallelizing compilers. IEEE Trans Parallel Distrib Syst 1(3):356–364CrossRefGoogle Scholar
  5. 5.
    Petersen P, Padua D (1996) Static and dynamic evaluation of data dependence analysis techniques. IEEE Trans Parallel Distrib Syst 7(11):1121–1132CrossRefGoogle Scholar
  6. 6.
    Psarrisand K, Kyriakopoulos K (2004) An experimental evaluation of data dependence analysis techniques. IEEE Trans Parallel Distrib Syst 15(3):196–213CrossRefGoogle Scholar
  7. 7.
    Maydan DE, Hennessy JL, Lam MS (1991) Efficient and exact data dependence analysis. In: Proceedings of the ACM SIGPLAN 1991 Conference on Programming Language Design and Implementation, pp 1–14Google Scholar
  8. 8.
    Williams HP (1976) Fourier-Motzkin elimination extension to integer programming problems. J Combin Theory (A) 21(1):118–123MathSciNetCrossRefMATHGoogle Scholar
  9. 9.
    Wolfe MJ (1982) Optimizing supercompilers for supercomputers. PhD thesis. Department of Computer Science. University of Illinois, ChampaignGoogle Scholar
  10. 10.
    Kuck D, Muraoka Y, Chen S (1972) On the number of operations simultaneously executable in Fortran-like programs and their resulting speedup. IEEE Trans Comput 21(12):1293–1310MathSciNetCrossRefMATHGoogle Scholar
  11. 11.
    Muraoka Y (1971) Parallelism exposure and exploitation in programs. PhD thesis. Department of Computer Science. University of Illinois, ChampaignGoogle Scholar
  12. 12.
    Hamilton AG (1988) Logic for mathematicians, 2nd edn. Cambridge University Press, CambrigeMATHGoogle Scholar
  13. 13.
    Alllen JR (1983) Dependence analysis for subscripted variables and its application to program transformations. Ph.D. thesis. Department of Mathematical Sciences, Rice UniversityGoogle Scholar
  14. 14.
    Callahan D (1986) Dependence testing in PFC: weak separability. Supercomputer Software Newsletter 2. Department of Computer Science, Rice University, HoustonGoogle Scholar
  15. 15.
    Li ZY, Yew PC, Zhu CQ (1990) An efficient data dependence analysis for parallelizing compilers. IEEE Trans Parallel Distrib Syst 1(1):26–34CrossRefGoogle Scholar
  16. 16.
    Wolfe MJ (1995) High performance compilers for parallel computing. Addison-Wesley Press, BostonMATHGoogle Scholar
  17. 17.
    Shen ZY, Li ZY, Yew PC (1989) An empirical study on array subscripts and data dependencies. In: Proceedings of International Conference on Parallel Processing, pp 145–152Google Scholar
  18. 18.
    Banerjee U, Eigenmann R, Nicolau A, Padua DA (1993) Automatic program parallelization. Proc IEEE 81(2):211–243Google Scholar
  19. 19.
    Kong X, Klappholz D, Psarris K (1991) The I test: an improved dependence test for automatic parallelization and vectorization. IEEE Trans Parallel Distrib Syst 2(3):342–349CrossRefGoogle Scholar
  20. 20.
    Knuth DE (1997) The art of computer programming, seminumerical algorithms, vol 2, 3rd edn. Addison-Wesley, BostonMATHGoogle Scholar
  21. 21.
    Banerjee U (1996) Dependence analysis. Kluwer Academic Publishers, DordrechtMATHGoogle Scholar
  22. 22.
    Li ZY, Yew PC, Zhu CQ (1989) Data dependence analysis on multi-dimensional array references. In: Proceedings of the 3rd International Conference on Supercomputing, pp 215–224Google Scholar
  23. 23.
    Wolfe M, Tseng CW (1992) The power test for data dependence. IEEE Trans Parallel Distrib Syst 3(5):591–601CrossRefGoogle Scholar
  24. 24.
    Pugh W (1991) The omega test: a fast and practical Integer Programming algorithm for dependence analysis. In: Proceedings of the 1991 ACM/IEEE Conference on Supercomputing, pp 4–13Google Scholar
  25. 25.
    Feautrier P (1992) Some efficient solutions to the affine scheduling problem. part I. one-dimensional time. Int J Parallel. Program 21(5):313–348MathSciNetMATHGoogle Scholar
  26. 26.
    Feautrier P (1992) Some efficient solutions to the affine scheduling problem. part II. Multi-dimensional time. Int J Parallel. Program 21(6):389–420MathSciNetMATHGoogle Scholar
  27. 27.
    Bastoul C (2004) Code generation in the polyhedral model is easier than you think. In: Proceedings of the 13th International Conference on Parallel Architecture and Compilation Techniques, pp 7–16Google Scholar
  28. 28.
    Mohammad RH (1995) Symbolic analysis for parallelizing compilers. Springer, BerlinMATHGoogle Scholar
  29. 29.
    Blume W, Eigenmann R (1998) Nonlinear and symbolic data dependence testing. IEEE Trans Parallel Distrib Syst 9(12):1180–1194CrossRefGoogle Scholar
  30. 30.
    van Engelen RA, Birch J, Shou Y, Gallivan KA (2004) A unified framework for nonlinear dependence testing and symbolic analysis. In: Proceedings of the 18th Annual International Conference on Supercomputing, pp 106–115Google Scholar
  31. 31.
    Wu JH, Chu CP (2007) An exact data dependence test for quadratic expressions. Inf Sci 177(23):5316–5328CrossRefMATHGoogle Scholar
  32. 32.
    Zhao J, Zhao RC, Han L, Xu JL (2013) QP test: a dependence test for quadratic array subscripts. IET Softw 7(5):271–282CrossRefGoogle Scholar
  33. 33.
    Zhou J, Zeng GH (2008) A general data dependence analysis for parallelizing compilers. J Supercomput 45(2):236–252CrossRefGoogle Scholar
  34. 34.
    Zhao J, Zhao RC, Chen X, Zhao B (2015) An improved nonlinear data dependence test. J Supercomput 71(1):340–368CrossRefGoogle Scholar
  35. 35.
    Hummel J, Hendren LJ, Nicolau A (1994) A general data dependence test for dynamic, pointer-based data structures. In: Proceedings of the ACM SIGPLAN 1994 Conference on Programming Language Design and Implementation, pp 218–229Google Scholar

Copyright information

© Springer Science+Business Media, LLC, part of Springer Nature 2017

Authors and Affiliations

  1. 1.National Digital Switching System Engineering and Technological Research CenterZhengzhouPeople’s Republic of China
  2. 2.Zhongyuan University of TechnologyZhengzhouPeople’s Republic of China

Personalised recommendations