Skip to main content

A singular loop transformation framework based on non-singular matrices

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1992)

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

Abstract

In this paper, we discuss a loop transformation framework that is based on integer non-singular matrices. The transformations included in this framework are called Λ-transformations and include permutation, skewing and reversal, as well as a transformation called loop scaling. This framework is more general than existing ones; however, it is also more difficult to generate code in our framework. This paper shows how integer lattice theory can be used to generate efficient code. An added advantage of our framework over existing ones is that there is a simple completion algorithm which, given a partial transformation matrix, produces a full transformation matrix that satisfies all dependences. This completion procedure has applications in parallelization and in the generation of code for NUMA machines.

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 and K. Kennedy. Automatic translation of FORTRAN programs to vector form. ACM Transactions on Progamming Languages and Systems, 9(4):491–542, October 1987.

    Google Scholar 

  2. C. Ancourt and F. Irigoin. Scanning polyhedra with DO loops. In Third ACM Symposium on Principles and Practice of Parallel Programming, pages 39–50, April 1991.

    Google Scholar 

  3. U. Banerjee. Unimodular transformations of double loops. In Proceedings of the Workshop on Advances in Languages and Compilers for Parallel Processing, pages 192–219, August 1990.

    Google Scholar 

  4. M. Barnett and C. Lengauer. Loop parallelization and unimodularity. Technical Report ECS-LFCS-92-197, University of Edinburgh, 1992.

    Google Scholar 

  5. J. W. S. Cassels. An introduction to the geometry of numbers. Berlin, Springer, 1959.

    Google Scholar 

  6. G. B. Dantzig and B. C. Eaves. Fourier-motzkin elimination and its dual. Journal of Combinatorial Theory(A), 14:288–297, 1973.

    Google Scholar 

  7. W. Li and K. Pingali. Access Normalization: Loop restructuring for NUMA compilers. In Proc. 5th International Conference on Architectural Support for Programming Languages and Operating Systems, October 1992.

    Google Scholar 

  8. W. Li and K. Pingali. A singular loop transformation framework based on non-singular matrices. Technical Report 92-1294, Department of Computer Science, Cornell University, July 1992.

    Google Scholar 

  9. L. Lu. A unified framework for systematic loop transformations. In 3rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 28–38, April 1991.

    Google Scholar 

  10. D. Padua and M. Wolfe. Advanced compiler optimizations for supercomputers. Communications of ACM, 29(12):1184–1201, December 1986.

    Google Scholar 

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

    Google Scholar 

  12. M. Wolf and M. Lam. A data locality optimizing algorithm. In Proc. ACM SIGPLAN 91 Conference on Programming Language Design and Implementation, pages 30–44, June 1991.

    Google Scholar 

  13. M. Wolf and M. Lam. A loop transformation theory and an algorithm to maximize parallelism. IEEE Transactions on Parallel and Distributed Systems, October 1991.

    Google Scholar 

  14. M. Wolfe. Optimizing Supercompilers for Supercomputers. Pitman Publishing, London, 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Li, W., Pingali, K. (1993). A singular loop transformation framework based on non-singular matrices. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1992. Lecture Notes in Computer Science, vol 757. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57502-2_60

Download citation

  • DOI: https://doi.org/10.1007/3-540-57502-2_60

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57502-3

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics