[MPI3 Fortran] Proposed solution for the volatile buffer problem
Aleksandar Donev
donev1 at llnl.gov
Wed Jan 14 15:16:39 CST 2009
Hi,
> Sorry, but THAT misses the point! If the volatility applies just
> over the actual call, then even flagging all of MyIsend, MyIrecv,
> MyWait, MPI_Isend, MPI_Irecv and MPI_Wait won't help.
Actually, only the MPI routines themselves should be flagged. The
compiler would have to assume, in the absence of extra information,
that any routine may include a call to these "flagged" routines.
> Remember that
> the update can occur at ANY time between starting the transfer and
> waiting for its completion, including when control is inside
> Transfer.
But, isn't it prohibited to touch buffer while there is a pending
transfer? Just like we restrict for ASYNCHRONOUS variables in Fortran.
If so, then any access to any of the variables can be freely optimized,
with the *only* exception being that code cannot be moved accross
certain calls, that is, all variables need to be refreshed after and
flushed before.
This is not to say I am advocating for Bill's proposal---I am a firm
believer that variables liable to change out of the blue *must* be
marked as such. But, I am trying to understand what you two are arguing
over...
Best,
Aleks
More information about the mpiwg-fortran
mailing list