Problem occurs when descriptive mappings are used to reduce communications. Consider,
REAL, DIMENSION(100,100) :: A, B !HPF$ PROCESSORS, DIMENSION(10,10) :: P !HPF$ DISTRIBUTE (BLOCK,BLOCK) :: A, B INTERFACE SUBROUTINE KerXubbie(x,y) REAL, DIMENSION(:) :: x, y !HPF$ PROCESSORS,DIMENSION(10) :: P ! non-HPF !HPF$ ALIGN y WITH *x !HPF$ DISTRIBUTE *(BLOCK) ONTO *P :: x END SUBROUTINE KerXubbie END INTERFACE ... CALL KerXubbie(A(i,:),b(i,:))
Asserts that x and y are co-mapped and distributed blockwise over 10 processor subset! Not portable but semantics work!
For more information, click here