Compile-Time Techniques for Data Distribution in Distributed Memory Machines
Document Type
Article
Publication Date
1-1-1991
Abstract
This paper addresses the problem of partitioning data for distributed memory machines (multicomputers). In current day multicomputers, interprocessor communication is more time-consuming than instruction execution. If insufficient attention is paid to the data allocation problem, then the amount of time spent in interprocessor communication might be so high as to seriously undermine the benefits of parallelism. It is therefore worthwhile for a compiler to analyze patterns of data usage to determine allocation, in order to minimize interprocessor communication. We present a machine-independent analysis of communication-free partitions. We present a matrix notation to describe array accesses in fully parallel loops which lets us derive sufficient conditions for communication-free partitioning (decomposition) of arrays. In the case of a commonly occurring class of accesses, we present a problem formulation to minimize communication costs, when communication-free partitioning of arrays is not possible. © 1991 IEEE
Publication Source (Journal or Book title)
IEEE Transactions on Parallel and Distributed Systems
First Page
472
Last Page
482
Recommended Citation
Ramanujam, J., & Sadayappan, P. (1991). Compile-Time Techniques for Data Distribution in Distributed Memory Machines. IEEE Transactions on Parallel and Distributed Systems, 2 (4), 472-482. https://doi.org/10.1109/71.97903