[ HPF Home | Versions | Compilers | Projects | Publications | Applications | Benchmarks | Events | Contact ] |
Optional Arguments.
AXIS_TYPE, AXIS_INFO,
PROCESSORS_RANK,
PROCESSORS_SHAPE,
PLB, PUB, PSTRIDE,
LOW_SHADOW, HIGH_SHADOW.
Description. The HPF_DISTRIBUTION subroutine returns
information regarding
the distribution of the ultimate align-target associated with
a variable.
Class. Mapping inquiry subroutine.
Arguments.
DISTRIBUTEE may be of any type. It may be scalar or array valued. It must not be sequential. It must not be a pointer that is disassociated or an allocatable array that is not allocated. It is an INTENT (IN) argument.
AXIS_TYPE (optional) must be a rank one array of type default
character. It may be of any length, although it must be of
length at least 9 in order to contain the complete value. Its
elements are set to the values below as if by a character
intrinsic assignment statement. Its size must be at least
equal to the rank of the align-target to which
DISTRIBUTEE is ultimately aligned; this is the value
returned by HPF_TEMPLATE in TEMPLATE_RANK.
It is an
INTENT (OUT) argument. Its i
element contains information on the distribution of the i
axis of that align-target. The following values are
defined by HPF (implementations may define other values):
AXIS_INFO (optional) must be a rank one array of type default integer, and size at least equal to the rank of the align-target to which DISTRIBUTEE is ultimately aligned (which is returned by HPF_TEMPLATE in TEMPLATE_RANK). It is an INTENT (OUT) argument. The ith element of AXIS_INFO contains the block size in the block or cyclic distribution of the i axis of the ultimate align-target of DISTRIBUTEE; if that axis is a collapsed axis, then the value is implementation dependent.
PROCESSORS_RANK (optional) must be scalar and of type default integer. It is set to the rank of the processor arrangement onto which DISTRIBUTEE is distributed. It is an INTENT (OUT) argument.
PROCESSORS_SHAPE (optional) must be a rank one array of type default integer and of size at least equal to the value, m, returned in PROCESSORS_RANK. It is an INTENT (OUT) argument. Its first elements are set to the shape of the processor arrangement onto which DISTRIBUTEE is mapped. (It may be necessary to call HPF_DISTRIBUTION twice, the first time to obtain the value of PROCESSORS_RANK in order to allocate PROCESSORS_SHAPE.)
PLB (optional) must be a rank one array of type default integer and of size at least equal to the rank of the ultimate align-target of DISTRIBUTEE. It is an INTENT (OUT) argument. The ith element is set to the smallest processor index ONTO which the ith axis of the ultimate align-target of DISTRIBUTEE is mapped; if that axis is collapsed, then the corresponding element of PLB is implementation dependent. The value returned is in the range 1 to ei where ei is the extent of processor arrangement axis onto which the selected axis of the ultimate align-target of DISTRIBUTEE is mapped.
PUB (optional) must be a rank one array of type default integer and of size at least equal to the rank of the ultimate align-target of DISTRIBUTEE. It is an INTENT (OUT) argument. The ith element is set to the largest processor index ONTO which the ith axis of the ultimate align-target of DISTRIBUTEE is mapped; if that axis is collapsed, then the corresponding element of PUB is implementation dependent. The value returned is in the range 1 to ei where ei is the extent of processor arrangement axis onto which the selected axis of the ultimate align-target of DISTRIBUTEE is mapped.
PSTRIDE (optional) must be a rank one array of type default integer and of size at least equal to the rank of DISTRIBUTEE. It is an INTENT (OUT) argument. The ith element is set to the interprocessor stride in the ONTO clause with which the ith axis of DISTRIBUTEE is mapped; if that axis is collapsed, then the corresponding element of PSTRIDE is set to zero.
LOW_SHADOW (optional) must be a rank one array of type default integer, and size at least equal to the rank of the align-target to which DISTRIBUTEE is ultimately aligned (which is returned by HPF_TEMPLATE in TEMPLATE_RANK). It is an INTENT (OUT) argument. The ith element of LOW_SHADOW contains the low-side shadow width in the block or cyclic distribution of the ith axis of the ultimate align-target of DISTRIBUTEE; if that axis is a collapsed axis, then the value is implementation dependent.
HIGH_SHADOW (optional) must be a rank one array of type
default integer, and size at least equal to the rank of the
align-target to which DISTRIBUTEE is
ultimately aligned (which is returned by HPF_TEMPLATE
in TEMPLATE_RANK). It is an INTENT (OUT)
argument. The ith element of HIGH_SHADOW contains
the high-side shadow width in the block or cyclic distribution
of the ith axis of the ultimate align-target of
DISTRIBUTEE; if that axis is a collapsed axis, then
the value is implementation dependent.
Example. Given the declarations in the example illustrating HPF_ALIGNMENT and assuming that the actual mappings are as the directives specify, the results of HPF_DISTRIBUTION are:
A B PI AXIS_TYPE ['BLOCK', 'BLOCK'] ['CYCLIC', 'BLOCK'] [ ] AXIS_INFO [10, 10] [1, 15] [ ] PROCESSORS_SHAPE [4, 2] [2, 2] [ ] PROCESSORS_RANK 2 2 0 PLB [4, 1] [2, 1] [ ] PUB [1, 2] [3, 2] [ ] PSTRIDE [-1, 1] [1, 1] [ ]
©2000-2006 Rice University | [ Contact Us | HiPerSoft | Computer Science ] |