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...
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Bibliography
Allen R, Kennedy K (Oct 1987) Automatic translation of FORTRAN programs to vector form. ACM Trans Program Lang Syst 9(4):491–542
Allen R, Kennedy K (Oct 2001) Optimizing compilers for modern architectures. Morgan Kaufmann, San Francisco
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
Banerjee U (1993) Loop transformations for restructuring compilers: the foundations. Kluwer Academic, Norwell
Banerjee U (1994) Loop transformations for restructuring compilers: loop parallelization. Kluwer Academic, Norwell
D’Hollander EH (July 1992) Partitioning and labeling of loops by unimodular transformations. IEEE Trans Parallel Distrib Syst 3(4):465–476
Dowling ML (Dec 1990) Optimal code parallelization using unimodular transformations. Parallel Comput 16(2–3):157–171
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
Lamport L (Feb 1974) The parallel execution of DO loops. Commun ACM 17(2):83–93
Li W, Pingali K (Apr 1994) A singular loop transformation framework based on non-singular matrices. Int J Parallel Program 22(2):183–205
Schrijver A (Oct 1987) Theory of linear and integer programming. Wiley, New York
Williams HP (Nov 1986) Fourier’s method of linear programming and its dual. The American Mathematical Monthly 93(9):681–695
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
Wolfe M (Aug 1986) Loop skewing: the wavefront method revisited. Int J Parallel Program 15(4):279–293
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
Wolfe MJ (1989) Optimizing supercompilers for supercomputers. The MIT Press, Cambridge
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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
DOI: https://doi.org/10.1007/978-0-387-09766-4_196
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-09765-7
Online ISBN: 978-0-387-09766-4
eBook Packages: Computer ScienceReference Module Computer Science and Engineering