Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

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

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

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.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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

Notes

  1. Linpack, Eispack and the Perfect Benchmarks that will be introduced later, are different sets of benchmarks targeting performance evaluation of parallel programs generated by parallelizing compilers.

  2. It seems like \(GCD(e)\rightarrow \sim Solvable(e,UI)\) mismatches Axiom (D7). However, we conclude in Table 1 that \(GCD(e)\leftrightarrow \sim Solvable(e,UI)\), so we write them in this form to make the deductions concise. So are the situations in Theorems 7, 9 and 10.

  3. A real shadow is the whole shadow cast by an object while a dark shadow is clearly dark below any part of the object that is at least one unit thick. Refer to [24] for more details.

References

  1. Allen R, Kennedy K (2001) Optimizing compilers for modern architectures: a dependence-based approach. Morgan Kaufmann Publisher

  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–29

  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–203

    Google Scholar 

  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–364

    Article  Google Scholar 

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

    Article  Google Scholar 

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

    Article  Google Scholar 

  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–14

  8. Williams HP (1976) Fourier-Motzkin elimination extension to integer programming problems. J Combin Theory (A) 21(1):118–123

    Article  MathSciNet  MATH  Google Scholar 

  9. Wolfe MJ (1982) Optimizing supercompilers for supercomputers. PhD thesis. Department of Computer Science. University of Illinois, Champaign

  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–1310

    Article  MathSciNet  MATH  Google Scholar 

  11. Muraoka Y (1971) Parallelism exposure and exploitation in programs. PhD thesis. Department of Computer Science. University of Illinois, Champaign

  12. Hamilton AG (1988) Logic for mathematicians, 2nd edn. Cambridge University Press, Cambrige

    MATH  Google Scholar 

  13. Alllen JR (1983) Dependence analysis for subscripted variables and its application to program transformations. Ph.D. thesis. Department of Mathematical Sciences, Rice University

  14. Callahan D (1986) Dependence testing in PFC: weak separability. Supercomputer Software Newsletter 2. Department of Computer Science, Rice University, Houston

    Google Scholar 

  15. Li ZY, Yew PC, Zhu CQ (1990) An efficient data dependence analysis for parallelizing compilers. IEEE Trans Parallel Distrib Syst 1(1):26–34

    Article  Google Scholar 

  16. Wolfe MJ (1995) High performance compilers for parallel computing. Addison-Wesley Press, Boston

    MATH  Google Scholar 

  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–152

  18. Banerjee U, Eigenmann R, Nicolau A, Padua DA (1993) Automatic program parallelization. Proc IEEE 81(2):211–243

    Google Scholar 

  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–349

    Article  Google Scholar 

  20. Knuth DE (1997) The art of computer programming, seminumerical algorithms, vol 2, 3rd edn. Addison-Wesley, Boston

    MATH  Google Scholar 

  21. Banerjee U (1996) Dependence analysis. Kluwer Academic Publishers, Dordrecht

    MATH  Google Scholar 

  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–224

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

    Article  Google Scholar 

  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–13

  25. Feautrier P (1992) Some efficient solutions to the affine scheduling problem. part I. one-dimensional time. Int J Parallel. Program 21(5):313–348

    MathSciNet  MATH  Google Scholar 

  26. Feautrier P (1992) Some efficient solutions to the affine scheduling problem. part II. Multi-dimensional time. Int J Parallel. Program 21(6):389–420

    MathSciNet  MATH  Google Scholar 

  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–16

  28. Mohammad RH (1995) Symbolic analysis for parallelizing compilers. Springer, Berlin

    MATH  Google Scholar 

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

    Article  Google Scholar 

  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–115

  31. Wu JH, Chu CP (2007) An exact data dependence test for quadratic expressions. Inf Sci 177(23):5316–5328

    Article  MATH  Google Scholar 

  32. Zhao J, Zhao RC, Han L, Xu JL (2013) QP test: a dependence test for quadratic array subscripts. IET Softw 7(5):271–282

    Article  Google Scholar 

  33. Zhou J, Zeng GH (2008) A general data dependence analysis for parallelizing compilers. J Supercomput 45(2):236–252

    Article  Google Scholar 

  34. Zhao J, Zhao RC, Chen X, Zhao B (2015) An improved nonlinear data dependence test. J Supercomput 71(1):340–368

    Article  Google Scholar 

  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–229

Download references

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.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jie Zhao.

Additional information

National Natural Science Foundation of China (61702546).

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Zhao, J., Zhao, R. K-DT: a formal system for the evaluation of linear data dependence testing techniques. J Supercomput 74, 1655–1675 (2018). https://doi.org/10.1007/s11227-017-2187-3

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-017-2187-3

Keywords