[MPI3 Fortran] Nonblocking MPI and Fortran temporary memory modifications

N.M. Maclaren nmm1 at cam.ac.uk
Mon Apr 4 04:20:10 CDT 2011

On Mar 27 2011, Rolf Rabenseifner wrote:
>Reinhold showed me that the ASYNCHRONOUS attribute may not help
>because a compiler may implement asynchronous Fortran I/O
>with blocking I/O and therefore may ignore all ASYNCHRONOUS 

That is a defect in the method of language specification used by most
ISO standards.  When we discussed it, the majority agreed that a Fortran
compiler was obviously at liberty to implement asynchronous synchronously
either at the initiation or completion, but should not ignore the attribute
because the asynchronicity might be in C code.

I agree that it isn't clearly non-conforming, but it is clearly not
according to the intent.

>Pages 24-31 in the pdf (pages 549-556 in the original document)
>show our knowledge about the nonblocking and datatype (MPI_BOTTOM) problems
>in the combination of Fortran and MPI.

MPI_BOTTOM is truly horrible, and is unfixable, whether in Fortran or C.
Yes, it can be done using C_PTR, but it is still undefined behaviour in
both languages.

>Unfortunately in the taböle on page 550, we have to modify all entries
>about ASYNCHRONOUS into "NOT solved".

Not really.  We have agreed on the direction - with, if I recall, only
one dissenter.

>Do you see further problems with nonblocking and "MPI_BOTTOM", 
>that are not mentioned in this section and that should be.

I will try to take a look, but my advice is not to use MPI_BOTTOM in
portable code.  I may be able to help with extra constraints.


More information about the mpiwg-fortran mailing list