[MPIWG Fortran] [mpiwg-tools] Proposal: MPI_SIZEOF not profiled
Rolf Rabenseifner
rabenseifner at hlrs.de
Mon May 19 08:21:25 CDT 2014
Bill,
your text goes beyond the errata goal.
The errata goal was:
- adding the missing Status conversion
- adding MPI_SIZEOF
And this works as errata.
Your goal is to allow also
- Fortran non-interceptable for these routines.
Your additional Change is to allow other methods
than C macros for C.
This would prevent "#ifdef MPI_Wtime".
All this would be MPI-4.0 and not MPI-3.0 errata.
Rolf
----- Original Message -----
> From: "Bill Long" <longb at cray.com>
> To: "MPI-WG Fortran working group" <mpiwg-fortran at lists.mpi-forum.org>
> Sent: Monday, May 19, 2014 2:57:41 PM
> Subject: Re: [MPIWG Fortran] [mpiwg-tools] Proposal: MPI_SIZEOF not profiled
>
>
> On May 19, 2014, at 5:27 AM, Rolf Rabenseifner <rabenseifner at hlrs.de>
> wrote:
>
> > About https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/428
> >
> >> It is far better to say what you mean, that say something which
> >> most
> >> people believe is equivalent, because it won't be for all
> >> compilers
> >> or necessarily so in the future.
> >
> > Yes, therefore I would like to see a wording like
> >
> > An implementation is allowed to implement MPI_WTIME,
> > MPI_WTICK, PMPI_WTIME, PMPI_WTICK, and the handle-
> > and status-conversion functions (MPI_Group_f2c, etc.)
> > in Sections 17.2.4 and 17.2.5, and no others, as macros in C.
> > ***MPI_SIZEOF and PMPI_SIZEOF may also be implemented
> > such that they may not be interceptable.***
> >
> > Advice to implementors. Implementors should document
> > which routines are implemented as macros ***or otherwise
> > non-interceptable***. (End of advice to implementors.)
> >
> > Advice to users. If these routines are implemented
> > as macros ***or otherwise non-interceptable***, they will not
> > work with the MPI profiling interface. (End of advice to users.)
> >
> >
> > But for an Erratum, it should be a minimal change.
> > Currently, C applications can test wether a MPI_Wtime macro is
> > defined.
> > There is no need to change this.
> >
> > For Fortran, I learnt from these mails, that we Need to scpecify
> > the
> > outcome: non-intereptable.
>
>
> I’m still concerned about making a distinction between Fortran and C
> that is entirely artificial. If a Fortran program wants to avoid
> interception of MPI_WTICK, for example, it is trivial to write a
> wrapper C function my_wtick_ that contains the macro for MPI_Wtick.
> Macros in C are just another form of inlining. I think it would be
> better to merge together text from Martin and Rolf to end up with
> something simpler and clearer:
>
>
> An implementation is allowed to implement MPI_WTIME,
> MPI_WTICK, PMPI_WTIME, PMPI_WTICK, MPI_SIZEOF, PMPI_SIZEOF, and the
> handle-
> and status-conversion functions (MPI_Group_f2c, etc.)
> in Sections 17.2.4 and 17.2.5, and no others, such that they are not
> interceptable.
>
> Advice to implementors. Implementors should document
> which routines are implemented such that they are not interceptable.
> (End of advice to implementors.)
>
> Advice to users. If these routines are implemented
> as not interceptable, they will not
> work with the MPI profiling interface. (End of advice to users.)
>
>
>
>
>
> >
> > Best regards
> > Rolf
> >
> > ----- Original Message -----
> >> From: "N.M. Maclaren" <nmm1 at cam.ac.uk>
> >> To: "MPI-WG Fortran working group"
> >> <mpiwg-fortran at lists.mpi-forum.org>
> >> Cc: mpiwg-tools at lists.mpi-forum.org
> >> Sent: Sunday, May 18, 2014 12:02:32 PM
> >> Subject: Re: [MPIWG Fortran] [mpiwg-tools] Proposal: MPI_SIZEOF
> >> not profiled
> >>
> >> On May 18 2014, Martin Schulz wrote:
> >>>
> >>> I agree with what you are planning to propose, I am not sure,
> >>> though, the
> >>> wording is quite right, and with this I mean more the wording in
> >>> the
> >>> existing standard: this sound like as if all these functions are
> >>> still
> >>> interceptable in Fortran.
> >>>
> >>> What if we say:
> >>>
> >>> An implementation is allowed to implement MPI_WTIME, MPI_WTICK,
> >>> PMPI_WTIME, PMPI_WTICK, MPI_SIZEOF, PMPI_SIZEOF, and the
> >>> handle-conversion
> >>> functions (MPI_Group_f2c, etc.) in Section 17.2.4, and no others,
> >>> as
> >>> macros in C or allow them to be inlined.
> >>>
> >>> Advice to implementors. Implementors should document which
> >>> routines
> >>> are
> >>> implemented as macros or are implemented so that they can be
> >>> inlined. (End
> >>> of advice to implementors.)
> >>>
> >>> Advice to users. If these routines are implemented as macros or
> >>> are
> >>> inlined, they will not work with the MPI profiling interface.
> >>> (End
> >>> of
> >>> advice to users.)
> >>
> >> Basically, what you are doing is spelling out what the term
> >> 'inline'
> >> means in MPI, but it is STILL technically wrong and remains
> >> confusing.
> >> Lots of compilers generate multiple calling sequences with
> >> different
> >> properties - that is near-universal for library calls, but isn't
> >> rare
> >> for highly optimised user ones. Well, those are not inlined, and
> >> not
> >> interceptable.
> >>
> >> That is also true in C and C++, incidentally, where the word
> >> 'inline'
> >> means two subtly different things, neither of which is
> >> particularly
> >> close to the concept on 'inlining' being debated in this thread.
> >> But
> >> that mess originated in C99, where 'inline' had a LOT of
> >> opposition
> >> on
> >> precisely these grounds.
> >>
> >> It is far better to say what you mean, that say something which
> >> most
> >> people believe is equivalent, because it won't be for all
> >> compilers
> >> or
> >> necessarily so in the future.
> >>
> >>
> >> Regards,
> >> Nick Maclaren.
> >>
> >>
> >> _______________________________________________
> >> 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
>
>
> _______________________________________________
> 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)
More information about the mpiwg-fortran
mailing list