[MPI3 Fortran] [Fwd: Library-based ASYNCHRONOUS I/O and SYNC MEMORY]

Iain Bason Iain.Bason at Sun.COM
Tue Sep 9 08:27:32 CDT 2008


On Sep 9, 2008, at 8:19 AM, Dan Nagle wrote:

> Personally (and others may differ), I believe the main issue
> is to better document what happens with asynchronous modifications
> to actual arguments after the initiating routine has returned.
> Generally, this is surprising to a standards conforming program.

Clearly the MPI_IRECV/MPI_WAIT pair violates the Fortran standard.  As  
such, it is not just surprising but impossible to document what  
happens with asynchronous modifications in a standards conforming  
program.

The question is, what level of precision do we require the language to  
embody when we're describing asynchronous modifications?  The C  
approach is to assume that any variable whose address has been passed  
to another function may be modified by any function call.  That's a  
pretty broad brush, but still doesn't capture the fact that the  
variable may be modified during execution of any code until the call  
to MPI_WAIT.

> If a compiler (even one at some time in the future)
> can use the information profitably, so much the better.
> But the main issue, to me at least, is to document,
> *in the program*, what is expected to happen.  Having this
> information in the source file helps the applications writer,
> the applications maintainer,  and any code checking tools
> brought to bear.

I have to echo Jeff's question:  why isn't the human-readable  
documentation in the MPI standard sufficient for the applications  
writer and maintainer?  As for code checking tools, do you have an  
example of the kind of code checking you envision?

Iain




More information about the mpiwg-fortran mailing list