(j3.2006) (SC22WG5.3924) [ukfortran] [MPI3 Fortran] (SC22WG5.3917) (SC22WG5.3909) [MPI3 Fortran] MPI non-blocking transfers
Sat Jan 24 06:59:05 EST 2009
On Jan 23 2009, Van Snyder wrote:
>> The copy-in/copy-out problem does not affect MPI_wait. There's no
>> argument to copy anyway. Copy-in/copy-out is a serious problem for the
>> earlier call to MPI_Isend, etc. where you do not want the copy temp
>> being the buffer MPI sees, since it will get deleted when the call
>> returns (which is before MPI is done with it.) This continues with any
>> subsequent call to other routines that have the buffer as the argument,
>> because a copy-out runs the risk of overwriting the buffer with the
>> wrong values.
>The copy-in/copy-out problem appears to be pretty simple: Define the
>buffer dummy argument of MPI_Isend to be ASYNCHRONOUS and assumed size.
>Then if somebody hands it an assumed-shape or pointer buffer that's not
>contiguous, the code falls afoul of C1239 or C1240. If the user's data
>isn't contiguous, it's his responsibility to do the copying at the right
>I don't see the need for changes in the standard, either for the
>copy-in/copy-out problem, or the code motion problem. Just define the
>MPI interface properly.
The only change that I think is necessary is some minor wording changes to
extend the description to cover asynchronous I/O performed by a companion
processor as well as Fortran asynchronous I/O. Technically, that's trivial.
University of Cambridge Computing Service,
New Museums Site, Pembroke Street, Cambridge CB2 3QH, England.
Email: nmm1 at cam.ac.uk
Tel.: +44 1223 334761 Fax: +44 1223 334679
More information about the J3