[J3] US13. Put with Notify.

Bader, Reinhold Reinhold.Bader at lrz.de
Thu Sep 23 11:55:54 UTC 2021


Hello John, 

your argument applies to the updates on the notify variable, but not (I think) for the coarray data that are being synchronized. 

So, 

- on image 2

   x[1, NOTIFY=nv[1]] = ...  ! non-atomic assignment to x, atomic update of nv

- on image 3

  y[1, NOTIFY=nv[1]] = ...  ! non-atomic assignment to y, atomic update of nv

- on image 1

NOTIFY WAIT(nv, UNTIL_COUNT=2) ! atomic update of nv once both above statements have been executed.

.... = x                             ... ! non-atomic reference to x (fine, due to the above WAIT)
.... = y                             ... ! non-atomic reference to y (fine, due to the above WAIT)

Now assume the above NOTIFY WAIT specifies an UNTIL_COUNT of 1. Then it is not clear to me how you can contend that "accesses to either x or y are undefined after the WAIT" without the two 
text blocks [211:1-4] and [212:15-17].


Cheers
Reinhold


-----Ursprüngliche Nachricht-----
Von: John Reid <John.Reid at stfc.ac.uk> 
Gesendet: Donnerstag, 23. September 2021 13:05
An: Bader, Reinhold <Reinhold.Bader at lrz.de>; General J3 interest list <j3 at mailman.j3-fortran.org>; fortran standards email list for J3 <j3 at j3-fortran.org>
Betreff: Re: AW: [J3] US13. Put with Notify.

Reinhold,

Thanks for the comment

I see [212:15-17] as another sentence that should be removed. It is very hard to see what it is trying to say and anyway everything has been said by the previous sentences:

"A coarray may be referenced or defined by execution of an atomic subroutine during the execution of a segment that is unordered relative to the execution of a segment in which the coarray is referenced or defined by execution of an atomic subroutine. An event variable or notify variable may be referenced or defined during the execution of a segment that is unordered relative to the execution of another segment in which that event variable or notify variable is defined."

Note that [456:28-29]  says

"The effect of each update is as if the intrinsic subroutine ATOMIC_ADD were executed with a variable that stores the notify count as its ATOM argument."
> You want to be able to deduce possible invalidity of data accesses if the UNTIL_COUNT is smaller than the number of notifications.

This is clearly stated at [210:16-17]:

"(2)   the executing image waits until the count of the notify variable 
is greater than or equal to the threshold value or an error condition 
occurs;"

Cheers,

John.
>
> Cheers
> Reinhold
>
>
> -----Ursprüngliche Nachricht-----
> Von: J3 <j3-bounces at mailman.j3-fortran.org> Im Auftrag von John Reid via J3
> Gesendet: Dienstag, 21. September 2021 21:24
> An: fortran standards email list for J3 <j3 at j3-fortran.org>
> Cc: John Reid <John.Reid at stfc.ac.uk>
> Betreff: [J3] US13. Put with Notify.
>
> Dear all,
>
> I think I have found two glitches associated with US 13. Here is a draft paper. Any comments? I plan to put it on the web site at the end of this week.
>
> Cheers,
>
> John
>



More information about the J3 mailing list