Skip to main content

Unimodular Transformations

  • Reference work entry
Encyclopedia of Parallel Computing
  • 485 Accesses

Definition

A Unimodular Transformation is a general loop transformation based on a unimodular matrix. It changes a perfect nest of sequential loops into a similar nest with the same set of iterations executing in a different sequential order.

Discussion

Introduction

This essay gives the basic introduction to Unimodular Transformations. More advanced results on this topic are given in the essay Loop Nest Parallelization in this encyclopedia, where other transformations are considered as well.

The program model is a perfect nest L of m sequential loops. An iteration of L is an instance of the body of L. The program consists of a certain set of iterations that are to be executed in a certain sequential order. This execution order imposes a dependence structure on the set of iterations, based on how they access different memory locations. A loop in L carries a dependence if the dependence between two iterations is due to the unfolding of that loop. A loop can run in parallelif it carries...

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 1,600.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 1,799.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Bibliography

  1. Allen R, Kennedy K (Oct 1987) Automatic translation of FORTRAN programs to vector form. ACM Trans Program Lang Syst 9(4):491–542

    Article  MATH  Google Scholar 

  2. Allen R, Kennedy K (Oct 2001) Optimizing compilers for modern architectures. Morgan Kaufmann, San Francisco

    Google Scholar 

  3. Banerjee U (1990) Unimodular transformations of double loops. In: Proceedings of the third workshop on languages and compilers for parallel computing, Irvine, 1–3 Aug 1990. Available as Nicolau A, Gelernter D, Gross T, Padua D (eds) (1991) Advances in languages and compilers for parallel computing. The MIT Press, Cambridge, pp 192–219

    Google Scholar 

  4. Banerjee U (1993) Loop transformations for restructuring compilers: the foundations. Kluwer Academic, Norwell

    Book  MATH  Google Scholar 

  5. Banerjee U (1994) Loop transformations for restructuring compilers: loop parallelization. Kluwer Academic, Norwell

    Google Scholar 

  6. D’Hollander EH (July 1992) Partitioning and labeling of loops by unimodular transformations. IEEE Trans Parallel Distrib Syst 3(4):465–476

    Article  MathSciNet  Google Scholar 

  7. Dowling ML (Dec 1990) Optimal code parallelization using unimodular transformations. Parallel Comput 16(2–3):157–171

    Article  MATH  MathSciNet  Google Scholar 

  8. Irigoin F, Triolet R (1989) Dependence approximation and global parallel code generation for nested loops. Cosnard M et al. (eds) Parallel distrib algorithms. Elsevier (North-Holland), New York, pp 297–308

    Google Scholar 

  9. Lamport L (Feb 1974) The parallel execution of DO loops. Commun ACM 17(2):83–93

    Article  MATH  MathSciNet  Google Scholar 

  10. Li W, Pingali K (Apr 1994) A singular loop transformation framework based on non-singular matrices. Int J Parallel Program 22(2):183–205

    Article  MATH  MathSciNet  Google Scholar 

  11. Schrijver A (Oct 1987) Theory of linear and integer programming. Wiley, New York

    Google Scholar 

  12. Williams HP (Nov 1986) Fourier’s method of linear programming and its dual. The American Mathematical Monthly 93(9):681–695

    Article  MATH  MathSciNet  Google Scholar 

  13. Wolf ME, Lam MS (Oct 1991) A loop transformation theory and an algorithm to maximize parallelism. IEEE Trans Parallel Distrib Syst 2(4):452–471

    Article  Google Scholar 

  14. Wolfe M (Aug 1986) Loop skewing: the wavefront method revisited. Int J Parallel Program 15(4):279–293

    Article  MATH  Google Scholar 

  15. Wolfe M (1986) Advanced loop interchanging. In: Proceedings of the 1986 international conference on parallel processing, St. Charles, 19–22 Aug 1986, pp 536–543. IEEE Computer Society Press, Los Angeles

    Google Scholar 

  16. Wolfe MJ (1989) Optimizing supercompilers for supercomputers. The MIT Press, Cambridge

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer Science+Business Media, LLC

About this entry

Cite this entry

Banerjee, U. (2011). Unimodular Transformations. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_196

Download citation

Publish with us

Policies and ethics