Re: [MPIWG Fortran] MPI_SIZEOF: Errata required (was: Another MPI_SIZEOF question)
On Jun 13, 2014, at 3:32 AM, Rolf Rabenseifner <[email protected]> wrote:
2) The requirement of having this function in mpif.h was changed:
MPI-2.0 through 2.2 requiered MPI_SIZEOF in mpif.h "unless the target compiler does not support modules or KIND-parametrized types."
This restriction was removed.
On the surface that is reasonable, since 1) I don’t see how support for modules is relevant to mpif.h anyway, and 2) It’s a stretch to imagine there are any current compilers that do not support modules and parameterized types.
How to solve these problems?
I would expect that we should add two errata:
A) MPI_SIZEOF needs not to be interceptable, the idea of ticket #428.
Definitely.
B) The Fortran 77 rule on p609:47 - p610:2 should be extended to allow mpif.h with all MPI-3.0 routines that are defined with an mpif.h interface, but with the exception of MPI_SIZEOF, because MPI_SIZEOF is the only routine that requires (several overloaded) INTERFACE specifications, which did not came before Fortran 90.
I’d prefer to just delete the "For Fortran 77 with some extensions:” part and start with "Fortran 90 with some extensions” and move the extension "An MPI subroutine with a choice argument may be called with different argument types.” to the Fortran 90 block. Separately, the initial sentence of 17.1.6 reads; "This section describes which Fortran interface functionality can be provided for different versions of the Fortran standard.” This is technically flawed in that there are no “different versions” of the Fortran standard. There is only one version at any given time. This could be corrected by changing “different” to a more accurate word like deleted, cancelled, obsolete, legacy, …, and change the end of the sentence from “the Fortran standard” to “Fortran as well as standard Fortran”. Resulting in something like: "This section describes which Fortran interface functionality can be provided for obsolete versions of Fortran as well as standard Fortran." Cheers, Bill
Rolf
----- Original Message -----
From: "Jeff Squyres (jsquyres)" <[email protected]> To: "MPI-WG Fortran working group" <[email protected]> Sent: Thursday, June 12, 2014 9:19:27 PM Subject: Re: [MPIWG Fortran] MPI_SIZEOF: Errata required (was: Another MPI_SIZEOF question)
On Jun 11, 2014, at 4:25 PM, Bill Long <[email protected]> wrote:
Actually, this doesn't work, either. If you have an mpif.h that contains an "INTERFACE MPI_Sizeof", the compiler will treat it differently depending on whether it is included from source.f or source.f90 (and probably other variants, too). Gaahhh!
Not sure why you say this. Unless the lines get too long because of long names, you can write an include file so that it works for both fixed and free source forms. The assumed source form is the only distinction to the compiler between source files that end in .f and .f90.
Argh -- my Fortran ignorance rears its ugly head. Yes, indenting properly makes that problem go away.
It's a tight squeeze, but the longest interface I can find is with COMPLEX(REAL128) and DIMENSION for 15 ranks; it barely fits into 72 columns:
COMPLEX(REAL128),DIMENSION(1,1,1,1,1,1,1,1,1,1,1,1,1,1,*)::x
Quite ugly, of course. But with a perl script to generate all the possibilities (for maximum portability), it works. Yuck.
As you might recall from earlier conference calls, I prefer that nothing be added to mpif.h that was not there before. None of the new functions or constants. It should be frozen at MPI 2.2 for compatibility with legacy codes. If programmers want to use new features, they have to modify their sources anyway, and should change to using a module at the same time.
There was unfortunately pushback from the Forum on this issue; we lost that battle.
-- Jeff Squyres [email protected] For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
_______________________________________________ mpiwg-fortran mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran
-- Dr. Rolf Rabenseifner . . . . . . . . . .. email [email protected] High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530 University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832 Head of Dpmt Parallel Computing . . . www.hlrs.de/people/rabenseifner Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307) _______________________________________________ mpiwg-fortran mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran
Bill Long [email protected] Fortran Technical Suport & voice: 651-605-9024 Bioinformatics Software Development fax: 651-605-9142 Cray Inc./ Cray Plaza, Suite 210/ 380 Jackson St./ St. Paul, MN 55101
participants (1)
-
Bill Long