[Mpi-forum] MPI-3: MPI_T_ERR_... and MPI_ERR_LASTCODE

Dave Goodell goodell at mcs.anl.gov
Mon Jul 23 12:32:08 CDT 2012


I agree, we should make these changes.

-Dave

On Jul 23, 2012, at 8:55 AM CDT, Schulz, Martin wrote:

> Hi Rolf, all,
> 
> I agree with your suggestions and I am in favor of making these changes. Bronis (as well as Kathryn and Dave as the remaining members in the chapter committee for tools) should concur, though.
> 
> Anybody else have any concerns over these changes?
> 
> As for the callability of the error functions, I also agree - let's target those in 3.1. This change is not vital and bit too big for final edits.
> 
> Thanks,
> 
> Martin
> 
> 
> On Jul 23, 2012, at 4:00 AM, Rolf Rabenseifner wrote:
> 
>> Martin et al.,
>> 
>> Consistently with your proposal, I would recommend:
>> 
>> 1) Sect 14.3.9 "Return Codes for the MPI tool information interface"
>> last sentence reads
>> 
>>   All return codes with the prefix MPI_T_ must be unique values and 
>>   cannot overlap with any other return values returned by the MPI 
>>   implementation.
>> 
>> but should read
>> 
>>> All return codes with the prefix MPI_T_ must be unique values and
>>> cannot overlap with any other 
>>   error codes and error classes 
>>> returned by the MPI
>>> implementation. Further, they shall be treated as MPI error classes as
>>> defined in Chapter 8.4 and follow the same rules and restrictions,
>>   especially they must satisfy
>> 
>>>>>>> 0 = MPI_SUCCESS < MPI_T_ERR_... \leq MPI_ERR_LASTCODE. 
>> 
>> 2) A.1.1 the first three tables are headed by 
>> 
>>  Error classes
>>  Error classes (continued)
>>  Return Codes for the MPI tool information interface
>> 
>> and these lines should read
>> 
>>  Error classes
>>  Error classes (continued)
>>  Error classes (continued)   
>> 
>> 3) The last line of A.1.1, 2nd table 
>> 
>>  MPI_ERR_LASTCODE
>> 
>> should move after the last MPI_T_ERR_... code in the 3rd table.
>> 
>> Okay?
>> 
>> The topic about user-callability of MPI_ERROR_CLASS and MPI_ERROR_STRING
>> outside of the initialized MPI should be revisited in MPI-3.1.
>> This is not evident for the tools' developers because they know
>> the meaning of their MPI_T_ERR... classes and only classes are returned. 
>> 
>> I would like to have a final "okay" before I execute 
>> the changes in chap-appLang. 
>> 
>> Best regards
>> Rolf
>> 
>> ----- Original Message -----
>>> From: "Martin Schulz" <schulzm at llnl.gov>
>>> To: "Main MPI Forum mailing list" <mpi-forum at lists.mpi-forum.org>
>>> Sent: Monday, July 23, 2012 1:23:40 AM
>>> Subject: Re: [Mpi-forum] MPI-3: MPI_T_ERR_... and MPI_ERR_LASTCODE
>>> Hi Rolf, all,
>>> 
>>> I thought we had discussed the error semantics of MPI_T in several
>>> meetings/readings and nobody objected, but I generally agree with your
>>> comments below. However, they are not really error classes (at least
>>> in the tools group we/I never thought about them this way), but just
>>> well defined return codes. Nevertheless, they fit the model and
>>> semantics of classes and hence should integrated into the same rules
>>> for consistency. I also agree with Bronis, though, that larger
>>> feedback on this would be good to avoid errors because of rushing it.
>>> 
>>> To keep changes minimal, I would suggest that we only change the
>>> following sentence, which IMHO is sufficient (and would essentially
>>> follow option b):
>>> 
>>> All return codes with the prefix MPI_T_ must be unique values and
>>> cannot overlap with any other return values returned by the MPI
>>> implementation. Further, they shall be treated as MPI error classes as
>>> defined in Chapter 8.4 and follow the same rules and restrictions.
>>> 
>>> This would also make changes in the appendix unnecessary.
>>> 
>>> As for making MPI_ERROR_CLASS and MPI_ERROR_STRING callable before
>>> Init (and then also after finalize), yes that would be very useful,
>>> but is a general issue not only related to MPI_T. If we decide this is
>>> too invasive at this point, I would like to see this at least in 3.1.
>>> 
>>> Martin
>>> 
>>> 
>>> 
>>> 
>>> On Jul 22, 2012, at 1:46 PM, Rolf Rabenseifner wrote:
>>> 
>>>> About 1. question:
>>>> 
>>>> I changed the headers of the three error code tables in the Annex
>>>> according to Tables 8.1 and 8.2 from "Return codes"
>>>> into "Error classes".
>>>> 
>>>> svn r1505: I used also "Error classes" for the tools table
>>>> svn r1507: I went back to the official ticket 266 text "Return
>>>> codes"
>>>> 
>>>> The Tools group should decide whether
>>>> a. they want to stay with special return codes that are not
>>>> part of the rule in Set. 8.4
>>>> 
>>>> 0 = MPI_SUCCESS < MPI_ERR_... <= MPI_ERR_LASTCODE
>>>> 
>>>> In this case they should change "return code"
>>>> into "error codes are returned" plus noting that
>>>> the routine MPI_ERROR_STRING can be applied
>>>> with the open question, whether MPI_EEROR_STRING
>>>> can be applied before a call to MPI_INIT.
>>>> 
>>>> Similar problem with failed MPI_INIT and analysing its
>>>> returned error code:
>>>> One needs at least MPI_ERROR_CLASS and MPI_ERROR_STRING
>>>> callable before MPI_INIT.
>>>> 
>>>> b. or you may use the same terminology as in Sect. 8.4,
>>>> then new table 14.5 must show "Error classes".
>>>> 
>>>> In this case you should integrate the MPI_T_ERR_...
>>>> into the MPI_ERR_LASTCODE rule.
>>>> 
>>>> You need at least MPI_ERROR_CLASS and MPI_ERROR_STRING
>>>> callable before MPI_INIT.
>>>> 
>>>> I would prefer solution b together combined with the
>>>> minimal solution for failed MPI_INIT, i.e.,
>>>> adding MPI_ERROR_CLASS and MPI_ERROR_STRING to
>>>> the list of routines callable outside of MPI's
>>>> initialization.
>>>> 
>>>> 
>>>> About 2. question: MPI_T_ERR_CANTINIT -_> MPI_T_ERR_CANNOTINIT
>>>> 
>>>> svn r1506: done by Bronis in chap-tools/mpit.tex
>>>> svn r1508: done by Rolf in chap-appLang/appLang-Const.tex
>>>> 
>>>> Rolf
>>>> 
>>>> ----- Original Message -----
>>>>> From: "Bronis R. de Supinski" <bronis at llnl.gov>
>>>>> To: "Main MPI Forum mailing list" <mpi-forum at lists.mpi-forum.org>
>>>>> Cc: "Rolf Rabenseifner" <rabenseifner at hlrs.de>
>>>>> Sent: Sunday, July 22, 2012 10:03:44 PM
>>>>> Subject: Re: [Mpi-forum] MPI-3: MPI_T_ERR_... and MPI_ERR_LASTCODE
>>>>> Rolf:
>>>>> 
>>>>> OK, I am changing MPI_T_ERR_CANTINIT to MPI_T_ERR_CANNOTINIT.
>>>>> 
>>>>> As said before, we need more opinions on the first question.
>>>>> 
>>>>> Bronis
>>>>> 
>>>>> 
>>>>> On Sun, 22 Jul 2012, Bronis R. de Supinski wrote:
>>>>> 
>>>>>> 
>>>>>> Rolf:
>>>>>> 
>>>>>> Re:
>>>>>>> Dear Bronis, Martin, Dave, and Kathryn,
>>>>>>> (Profiling/Tools chapter responsibles)
>>>>>>> 
>>>>>>> (you may forward this to the tools list - I'm not on that list)
>>>>>>> 
>>>>>>> Two important questions:
>>>>>>> 
>>>>>>> 1. Alexander Supalov detected that we did it wrong:
>>>>>>> The MPI_T_ERR_... list must be part of the total error
>>>>>>> list and sorted in before MPI_ERR_LASTCODE.
>>>>>>> 
>>>>>>> I will change this in chap-appLang/appLang-Const.tex
>>>>>>> 
>>>>>>> Please look, if there must be some additional wording on this.
>>>>>>> For example, the last sentence of Section 14.3.9
>>>>>>> 
>>>>>>> "All return codes with the prefix MPI_T_ must be unique values
>>>>>>> and
>>>>>>> cannot overlap with any other return values returned by the MPI
>>>>>>> implementation."
>>>>>> 
>>>>>> The above wording clearly states that the return values
>>>>>> should be consistent with MPI_ERR_* return values. So,
>>>>>> either the above wording needs to change (I do not see
>>>>>> why MPI_T_* return values need to be distinct from
>>>>>> MPI_ERR_* return values since the user should know that
>>>>>> they were using an MPI_T_* function) or we need to adopt
>>>>>> something like what you suggest.
>>>>>> 
>>>>>> I think we need broader opinions to make the decision.
>>>>>> 
>>>>>> I am concerned that wrapping up the document for MPI 3.0
>>>>>> has led to a fast and loose attitude about making broader
>>>>>> changes "in order to get it done." This attitude can
>>>>>> easily lead to suboptimal solutions.
>>>>>> 
>>>>>> Bronis
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>> may be modified into
>>>>>>> 
>>>>>>> "All return codes with the prefix MPI_T_ must be unique values
>>>>>>> and
>>>>>>> cannot overlap with any other return values returned by the MPI
>>>>>>> implementation and satisfy
>>>>>>> 
>>>>>>> 0 = MPI_SUCCESS < MPI_T_ERR_... <= MPI_ERR_LASTCODE. "
>>>>>>> 
>>>>>>> or
>>>>>>> 0 = MPI_SUCCESS < MPI_ERR_... < MPI_T_ERR_... <=
>>>>>>> MPI_ERR_LASTCODE.
>>>>>>> 
>>>>>>> or
>>>>>>> 0 = MPI_SUCCESS < MPI_ERR_... <= MPI_ERR_LASTCODE <
>>>>>>> MPI_T_ERR_... <= MPI_T_ERR_LASTCODE.
>>>>>>> 
>>>>>>> and the MPI_ERR_LASTCODE and/or MPI_T_ERR_LASTCODE may be also
>>>>>>> repeated
>>>>>>> in Table 14.5 as last entry, as done for the first value
>>>>>>> MPI_SUCCESS.
>>>>>>> 
>>>>>>> This proposal is based on Section 8.4, the sentence
>>>>>>> 
>>>>>>> "The error codes satisfy,
>>>>>>> 0 = MPI_SUCCESS < MPI_ERR_... <= MPI_ERR_LASTCODE: "
>>>>>>> 
>>>>>>> Please confirm, that Alexander is right,
>>>>>>> please include me in your discussion and
>>>>>>> please tell me your result
>>>>>>> that I can do the correct changes in chap-appLang
>>>>>>> and you in chap-tools.
>>>>>>> 
>>>>>>> 2. Qeustion is less important; it is about naming:
>>>>>>> Alexander also noticed that your names do not fit to the names
>>>>>>> used in the past:
>>>>>>> 
>>>>>>> MPI_T_ERR_CANTINIT --> MPI_T_ERR_CANNOTINIT (we do not use
>>>>>>> abbrevations)
>>>>>>> 
>>>>>>> or
>>>>>>> 
>>>>>>> MPI_T_ERR_CANTINIT --> MPI_T_ERR_CANNOT_INIT (we do not use
>>>>>>> abbrevations)
>>>>>>> 
>>>>>>> In most cases, we do not combine words without underscore.
>>>>>>> 
>>>>>>> As far as I see, you can do the underscores.
>>>>>>> Be sure to stay at maximum with 30 characters.
>>>>>>> 
>>>>>>> Current longest MPI_T constants:
>>>>>>> 
>>>>>>> 123456789012345678901234567890
>>>>>>> MPI_T_PVAR_CLASS_HIGHWATERMARK
>>>>>>> MPI_T_PVAR_CLASS_LOWWATERMARK
>>>>>>> MPI_T_VERBOSITY_MPIDEV_DETAIL
>>>>>>> 
>>>>>>> Based on this, I would stay with you names based on your MPI_T
>>>>>>> rule:
>>>>>>> MPI_T_<structual-areas-with-underscores>_<final-name-without-underscores>
>>>>>>> 
>>>>>>> i.e., I would only change
>>>>>>> 
>>>>>>> MPI_T_ERR_CANTINIT --> MPI_T_ERR_CANNOTINIT
>>>>>>> 
>>>>>>> Please tell me also your decision
>>>>>>> that I can do the correct changes in chap-appLang
>>>>>>> and you in chap-tools.
>>>>>>> 
>>>>>>> Best regards
>>>>>>> Rolf
>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> 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: Allmandring
>>>>>>> 30)
>>>>>>> 
>>>>>> _______________________________________________
>>>>>> mpi-forum mailing list
>>>>>> mpi-forum at lists.mpi-forum.org
>>>>>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum
>>>>>> 
>>>> 
>>>> --
>>>> 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: Allmandring 30)
>>>> _______________________________________________
>>>> mpi-forum mailing list
>>>> mpi-forum at lists.mpi-forum.org
>>>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum
>>> 
>>> ________________________________________________________________________
>>> Martin Schulz, schulzm at llnl.gov, http://people.llnl.gov/schulzm
>>> CASC @ Lawrence Livermore National Laboratory, Livermore, USA
>>> 
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> mpi-forum mailing list
>>> mpi-forum at lists.mpi-forum.org
>>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum
>> 
>> -- 
>> 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: Allmandring 30)
> 
> ________________________________________________________________________
> Martin Schulz, schulzm at llnl.gov, http://people.llnl.gov/schulzm
> CASC @ Lawrence Livermore National Laboratory, Livermore, USA
> 
> 
> 
> 
> _______________________________________________
> mpi-forum mailing list
> mpi-forum at lists.mpi-forum.org
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum





More information about the mpi-forum mailing list