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