next up previous contents
Next: New HPF Reduction Functions Up: Mapping Inquiry Subroutines Previous: Mapping Inquiry Subroutines

 

Example of Mapping Inquiry Procedures

For example,

REAL, DIMENSION(100,100)          :: A
CHARACTER(LEN=9), DIMENSION(2)    :: DISTS
INTEGER, DIMENSION(2)             :: BLK_SIZE, PSHAPE
INTEGER                           :: PRANK
!HPF$ PROCESSORS, DIMENSION(4)    :: P
!HPF$ DISTRIBUTE (BLOCK,*) ONTO P :: A

CALL HPF_DISTRIBUTION(A,AXIS_TYPE        = DISTS,   &
                        AXIS_INFO        = BLK_SIZE,&
                        PROCESSORS_RANK  = PRANK,   &
                        PROCESSORS_SHAPE = PSHAPE)

Here DISTS is equal to (/'BLOCK','COLLAPSED'/). Note: DISTS must be declared in such a way thats its result can be understood. There are 3 possible values that the function can return in its AXIS_TYPE argument: BLOCK, CYCLIC and COLLAPSED; this means that in order to return a unique result DISTS must be at least 2 characters long.

BLK_SIZE(1) is equal to 50. BLK_SIZE(2) is compiler dependent because the second dimension of A has been collapsed.

PRANK is 1 and PSHAPE(1) is 4. PSHAPE(2) has not been assigned a value.

The other procedures in this class follow a similar pattern.

Return to corresponding overview page gif


next up previous contents
Next: New HPF Reduction Functions Up: Mapping Inquiry Subroutines Previous: Mapping Inquiry Subroutines

©University of Liverpool, 1997
Wed May 28 20:20:27 BST 1997
Not for commercial use.