[MPI3 Fortran] [Interop-tr] [Mpi-forum] Comment on Fortran WG5 ballot N1846

N.M. Maclaren nmm1 at cam.ac.uk
Fri Apr 15 11:41:51 CDT 2011

On Apr 15 2011, Rolf Rabenseifner wrote:
>Okay, I expect that I now understand:
> - You talk about permanent data movements (including 
>   automatic correction of all Fortran pointers to such data,
>   e.g., for a garbage collection)
>   and that this is a problem with C based MPI and
>   C-pointers pointing to buffers of nonblocking MPI 
>   operations.
>   This problem seems to be unsovled at all.
>   How can it really solved?

I have no idea whether any compiler currently does it, but that's not
the point.  What I am saying is that forbidding is is a serious change
in the Fortran standard and should not be done in this TR.

It can be solved by ensuring that the ASYNCHRONOUS attribute applies
to MPI buffers used for non-blocking transfers.  Or by inventing
another attribute REALLY_ASYNCHRONOUS that does that.

>   What is the VILE attribute. I did found it anything about it.

It was an imaginary attribute, invented by Bill only for the purpose of
discussion.  Like REALLY_ASYNCHRONOUS above.

> - In the past we talked about temporary data movement
>   (e.g., into a GPU) while nonblocking MPI operations
>   are pending; this was solved by not using the
>   buffers (of such nonblocking MPI operations)
>   in some numerical code.

Yes.  That is essentially what the ASYNCHRONOUS attribute forbids,
subject to the processor-dependent issue we have discussed.

> - And I talked in my previous email about 
>   code movements (not data movements) across MPI_Wait calls.
>   This and only this problem seems to be solved 
>   with the methods I showed.

Sort of.  I could produce more complicated examples to show that they
don't completely solve that problem, either, but I would rather not.

Nick Maclaren.

More information about the mpiwg-fortran mailing list