next up previous contents
Next: Annexes Up: Specifications of Extended Library Previous: HPF_NUMBER_MAPPED(ARRAYPROCESSORS_DIM, NUMBER_MAPPED)

HPF_NUMBER_MAPPED(ARRAY, PROCESSORS_DIM,
NUMBER_MAPPED)

Description. Returns the number of elements of the ultimate align-target of ARRAY mapped to the each element of axis PROCESSORS_DIM of the processors arrangement onto which the ultimate align-target of ARRAY is distributed.

Class. Mapping inquiry subroutine.

Arguments.

ARRAY may be of any type. It must not be scalar. It must not be sequential. It must not be a pointer that is disassociated or an allocatable array that is not allocated.

PROCESSORS_DIM must be scalar and of type default integer. Its value must be between one and the rank of the processors arrangement onto which the ultimate align-target of ARRAY is distributed.

NUMBER_MAPPED must be of type default integer and of rank one. Its size must be no smaller than the extent of axis PROCESSORS_DIM of the processors arrangement onto which the ultimate align-target of ARRAY is distributed. The ith element of NUMBER_MAPPED is set to the number of elements of an axis of the ultimate align-target of ARRAY that are mapped to the ith processor of axis PROCESSORS_DIM of the processors arrangement onto which the ultimate align-target of ARRAY is distributed. If axis PROCESSORS_DIM of the processors arrangement onto which the ultimate align-target of ARRAY is distributed is associated with a BLOCK distributed axis, then MAP_ARRAY is set to the array of block sizes used to distribute that axis.


Example. Given the declarations

      DIMENSION A(2,40)
!HPF$ TEMPLATE T(4,8,4,16)
!HPF$ ALIGN A(I,*) WITH T(2*I, 5, *, *)
!HPF$ PROCESSORS PROCS(2,2,3)
!HPF$ DISTRIBUTE T(INDIRECT((/2,2,1,2/)),  BLOCK((/3,5/)), *, BLOCK) &
!HPF$      ONTO PROCS

assuming that the actual mappings are as the directives specify, after calling HPF_NUMBER_MAPPED(A,PROCESSORS_DIM=1, NUMBER_MAPPED = M) M has the value [1 3]; after calling HPF_NUMBER_MAPPED(A,PROCESSORS_DIM=2, NUMBER_MAPPED = M) M has the value [3 5]; after calling HPF_NUMBER_MAPPED(A,PROCESSORS_DIM=3, NUMBER_MAPPED = M) M has the value [6 6 4].


next up previous contents
Next: Annexes Up: Specifications of Extended Library Previous: HPF_NUMBER_MAPPED(ARRAYPROCESSORS_DIM, NUMBER_MAPPED)