[MPI3 Fortran] [ukfortran] (SC22WG5.3920) (j3.2006) (SC22WG5.3917) (SC22WG5.3909) [MPI3 Fortran] MPI non-blocking transfers
N.M. Maclaren
nmm1 at cam.ac.uk
Sat Jan 24 05:59:05 CST 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
>time.
I agree.
>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.
Regards,
Nick Maclaren,
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 mpiwg-fortran
mailing list