Fast address sequence generation for data-parallel programs using integer lattices
Document Type
Conference Proceeding
Publication Date
1-1-1996
Abstract
In data-parallel languages such as High Performance Fortran and Fortran D, arrays are mapped to processors through a two step process involving alignment followed by distribution. A compiler that generates code for each processor has to compute the sequence of local memory addresses accessed by each processor and the sequence of sends and receives for a given processor to access non-local data. In this paper, we present a novel approach based on integer lattices. The set of elements referenced can be generated by integer linear combinations of basis vectors. Our linear algorithm determines the basis vectors as a function of the mapping. Using the basis vectors, we derive a loop nest that enumerates the addresses, which are points in the lattice generated by the basis vectors. Experimental results show that our approach is better than that of a recent linear time solution to this problem.
Publication Source (Journal or Book title)
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
First Page
192
Last Page
208
Recommended Citation
Thirumalai, A., & Ramanujam, J. (1996). Fast address sequence generation for data-parallel programs using integer lattices. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 1033, 192-208. https://doi.org/10.1007/bfb0014200