Next: Storage Association Up: High Performance Fortran Language Previous: Requirements on the
HPF allows the mapping of variables across multiple processors in order to improve parallel performance. FORTRAN 77 and Fortran 90 both specify relationships between the storage for data objects associated through COMMON and EQUIVALENCE statements, and the order of array elements during association at procedure boundaries between actual arguments and dummy arguments. Otherwise, the location of data is not constrained by the language.
COMMON and EQUIVALENCE statements constrain the alignment of different data items based on the underlying model of storage units and storage sequences:
Storage association is the association of two or more data objects that occurs when two or more storage sequences share or are aligned with one or more storage units.
- Fortran Standard (220.127.116.11)
The model of storage association is a single linearly addressed memory, based on the traditional single address space, single memory unit architecture. This model can cause severe inefficiencies on architectures where storage for variables is mapped.
Sequence association refers to the order of array elements that Fortran requires when an array expression or array element is associated with a dummy array argument:
The rank and shape of the actual argument need not agree with the rank and shape of the dummy argument, ...As with storage association, sequence association is a natural concept only in systems with a linearly addressed memory.
- Fortran Standard (18.104.22.168)
As an aid to porting FORTRAN 77 codes, HPF allows codes that rely on sequence and storage association to be valid in HPF. Some modification to existing FORTRAN 77 codes may nevertheless be necessary. This chapter explains the relationship between HPF data mapping and sequence and storage association.