Skip to main content

Minimal data dependence abstractions for loop transformations

  • Back to Basics: Program Analysis
  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1994)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 892))

Abstract

Many abstractions of program dependences have already been proposed, such as the Dependence Distance, the Dependence Direction Vector, the Dependence Level or the Dependence Cone. These different abstractions have different precision. The minimal abstraction associated to a transformation is the abstraction that contains the minimal amount of information necessary to decide when such a transformation is legal. The minimal abstractions for loop reordering and unimodular transformations are presented. As an example, the dependence cone, that approximates dependences by a convex cone of the dependence distance vectors, is the minimal abstraction for unimodular transformations.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. R. Allen, K. Kennedy, ”Automatic Translation of FORTRAN Programs to Vector Form”, ACM Transactions on Programming Languages and Systems, Oct. 1987.

    Google Scholar 

  2. U. Banerjee, ”A Theory of Loop Permutations”, 2nd Workshop on Languages and compilers for parallel computing, 1989

    Google Scholar 

  3. U. Banerjee, ”Unimodular Transformation of Double Loops”, 3rd Workshop on Programming Languages and Compilers for Parallel Computing, Irvine, 1990

    Google Scholar 

  4. U. Banerjee, ”Loop transformations for restructuring compilers: the foundations”, Kluwer Academic Editor, 1993

    Google Scholar 

  5. A. J. Bernstein, ”Analysis of Programs for Parallel Processing”, IEEE Transactions on Electronic Computers, Vol. EC-15, No. 5, Oct. 1966.

    Google Scholar 

  6. P. Feautrier, ”Dataflow Analysis of Scalar and Array References”, Int. Journal of Parallel Programming, Vol. 20, No 1, February, 1991, pp 23–53.

    Google Scholar 

  7. P. Feautrier, ”Some Efficient Solutions to the Affine Scheduling Problem, Part I, One-Dimensional Time”, Int. Journal of Parallel Programming, Vol 21, 1992.

    Google Scholar 

  8. P. Feautrier, ”Some Efficient Solutions to the Affine Scheduling Problem, Part II, Multi-Dimensional Time”, Int. Journal of Parallel Programming, Vol 21, 1992.

    Google Scholar 

  9. F. Irigoin, ”Loop Reordering With Dependence Direction Vectors”, In Journées Firtech Systèmes et Télématique Architectures Futures: Programmation parallèle et intégration VLSI, Paris, Nov. 1988.

    Google Scholar 

  10. F. Irigoin, R. Triolet, ”Computing Dependence Direction Vectors and Dependence Cones with Linear Systems”, Rap. Int. CAI87E94 Ecole des Mines de Paris.

    Google Scholar 

  11. F. Irigoin, R. Triolet, ”Supernode Partitioning”, In Conference Record of Fifteenth ACM Symposium on Principles of Programming Languages, 1988.

    Google Scholar 

  12. F. Irigoin, R. Triolet, ”Dependence Approximation and Global Parallel Code Generation for Nested Loops”, In International Workshop Parallel and Distributed Algorithms, Bonas, France, Oct. 1988.

    Google Scholar 

  13. R. Karp, R. Miller and S. Winograd, ”The Organization of Computations for Uniform Recurence Equations”, Journal of the ACM, v. 14, n. 3, pp. 563–590, 1967

    Google Scholar 

  14. L. Lamport, ”The Parallel Execution of DO Loops”, Communications of the ACM 17(2), pp. 83–93, 1974

    Google Scholar 

  15. W. Li, K. Pingali, ”A singular loop transformation framework based on non-singular matrices”, In Languages and Compilers for Parallel Computing, Yale University, August 1992.

    Google Scholar 

  16. D. Maydan, S. Amarasinghe, M.Lam, ”Array Data Flow Analysis and its use in Array Privatization”, Stanford Report, 1993

    Google Scholar 

  17. Y. Muraoka, ”Parallelism Exposure and Exploitation in Programs”, PhD thesis, Dept. of Computer Science, University of Illinois at Urbana-champaign, Feb. 1971.

    Google Scholar 

  18. William Pugh, ”A Practical Algorithm for Exact Array Dependence Analysis”, Communications of the ACM, August 1992, pp.102–114

    Google Scholar 

  19. V. Sarkar, R. Thekkath, ”A General Framework for Iteration-Reordering Loop Transformations”, In Programming Language Design and Implementation, San Francisco, June 1992.

    Google Scholar 

  20. A. Schrijver, Theory of Linear and Integer Programming, John Wiley & Sons 1986.

    Google Scholar 

  21. M.E. Wolf, M.S. Lam, ”Maximizing Parallelism via Loop Transformations”, In Programming Languages and Compilers for Parallel Computing, Aug. 1–3, 1990.

    Google Scholar 

  22. M.E. Wolf, M.S. Lam, ”A Loop Transformation Theory and an Algorithm to Maximize Parallelism”, Transactions on Parallel and Distributed Systems, Oct. 1991.

    Google Scholar 

  23. M. Wolfe, ”Optimizing Supercompilers for Supercomputers”, PhD Thesis, Dept. of Computer Science, University of Illinois at Urbana-Champaign, October 1982.

    Google Scholar 

  24. M. Wolfe, ”Experiences with Data Dependence and Loop Restructuring in the Tiny Research Tool”, Technical Report, No. CS/E 90-016, Sep. 1990.

    Google Scholar 

  25. M. Wolfe, ”Experiences with Data Dependence Abstractions”, In Proceedings of the 1991 ACM International Conference on Supercomputing, Germany, June 1991.

    Google Scholar 

  26. Y.Q. Yang, ”Tests de Dependance et Transformations de programme”, PhD of University Pierre et Marie Curie, November 93.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Keshav Pingali Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Yang, YQ., Ancourt, C., Irigoin, F. (1995). Minimal data dependence abstractions for loop transformations. In: Pingali, K., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1994. Lecture Notes in Computer Science, vol 892. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0025880

Download citation

  • DOI: https://doi.org/10.1007/BFb0025880

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58868-9

  • Online ISBN: 978-3-540-49134-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics