Next: Local Routines Written
Up: Conventions for Local
Previous: Calling Sequence
The local procedure invoked on each processor is passed a local
argument for each global argument passed by the caller to the
(global) extrinsic procedure interface. Each global argument is a
distributed HPF array or a replicated scalar. The corresponding local
argument is the part of the global array stored locally, or the local
copy of a scalar argument. An array actual argument
passed by an HPF caller is called a global array; the subgrid of that
global array passed to one copy of a local routine (because it resides
in that processor) is called a local array.
If the extrinsic procedure is a function, then the local procedure is
also a function. Each local invocation of that function will return
the local part of the extrinsic function return value. If the extrinsic
function is scalar-valued then the implicit mapping of the return value
is replicated. Thus, all local functions must return the same value.
If one desires to return one, possibly distinct, value per processor,
then the extrinsic function must be declared to return a distributed
rank-one array of size NUMBER_OF_PROCESSORS.
The run-time interface should provide enough information that each
local function can discover for each local argument the mapping of the
corresponding global argument, translate global indices to local
indices, and vice-versa. A specific set of procedures that provide
this information is listed in Section . The manner
in which this information is made available to the local routine
depends on the implementation and the programming language used for the
local routine.
paula@erc.msstate.edu
Thu Dec 8 16:17:11 CST 1994