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

Hubert Ritzdorf Hubert.Ritzdorf at EMEA.NEC.COM
Fri Mar 22 13:07:24 CDT 2013


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.

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.

From: Craig Rasmussen [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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-fortran/attachments/20130322/184330a7/attachment-0001.html>

More information about the mpiwg-fortran mailing list