[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