[MPI3 Fortran] [Mpi-comments] MPI 3.0: Fortran 2008 interface - issue with the LOGICAL kind

Jeff Squyres (jsquyres) jsquyres at cisco.com
Fri Mar 22 13:56:32 CDT 2013

See below.

Sent from my phone. No type good.

On Mar 22, 2013, at 11:08 AM, "Hubert Ritzdorf" <Hubert.Ritzdorf at emea.nec.com<mailto:Hubert.Ritzdorf at emea.nec.com>> wrote:


MPI 3.0 Page 555, Lines 28-40 clearly requests a Fortran PMPI interface.

"This requires, in C and Fortran, an alternate entry point name, with the prefi?x PMPI_ for
each MPI function in each provided language binding and language support method."

Thus goal 1 and 4 is violated.

We did something illegal in MPI 3, so the bw Compat requirements with interfaces containing logical params are greatly weakened.

How is goal 4 violated?

Items 2 and 3 of the strawman proposal define implementation details.
The MPI standard doesn't define implementation details.
For example, NEC MPI is never calling the C MPI_Test function in the Fortran MPI_Test function
(which is implemented in C). Both items would hurt goal 2 for me.

I think Craig was spelling out the intent, not what we'll actually say on the text.

I.E., implementations like yours and mine will just provide a separate PMPI interface for mpi_f08 and then not be bound by the "must call the c symbol" restriction. The "must call c symbol" restriction is only for implementations like bills that will have fortran only wrappers that call c (e.g., and may be inlined and therefore not interceptable).

From: Craig Rasmussen [rasmus at cas.uoregon.edu<mailto:rasmus at cas.uoregon.edu>]
Sent: Friday, March 22, 2013 4:29 PM
To: MPI-3 Fortran working group
Cc: Martin Schulz; Bill Long; Hubert Ritzdorf
Subject: Re: [MPI3 Fortran] [Mpi-comments] MPI 3.0: Fortran 2008 interface - issue with the LOGICAL kind

Bill Long, Jeff Squyres, and I had a phone conversation yesterday and came up with a straw man proposal.  We believe it fixes the LOGICAL argument problem while satisfying three major goals:

1. Backwards compatibility.
2. Flexibility so that efficient implementations can be produced on a variety of hardware.
3. Not dramatically increase the complexity for the tools community.
4. Ensure that the changes won't be seen by ordinary Fortran MPI users.

The straw man proposal is:

1. Remove the current binding names for MPI functions with LOGICAL dummy arguments (.  This must be done because these interfaces break the Fortran standard.
2. Replace the current binding names for MPI functions with LOGICAL dummy arguments with a different name and replacing LOGICAL type with default INTEGER arguments.  The name must be changed so as to not conflict with the current name with LOGICAL arguments.  For example, the binding name "MPI_Test_f08" will be replaced by "MPI_Test_int_f08" (exact replacement name open for discussion).  The Fortran implementation of the function MPI_Test must call MPI_Test_int_f08 as soon as possible for the tools implementers.
3. Implementation of the Fortran PMPI calling convention will be made optional (we think it already it).  If an MPI implementer doesn't provide the MPI_F08 binding names, then it must call the C MPI implementation in a thin Fortran wrapper so that the tools implementers can intercept the call in C.  An MPI implementation shall not provide/call both the MPI_F08 binding name and the C name.

Option 2 allows some MPI vendors to implement MPI functions entirely within Fortran (using the MPI_f08 binding names), if this is more efficient.

Option 3 allows some MPI implementations to place Fortran wrappers inside modules where they may be inlined by the compiler for efficiency.

Craig Rasmussen
CAS Scientific Programmer
rasmus at cas.uoregon.edu<mailto:rasmus at cas.uoregon.edu>

Click here<https://www.mailcontrol.com/sr/ScYsd3zUlOTGX2PQPOmvUlvAwUAcTfZnJtM7jRgdQaMz36cVAT1FTYeUUzO+ssbqtdPdym6uvpgc91rCvtNOsA==> to report this email as spam.

mpi3-fortran mailing list
mpi3-fortran at lists.mpi-forum.org<mailto:mpi3-fortran at lists.mpi-forum.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-fortran/attachments/20130322/5b4e27d2/attachment-0001.html>

More information about the mpiwg-fortran mailing list