[Mpi-comments] (A) Typo and (B) mal-correction in all MPI_Wait.../Test... descriptions

Rolf Rabenseifner rabenseifner at hlrs.de
Mon Jun 11 04:35:55 CDT 2018


Hi Bill,

> This looks like type-0 correction.  I’m happy to treat it as such if there are
> no objections.

(A) is clearly a typo-0.

(B) may be better treated with an additional entry in the erratas
for the case that someone has implemented an application with 
a list of persistent request handles togehter with some
calls to MPI_Waitsome until all requests are finished.
With this Erratum, he/she now knows that he/she can keep the
the list of request handles the whole time for the 
MPI_Startall and all MPI_Waitsome because it is now guaranteed
that no handle will be substituted by MPI_REQUEST_NULL.

Proposal:
MPI-3.0 and MPI-3.1, Sections 3.7.3 and 3.7.5.
As in MPI-1.x and MPI-2.x already described, inactive 
persistent request handles are also allowed in all 
MPI_WAIT... and MPI_TEST... routines and they are 
never changed to MPI_REQUEST_NULL by these routines.
The wrong wording in MPI-3.0 and MPI-3.1 is corrected.

Best regards
Rolf
 


----- Original Message -----
> From: "wgropp" <wgropp at illinois.edu>
> To: "Rolf Rabenseifner" <rabenseifner at hlrs.de>, "Comments on the MPI Standard" <mpi-comments at lists.mpi-forum.org>
> Sent: Monday, June 11, 2018 10:42:08 AM
> Subject: Re: [Mpi-comments] (A) Typo and (B) mal-correction in all MPI_Wait.../Test... descriptions

> This looks like type-0 correction.  I’m happy to treat it as such if there are
> no objections.
> 
> Bill
> 
> William Gropp
> Director and Chief Scientist, NCSA
> Thomas M. Siebel Chair in Computer Science
> University of Illinois Urbana-Champaign
> 
> 
> 
> 
> 
> 
>> On Jun 8, 2018, at 10:42 AM, Rolf Rabenseifner <rabenseifner at hlrs.de> wrote:
>> 
>> Dear all,
>> 
>> A) Typo:
>> 
>> My colleague Martin Bernreuther detected the following typo:
>> 
>> MPI-3.1 Section "3.7.3 Communication Completion", "MPI_WAIT"
>> page 53, lines 24-25 read
>> 
>> "[...]. Any other type of request
>> is and the request handle is set to MPI_REQUEST_NULL. [...]"
>> 
>> but should read
>> "[...]. Any other type of request
>> is deallocated and the request handle is set to MPI_REQUEST_NULL. [...]"
>> 
>> In other Locations, this sentence is correct, i.e., includes the
>> word "deallocated", see MPI-3.1
>> - page 54, lines 20-21 in MPI_TEST,
>> - page 57, lines 45-46 in MPI_WAITANY,
>> - page 58, lines 35-36 in MPI_TESTANY,
>> - page 59, lines 23-24 in MPI_WAITALL,
>> - page 60, lines 25-26 in MPI_TESTALL,
>> - page 61, lines 19-20 in MPI_WAITSOME,
>> whereas MPI_TESTALL does not contain this sentence due
>> to a shorter description.
>> 
>> 
>> B) Mal-correction:
>> 
>> The correction from MPI-2.2 to MPI-3.0 contains wrong wording for
>> MPI_Wait/Test... in the case of inactive request handles.
>> 
>> The correction was done to include also nonblocking collectives and IO.
>> But the change to MPI-3.0 was not correct for inactive persistent request
>> handles.
>> 
>> MPI-1.1 - MPI-2.2 used the wording:
>> 
>> "A call to MPI WAIT returns when the operation identified by request is
>> complete.
>> If the communication object associated with this request was created by a
>> nonblocking send or
>> receive call, then the object is deallocated by the call to MPI WAIT and the
>> request handle
>> is set to MPI REQUEST NULL.
>> MPI WAIT is a non-local operation.
>> The call returns, in status, [...].
>> One is allowed to call MPI WAIT with a null or inactive request argument. In
>> this case
>> the operation returns immediately with empty status."
>> 
>> For inactive persistent request handles, the text says:
>> - no change for the request handle,
>> - empty status returned.
>> 
>> 
>> MPI-3.0 and MPI-3.1 uses the following modified wording:
>> 
>> "A call to MPI_WAIT returns when the operation identified by request is
>> complete.
>> If the request is an active persistent request, it is marked inactive. Any other
>> type of request
>> is [deallocated] and the request handle is set to MPI_REQUEST_NULL.
>> MPI_WAIT is a non-local operation.
>> The call returns, in status, [...].
>> One is allowed to call MPI_WAIT with a null or inactive request argument. In
>> this case
>> the operation returns immediately with empty status."
>> 
>> For inactive persistent request handles, the text says:
>> - that it shpould be set to MPI_REQUEST_NULL, and
>> - empty status returned.
>> 
>> The MPI_REQUEST_NULL was never intented and I expect that no MPI-library
>> has implemented that wrong behavior.
>> Note that in the case of an array of request handles, in a sequence of
>> MPI_Wait/Test-any/some
>> calls, it is allowed to keep the whole array untouched until all regular
>> requests
>> are set to MPI_REQUEST_NULL and all active persistent requests are changed to
>> inactive.
>> 
>> 
>> Proposal for correcting thos bug:
>> 
>> Change all sentences
>> 
>> "Any other type of request
>> is deallocated and the request handle is set to MPI_REQUEST_NULL."
>> 
>> into
>> 
>> "Any other type of non-persistent request
>> is deallocated and the request handle is set to MPI_REQUEST_NULL."
>> 
>> The locations are:
>> 
>> - page 53, lines 24-25 in MPI_WAIT (together with the typo, see (A) above)
>> - page 54, lines 20-21 in MPI_TEST,
>> - page 57, lines 45-46 in MPI_WAITANY,
>> - page 58, lines 35-36 in MPI_TESTANY,
>> - page 59, lines 23-24 in MPI_WAITALL,
>> - page 60, lines 25-26 in MPI_TESTALL,
>> - page 61, lines 19-20 in MPI_WAITSOME.
>> 
>> 
>> 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: Room 1.307) .
>> _______________________________________________
>> mpi-comments mailing list
>> mpi-comments at lists.mpi-forum.org
> > https://lists.mpi-forum.org/mailman/listinfo/mpi-comments

-- 
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 mpi-comments mailing list