Efficient computation of address sequences in data parallel programs using closed forms for basis vectors
Document Type
Article
Publication Date
11-1-1996
Abstract
Arrays are mapped to processors through a two-step process - alignment followed by distribution - in data-parallel languages such as High Performance Fortran. This process of mapping creates disjoint pieces of the array that are locally owned by each processor. An HPF compiler that generates code for array statements must compute the sequence of local memory addresses accessed by each processor and the sequence of sends and receives for a given processor to access nonlocal data. In this paper, we present an approach to the address sequence generation problem using the theory of integer lattices. The set of elements referenced can be generated by integer linear combinations of basis vectors. Unlike other work on this problem, we derive closed form expressions for the basis vectors as a function of the mapping of data. Using these basis vectors and exploiting the fact that there is a repeating pattern in the access sequence, we derive highly optimized code that generates the pattern at runtime. The code generated uses table-lookup of the pattern. Experimental results show that our approach is faster than other solutions to this problem. © 1996 Academic Press, Inc.
Publication Source (Journal or Book title)
Journal of Parallel and Distributed Computing
First Page
188
Last Page
203
Recommended Citation
Thirumalai, A., & Ramanujam, J. (1996). Efficient computation of address sequences in data parallel programs using closed forms for basis vectors. Journal of Parallel and Distributed Computing, 38 (2), 188-203. https://doi.org/10.1006/jpdc.1996.0140