[MPI3 Fortran] (j3.2006) (SC22WG5.3886) [ukfortran] [MPI3 Fortran] MPI non-blocking transfers

Jeff Squyres jsquyres at cisco.com
Thu Jan 22 10:14:13 CST 2009

On Jan 22, 2009, at 11:11 AM, Bill Long wrote:

>>> One simple step toward solving the problem is to write an extra
>>> interface layer that includes the argument, which then calls the  
>>> real
>>> MPI wait routine, not passing that argument.  Then declaring the  
>>> buffer
>>> and the dummy argument of the wait routine interface layer to be
>>> ASYNCHRONOUS ought to work, according to the rules we already have  
>>> in
>>> place for Fortran asynchronous I/O.
> The basic problem with adding a buffer argument to a variant of the  
> MPI_wait routines is that the buffer variable may not be accessible  
> in the scoping unit of the call.  This seems like a fatal flaw with  
> this approach.

It's also a problem for the array variants of MPI_TEST and MPI_WAIT  
(that take variable-length arrays of requests).

Also remember that MPI_TEST may or may not complete the request; just  
calling MPI_TEST (or any of its array variants) does not guarantee  
that the buffer is "owned" by the application again.

Jeff Squyres
Cisco Systems

More information about the mpiwg-fortran mailing list