[MPI3 Fortran] Deprecate mpif.h?

N.M. Maclaren nmm1 at cam.ac.uk
Thu Mar 4 09:09:20 CST 2010

On Mar 4 2010, Rolf Rabenseifner wrote:
>First I want to summarize, then I have a few questions:

I am not answering, but commenting.

>The new "use mpi3" includes all MPI routines.

Possibly with different names, where the types of the arguments have
changed.  What is planned for this?

>Inside the MPI library there may be significant differences,
>because with TYPE(*)
> - function overloading must be used to allow 
>    -- non-array, and
>    -- array arguments,

Assumed-rank deals with this one.  It's not a problem.

> - the called C backend routine must handle array descriptors
>   instead of only a reference to the beginning of the array.

Yes, but there's a problem.  With the current TR's approach, you
cannot pass assumed-size arrays to MPI using the new interface.
That's going to be a BIG incompatibility, so MPI3 will need to
make both interfaces available.

>Based on this, the section MPI-2.2 page 482:39-484:18
>"Problems due to Data Copying and Sequence Association"
>is solved an can be removed.

Yes, but something will need to be said about the above problem.
Your last point is also relevant.

>Question on handle arguments:
> - An application has produced an INTEGER COMM handle,
>   In a new routine, one wants to CALL MPI_IBCAST(...COMM).
>   How must this be programmed? 
>   Will it cause a warning? Or an error at compile time?

With modules, the latter.  The best solution would be a pair of
conversion functions.

> - dt is generated with 
>   MPI_TYPE_VECTOR(1,1,3,MPI_REAL,dt,ierror)
>   Now we call
>   REAL, DIMENSION(0:23) :: buf    
>   CALL MPI_IRECV(buf(0:23:2),6,dt,....) 
>   i.e., only with the elements 0,2,4,8,...,22.

That is going to need some VERY careful design!  I.e. my head hurts when
thinking of that one, too.

Nick Maclaren.

More information about the mpiwg-fortran mailing list