Should not remap across a procedure boundary unless absolutely essential. The implied communications can be very time consuming. Consider,
INTEGER, DIMENSION(512,512) :: ia, ib
!HPF$ DISTRIBUTE (BLOCK,BLOCK) :: ia, ib
DO icnt = 1, 10
CALL ReMapSub(ia,ib)
END DO
END
SUBROUTINE ReMapSub(iarg1, iarg2)
INTEGER, DIMENSION(512,512):: iarg1, iarg2
!HPF directive goes here
iarg2 = 2*iarg1
END SUBROUTINE ReMapSub
With NA Software Compiler, if iarg1 and iarg2 are distributed as,
For more information, click here