MPI Forum Meetings logo

MPI Forum: mpi3-fortran Mailing List Archives

all MPI Forum: mpi3-fortran mailing list

Subject: Re: [MPI3 Fortran] Proposing changes to Fortran 2008
From: Aleksandar Donev (donev1_at_[hidden])
Date: 2008-04-16 18:35:13


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