The following Fortran 90 program:
PROGRAM Warty
IMPLICIT NONE
REAL, DIMENSION(4) :: C
REAL, DIMENSION(8) :: D
REAL, DIMENSION(2) :: E
C = 1; D = 2
E = D(::4) + C(::2)
END PROGRAM Warty
should be given these HPF directives to ensure minimal (zero) communications:
!HPF$ ALIGN C(:) WITH D(::2) !HPF$ ALIGN E(:) WITH D(::4) !HPF$ DISTRIBUTE (BLOCK) :: D
Note, cannot distribute C or E. Only distribute align targets.
For more information, click here