Figure 4.13 represents a schema for translating the
overall construct. The localBlock() method on the
Range class returns parameters of the locally held block of
index values associated with a range. These parameters are returned
in another simple struct-like object of class Block.
represents the translated form of expression .
The local subscript for the index is the value of
sub. This value is used in subscripting multiarrays.
The global index for the index is the value of
glb. This value is used in evaluating the global
index expression .
Since we use the localBlock() method to compute parameters of
the local loop, this translation is identical for every
distribution format--block-distribution, simple-cyclic distribution,
aligned subranges, and so on -- supported by the language.
Of course there is an overhead related to abstracting this local-block
parameter computation into a method call; but the method call is made
at most once at the start of each loop, and we expect that in many
cases optimizing translators will recognize repeat calls to these
methods, or recognize the distribution format and inline the
computations, reducing the overhead further.
means the translation of in the context of
as active process group.
Translation of multiarray element access.