An implementation framework for HPF distributed arrays on message-passing parallel computer systems
- 1 September 1996
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Parallel and Distributed Systems
- Vol. 7 (9) , 897-914
- https://doi.org/10.1109/71.536935
Abstract
Data parallel languages, like High Performance Fortran (HPF), support the notion of distributed arrays. However, the implementation of such distributed array structures and their access on message passing computers is not straightforward. This holds especially for distributed arrays that are aligned to each other and given a block-cyclic distribution. In this paper, an implementation framework is presented for HPF distributed arrays on message passing computers. Methods are presented for efficient (in space and time) local index enumeration, local storage, and communication. Techniques for local set enumeration provide the basis for constructing local iteration sets and communication sets. It is shown that both local set enumeration and local storage schemes can be derived from the same equation. Local set enumeration and local storage schemes are shown to be orthogonal, i.e., they can be freely combined. Moreover, for linear access sequences generated by our enumeration methods, the local address calculations can be moved out of the enumeration loop, yielding efficient local memory address generation. The local set enumeration methods are implemented by using a relatively simple general transformation rule for absorbing ownership tests. This transformation rule can be repeatedly applied to absorb multiple ownership tests. Performance figures are presented for local iteration overhead, a simple communication pattern, and storage efficiency.Keywords
This publication has 19 references indexed in Scilit:
- A linear-time algorithm for computing the memory access sequence in data-parallel programsPublished by Association for Computing Machinery (ACM) ,1995
- Incremental generation of index sets for array statement execution on distributed-memory machinesPublished by Springer Nature ,1995
- Efficient address generation for block-cyclic distributionsPublished by Association for Computing Machinery (ACM) ,1995
- Compilation techniques for block-cyclic distributionsPublished by Association for Computing Machinery (ACM) ,1994
- Processing array statements and procedure interfaces in the PREPARE high performance fortran compilerPublished by Springer Nature ,1994
- Booster: a high-level language for portable parallel algorithmsApplied Numerical Mathematics, 1991
- Compile-time generation of regular communications patternsPublished by Association for Computing Machinery (ACM) ,1991
- Process decomposition through locality of referencePublished by Association for Computing Machinery (ACM) ,1989
- Array distribution in SUPERBPublished by Association for Computing Machinery (ACM) ,1989
- Compiling programs for distributed-memory multiprocessorsThe Journal of Supercomputing, 1988