[MPIWG Fortran] MPI_SIZEOF: Errata required (was: Another MPI_SIZEOF question)

Bill Long longb at cray.com
Fri Jun 13 07:52:58 CDT 2014


On Jun 13, 2014, at 3:32 AM, Rolf Rabenseifner <rabenseifner at hlrs.de> 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)" <jsquyres at cisco.com>
>> To: "MPI-WG Fortran working group" <mpiwg-fortran at lists.mpi-forum.org>
>> 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 <longb at cray.com> 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
>> jsquyres at cisco.com
>> For corporate legal information go to:
>> http://www.cisco.com/web/about/doing_business/legal/cri/
>> 
>> _______________________________________________
>> mpiwg-fortran mailing list
>> mpiwg-fortran at lists.mpi-forum.org
>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran
>> 
> 
> -- 
> Dr. Rolf Rabenseifner . . . . . . . . . .. email rabenseifner at hlrs.de
> 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
> mpiwg-fortran at lists.mpi-forum.org
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran

Bill Long                                                                       longb at cray.com
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





More information about the mpiwg-fortran mailing list