Re: [MPI3 Fortran] MPI non-blocking transfer
Hi,
This makes a lotta difference after the recent decision of the MPI Forum to allow read access to a buffer engaged by the MPI_Isend operation. This effectively prohibits in-place buffer modification by the MPI that was described in the original example. I was describing modifications (optimizations) by the compiler, not the MPI library. To the compiler MPI is just another external library and so unless it knows buffer is special it cannot know not to do "in-place buffer modifications". For the other cases where this kind of thing can happen in Fortran, namely asynchronous I/O and co-arrays, the compiler has been warned by the presence of an attribute.
My very strong opinion: The non-blocking issue *cannot* be resolved by the MPI Forum in independence, that is, by changing the interface of Wait, or whatever. It requires some cooperation from the Fortran committee.
BY the way, what do Fortran gurus think of this new MPI-2.2 feature? As a user I would certainly prefer to be able to read a buffer. In Fortran, for asynchronous I/O, we do allow the program to reference, but not define, a variable that is being written asynchronously. I would expect the same for MPI. But, if it has a high implementation/efficiency cost, I guess that is more important :-)
Best, Aleks -- Aleksandar Donev, Ph.D. Lawrence Postdoctoral Fellow @ Lawrence Livermore National Laboratory High Performance Computational Materials Science and Chemistry E-mail: [email protected] Phone: (925) 424-6816 Fax: (925) 423-0785 Address: P.O.Box 808, L-367, Livermore, CA 94551-9900 Web: http://cherrypit.princeton.edu/donev
participants (1)
-
Aleksandar Donev