[MPI3 Fortran] Proposing changes to Fortran 2008
Aleksandar Donev
donev1 at llnl.gov
Wed Apr 16 17:35:13 CDT 2008
On Wednesday 16 April 2008 15:19, Aleksandar Donev wrote:
> > VOLATILE is different. Volatile means that other processes/threads may
> > change the data.
>
> Exactly what happens here---MPI runtime is that other process. What if I
> try to access a variable while async I/O is still pending (no WAIT
> completed yet)? Shouldn't the compiler reload the latest value from memory.
> Or am I not allowed to do that? Frankly, I don't know the answer. I cannot
> see anything in the standard...I will ask.
OK, someone pointed me to the words. For asynchronous things, one is not
allowed to read/modify them while they are pending:
"For asynchronous output, a pending input/output storage sequence affector
(9.5.1.4) shall not be redefined, become undefined...
For asynchronous input, a pending input/output storage sequence affector shall
not be referenced, become defined, become undefined,..."
This sounds like it should also apply to external (library) asynchronous I/O.
Best,
Aleks
More information about the mpiwg-fortran
mailing list