The schema in Figure
5 describes basic translation of 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.
Terms like
represent the translated form of expression
.
The local subscript for the index
is the value of
. This value is used in subscripting distributed
arrays.
The global index for the index
is the value of
. This value is used in evaluating the global
index expression
.
Because we use the run-time inquiry function localBlock() to compute parameters of the local loop, this translation is identical for every distribution format supported by the language (block-distribution, simple-cyclic distribution, aligned subranges, and several others). Of course there is an overhead associated with abstracting this 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.