[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