- ...
SPMD1
- Single Program, Multiple Data
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
separate2
- The run-time representation of our multi-dimensional arrays
includes extra descriptor information that would simply
encumber the large class ``non-scientific'' Java applications.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... though3
- For example,
c allows section subscripting, whereas d does not.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
entities4
- Unless a section appears as an actual argument to
a procedure, in
which case the dummy argument names that section, or it is the target
of a pointer assignment.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... group5
- There is no cooperation between
the two constructor calls for p and q, so an individual
physical process might occur in both groups or in
neither. As an option not illustrated here, vectors of
ids can be passed to the Procs constructors to specify
exactly which processes are included in a particular group.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
group6
- The on clause can be omitted in some circumstances--see
section 5.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... operation7
- In fact
it is neccessary to use a shift and copy operation because
the source and destination arguments of shift must be distinct
arrays. In the comment explaining the inner block matrix multiplication,
by the way, the symbol b' means the original unshifted value of
the array b.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... dimension8
- Other higher-level
ranges include CyclicRange, which produces the equivalent
of CYCLIC distribution formation in HPF.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... subscript9
- But the effect
of such subscripting is only well-defined inside an over construct
parametrised by the index in question.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... communications10
- Laplace's equation with
cyclic boundary conditions is not particularly useful,
but it illustrates the language features.
More interesting boundary conditions can easily be incorporated later.
Incidentally, this is a suitable place
to mention that the array arguments of shift must be
aligned arrays--they must have identical distributed ranges.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
arrays11
- Incidentally, subranges, and particularly strided
subranges, introduce an ambiguity in the definition of the shift
operators + and - on locations. Is the numeric shift
measured terms of subscript relative to the subrange or of the parent
range? As a matter of definition, the shift is always in terms of
subscript in the template range--the ultimate parent from which a
subrange is derived (by zero or more stages of triplet subscripting).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.