next up previous contents
Next: Storage Association Up: Data Mapping Previous: The TEMPLATE Directive

Storage and Sequence Association

 

HPF allows the mapping of data objects across multiple processors in order to improve parallel performance. Fortran specifies 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 (F95:14.6.3.1)

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 data objects 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, ...

-- Fortran Standard (F95:12.4.1.4)

As with storage association, sequence association is a natural concept only in systems with a linearly addressed memory.

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 section explains the relationship between HPF data mapping and sequence and storage association.