Hello, I have a rather basic question regarding the (optional) specification of locality for variables used inside a
do concurrent construct:
- In which practical cases is a locality-spec necessary (for correctness) or perhaps preferred (for performance)?
- Aside variables with SAVE attribute, for which the default locality-spec is SHARED, do we need to be careful with something else?
For instance, in the below example from IBM, is the locality-spec required or just superfluous?
INTEGER,DIMENSION(N) :: J, K INTEGER :: I, M M = 10 I = 15 DO CONCURRENT (I = 1:N, J(I)> 0)LOCAL (M) SHARED (J, K) M = MOD (K(I), J(I)) K(I) = K(I) – M END DO PRINT *, I, M ! Prints 15 10