Next: Treatment of FORALL and
Up: HPF_CRAFT Functional Summary
Previous: The ON Clause
Array syntax is treated identically in HPF_CRAFT as in HPF for
explicitly mapped objects.
For private objects the behavior is
identical to that of HPF_LOCAL. When private objects and
explicitly mapped objects are combined the rules are as follows:
result = rhs_1 op_1 rhs_2 op_2 ... op_m rhs_n
- If result is explicitly mapped and all rhs arrays are
explicitly mapped, the work is distributed as in HPF.
- If result is private and all rhs arrays are private the
computation is done on all processors as an HPF_LOCAL program
would do it.
- If result is private and all rhs arrays are explicitly
mapped, the
work is distributed as in HPF and the values of the results are
broadcast to the result on each processor.
- If result is explicitly mapped and not all rhs
arrays are explicitly mapped, the results of the operation are undefined,
unless all corresponding elements of all private rhs arrays
have the same values.
- If result is private and some, but not all rhs arrays are
explicitly mapped, the value is computed on each processor
and saved to the local result.
All processors must participate in any array syntax
statement in which the value of an explicitly mapped array is modified,
and there is implicit barrier synchronization
after the statement executes.