Next: Conditions for Omitting Explicit Up: Approved Extensions for Data Mapping Previous: The SHADOW Directive

Equivalence and Partial Order on the Set of Mappings

Section 4.5 has to be changed

to accommodate the new distributions, the SHADOW attribute, and mapping of components of derived types, all introduced as approved extensions. The relevant text now reads as follows; additions are in bold-face type.

First, we define a notion of equivalence for dist-format specifications:

1. Using the notation = for the phrase ``is equivalent to'',
 BLOCK = BLOCK CYCLIC = CYCLIC * = * BLOCK(n) = BLOCK(m) iff n and m have the same value CYCLIC(n) = CYCLIC(m) iff n and m have the same value CYCLIC = CYCLIC(1) GEN_BLOCK(v)< = GEN_BLOCK(w) iff the values of corresponding elements of v and w are equal INDIRECT(v)< = INDIRECT(w) iff the values of corresponding elements of v and w are equal
2. Other than this, no two lexically distinct dist-format specifications are equivalent.

This is an equivalence relation in the usual mathematical sense.

Next we define a notion of equivalence for SHADOW attributes (see Section 8.12 for the syntax):

1. The shadow-spec expressions w1 and w2 are equivalent iff they have the same value.
2. The shadow-spec w is equivalent to the shadow-spec w:w.
3. The shadow-spec l1:h1 is equivalent to the shadow-spec l2:h2 iff l1 is equivalent tol2 and h1 is equivalent to h2.
4. Other than this, no two lexically distinct shadow-spec specifications are equivalent.
We then say that two SHADOW attributes are equivalent iff the shadow-spec-list of one is elementwise equivalent to the shadow-spec-list of the other.

Now we define the partial order on mappings: Let S (``special'') and G (``general'') be two data objects.

The mapping of S is a specialization of the mapping of G if and only if either

1. G has the INHERIT attribute, or
2. S does not have the INHERIT attribute, and the following constraints all hold:

1. S is a named object or structure component, and
2. The shapes of the ultimate align targets of S and G are the same, and
3. Corresponding dimensions of S and G are mapped to corresponding dimensions of their respective ultimate align targets, and corresponding elements of S and G are aligned with corresponding elements of their respective ultimate align targets, and
4. Either

1. The ultimate align targets of both S and G are not explicitly distributed, or
2. The ultimate align targets of both S and G are explicitly distributed. In this case, the distribution directive specified for the ultimate align target of G must satisfy one of the following conditions:

1. It has no dist-onto-clause, or
2. It has a dist-onto-clause of ``ONTO *'', or
3. It has a dist-onto-clause specifying a processor arrangement having the same shape as that explicitly specified in a distribution directive for the ultimate align target of S.

and must also satisfy one of the following conditions:

1. It has no dist-format-clause, or
2. It has a dist-format-clause of ``*'', or
3. Each dist-format is equivalent (in the sense defined above) to the dist-format in the corresponding position of the dist-format-clause in an explicit distribution directive for the ultimate align target of S.
5. Either S and G both have no SHADOW attribute or they have equivalent SHADOW attributes.

Next: Conditions for Omitting Explicit Up: Approved Extensions for Data Mapping Previous: The SHADOW Directive