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 calledloop 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.
Similar content being viewed by others
References
D. Padua and M. Wolfe, Advanced compiler optimizations for supercomputers,Comm. of ACM,29(12):1184–1201 (December 1986).
R. Allen and K. Kennedy, Automatic translation of FORTRAN programs to vector form.ACM Trans. on Programming Languages and Syst.,9(4):491–542 (October 1987).
M. Wolfe,Optimizing Supercompilers for supercomputers, Pitman Publishing, London (1989).
U. Banerjee, Unimodular transformations of double loops,Proc. of the Workshop on Advances in Languages and Compilers for Parallel Processing, pp. 192–219 (August 1990).
M. Wolf and M. Lam, A data locality optimizing algorithmProc. ACM SIGPLAN Conf. on Programming Language Design and Implementation, pp. 30–44 (June 1991).
M. Wolf and M. Lam, A loop transformation theory and an algorithm to maximize parallelism,IEEE Trans. on Parallel and Distrib. Syst. (October 1991).
W. Li and K. Pingali, Access Normalization: Loop restructuring for NUMA compilers,Proc. 5th Int'l Conf. on Archit. Support for Programming Languages and Oper. Syst. (October 1992).
J. W. S. Cassels,An Introduction to the Geometry of Numbers, Berlin, Springer (1959).
A. Schrijver,Theory of Linear and Integer Programming, John Wiley and Sons (1986).
G. B. Dantzig and B. C. Eaves, Fourier-motzkin elimination and its dual,J. of Combinatorial Theory(A),14:288–297 (1973).
C. Ancourt and F. Irigoin, Scanning polyhedra with DO loops,Third ACM Symp. on Principles and Practice of Parallel Programming, pp. 39–50 (April 1991).
L. Lu, A unified framework for systematic loop transformations,3rd ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming, pp. 28–38 (April 1991).
K. Gallivan, W. Jalby, and D. Gannon, On the problem of optimizing data transfers for complex memory systems,Int'l. Conf. on Supercomputing, pp. 238–253 (1988).
G. H. Golub and C. F. Van Loan,Matrix Computations, Johns Hopkins University Press (1989).
L. Lamport, The parallel execution of do loops,Comm. of the ACM, pp. 83–93 (February 1974).
M. Dowling, Optimal code parallelization using unimodular transformations,Parallel Computing,16:157–171 (1990).
J. Ramanujam, Non-unimodular transformations of nested loops,Proc. of Supercomputing (1992).
M. Barnett and C. Lengauer, Loop parallelization and unimodularity, Technical Report ECS-LFCS-92-197, University of Edinburgh (1992).
V. Sarkar and R. Thekkath, A general framework for iteration-reordering loop transformations,Proc. ACM SIGPLAN Conf. on Programming Language Design and Implementation (1992).
Author information
Authors and Affiliations
Additional information
This work was supported by the Cornell Theory Center, NSF Presidential Young Investigator award #CCR-8958543. by NSF Grant #CCR-9008526, and by a grant from the Hewlett-Packard Company.
Rights and permissions
About this article
Cite this article
Li, W., Pingali, K. A singular loop transformation framework based on non-singular matrices. Int J Parallel Prog 22, 183–205 (1994). https://doi.org/10.1007/BF02577874
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF02577874