<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I understand the strict reading, but I don’t believe any implementation sets inactive persistent requests to MPI_REQUEST_NULL.  Do you know if any user applications defend against this option?<div class=""><br class=""></div><div class="">One reason to treat this as type-0 is that allows an immediate errata, clearing up an ambiguity.  If we treat it as a change, then (a) MPI 3.1 implementations are thus *wrong* if they don’t set inactive persistent requests to MPI_REQUEST_NULL and (b) the fix won’t take effect until the next MPI version is released.<br class=""><div class=""><br class=""></div><div class="">Bill</div><div class=""><br class=""><div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">William Gropp<br class="">Director and Chief Scientist, NCSA<br class="">Thomas M. Siebel Chair in Computer Science<br class="">University of Illinois Urbana-Champaign</div><br class="Apple-interchange-newline"></div></div><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<br class=""><div><blockquote type="cite" class=""><div class="">On Jun 11, 2018, at 4:35 AM, Rolf Rabenseifner <<a href="mailto:rabenseifner@hlrs.de" class="">rabenseifner@hlrs.de</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hi Bill,<br class=""><br class=""><blockquote type="cite" class="">This looks like type-0 correction.  I’m happy to treat it as such if there are<br class="">no objections.<br class=""></blockquote><br class="">(A) is clearly a typo-0.<br class=""><br class="">(B) may be better treated with an additional entry in the erratas<br class="">for the case that someone has implemented an application with <br class="">a list of persistent request handles togehter with some<br class="">calls to MPI_Waitsome until all requests are finished.<br class="">With this Erratum, he/she now knows that he/she can keep the<br class="">the list of request handles the whole time for the <br class="">MPI_Startall and all MPI_Waitsome because it is now guaranteed<br class="">that no handle will be substituted by MPI_REQUEST_NULL.<br class=""><br class="">Proposal:<br class="">MPI-3.0 and MPI-3.1, Sections 3.7.3 and 3.7.5.<br class="">As in MPI-1.x and MPI-2.x already described, inactive <br class="">persistent request handles are also allowed in all <br class="">MPI_WAIT... and MPI_TEST... routines and they are <br class="">never changed to MPI_REQUEST_NULL by these routines.<br class="">The wrong wording in MPI-3.0 and MPI-3.1 is corrected.<br class=""><br class="">Best regards<br class="">Rolf<br class=""><br class=""><br class=""><br class="">----- Original Message -----<br class=""><blockquote type="cite" class="">From: "wgropp" <<a href="mailto:wgropp@illinois.edu" class="">wgropp@illinois.edu</a>><br class="">To: "Rolf Rabenseifner" <<a href="mailto:rabenseifner@hlrs.de" class="">rabenseifner@hlrs.de</a>>, "Comments on the MPI Standard" <<a href="mailto:mpi-comments@lists.mpi-forum.org" class="">mpi-comments@lists.mpi-forum.org</a>><br class="">Sent: Monday, June 11, 2018 10:42:08 AM<br class="">Subject: Re: [Mpi-comments] (A) Typo and (B) mal-correction in all MPI_Wait.../Test... descriptions<br class=""></blockquote><br class=""><blockquote type="cite" class="">This looks like type-0 correction.  I’m happy to treat it as such if there are<br class="">no objections.<br class=""><br class="">Bill<br class=""><br class="">William Gropp<br class="">Director and Chief Scientist, NCSA<br class="">Thomas M. Siebel Chair in Computer Science<br class="">University of Illinois Urbana-Champaign<br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><blockquote type="cite" class="">On Jun 8, 2018, at 10:42 AM, Rolf Rabenseifner <<a href="mailto:rabenseifner@hlrs.de" class="">rabenseifner@hlrs.de</a>> wrote:<br class=""><br class="">Dear all,<br class=""><br class="">A) Typo:<br class=""><br class="">My colleague Martin Bernreuther detected the following typo:<br class=""><br class="">MPI-3.1 Section "3.7.3 Communication Completion", "MPI_WAIT"<br class="">page 53, lines 24-25 read<br class=""><br class="">"[...]. Any other type of request<br class="">is and the request handle is set to MPI_REQUEST_NULL. [...]"<br class=""><br class="">but should read<br class="">"[...]. Any other type of request<br class="">is deallocated and the request handle is set to MPI_REQUEST_NULL. [...]"<br class=""><br class="">In other Locations, this sentence is correct, i.e., includes the<br class="">word "deallocated", see MPI-3.1<br class="">- page 54, lines 20-21 in MPI_TEST,<br class="">- page 57, lines 45-46 in MPI_WAITANY,<br class="">- page 58, lines 35-36 in MPI_TESTANY,<br class="">- page 59, lines 23-24 in MPI_WAITALL,<br class="">- page 60, lines 25-26 in MPI_TESTALL,<br class="">- page 61, lines 19-20 in MPI_WAITSOME,<br class="">whereas MPI_TESTALL does not contain this sentence due<br class="">to a shorter description.<br class=""><br class=""><br class="">B) Mal-correction:<br class=""><br class="">The correction from MPI-2.2 to MPI-3.0 contains wrong wording for<br class="">MPI_Wait/Test... in the case of inactive request handles.<br class=""><br class="">The correction was done to include also nonblocking collectives and IO.<br class="">But the change to MPI-3.0 was not correct for inactive persistent request<br class="">handles.<br class=""><br class="">MPI-1.1 - MPI-2.2 used the wording:<br class=""><br class="">"A call to MPI WAIT returns when the operation identified by request is<br class="">complete.<br class="">If the communication object associated with this request was created by a<br class="">nonblocking send or<br class="">receive call, then the object is deallocated by the call to MPI WAIT and the<br class="">request handle<br class="">is set to MPI REQUEST NULL.<br class="">MPI WAIT is a non-local operation.<br class="">The call returns, in status, [...].<br class="">One is allowed to call MPI WAIT with a null or inactive request argument. In<br class="">this case<br class="">the operation returns immediately with empty status."<br class=""><br class="">For inactive persistent request handles, the text says:<br class="">- no change for the request handle,<br class="">- empty status returned.<br class=""><br class=""><br class="">MPI-3.0 and MPI-3.1 uses the following modified wording:<br class=""><br class="">"A call to MPI_WAIT returns when the operation identified by request is<br class="">complete.<br class="">If the request is an active persistent request, it is marked inactive. Any other<br class="">type of request<br class="">is [deallocated] and the request handle is set to MPI_REQUEST_NULL.<br class="">MPI_WAIT is a non-local operation.<br class="">The call returns, in status, [...].<br class="">One is allowed to call MPI_WAIT with a null or inactive request argument. In<br class="">this case<br class="">the operation returns immediately with empty status."<br class=""><br class="">For inactive persistent request handles, the text says:<br class="">- that it shpould be set to MPI_REQUEST_NULL, and<br class="">- empty status returned.<br class=""><br class="">The MPI_REQUEST_NULL was never intented and I expect that no MPI-library<br class="">has implemented that wrong behavior.<br class="">Note that in the case of an array of request handles, in a sequence of<br class="">MPI_Wait/Test-any/some<br class="">calls, it is allowed to keep the whole array untouched until all regular<br class="">requests<br class="">are set to MPI_REQUEST_NULL and all active persistent requests are changed to<br class="">inactive.<br class=""><br class=""><br class="">Proposal for correcting thos bug:<br class=""><br class="">Change all sentences<br class=""><br class="">"Any other type of request<br class="">is deallocated and the request handle is set to MPI_REQUEST_NULL."<br class=""><br class="">into<br class=""><br class="">"Any other type of non-persistent request<br class="">is deallocated and the request handle is set to MPI_REQUEST_NULL."<br class=""><br class="">The locations are:<br class=""><br class="">- page 53, lines 24-25 in MPI_WAIT (together with the typo, see (A) above)<br class="">- page 54, lines 20-21 in MPI_TEST,<br class="">- page 57, lines 45-46 in MPI_WAITANY,<br class="">- page 58, lines 35-36 in MPI_TESTANY,<br class="">- page 59, lines 23-24 in MPI_WAITALL,<br class="">- page 60, lines 25-26 in MPI_TESTALL,<br class="">- page 61, lines 19-20 in MPI_WAITSOME.<br class=""><br class=""><br class="">Best regards<br class="">Rolf<br class=""><br class=""><br class="">--<br class="">Dr. Rolf Rabenseifner . . . . . . . . . .. email <a href="mailto:rabenseifner@hlrs.de" class="">rabenseifner@hlrs.de</a> .<br class="">High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530 .<br class="">University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832 .<br class="">Head of Dpmt Parallel Computing . . . <a href="http://www.hlrs.de/people/rabenseifner" class="">www.hlrs.de/people/rabenseifner</a> .<br class="">Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307) .<br class="">_______________________________________________<br class="">mpi-comments mailing list<br class=""><a href="mailto:mpi-comments@lists.mpi-forum.org" class="">mpi-comments@lists.mpi-forum.org</a><br class="">https://lists.mpi-forum.org/mailman/listinfo/mpi-comments<br class=""></blockquote></blockquote><br class="">-- <br class="">Dr. Rolf Rabenseifner . . . . . . . . . .. email <a href="mailto:rabenseifner@hlrs.de" class="">rabenseifner@hlrs.de</a> .<br class="">High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530 .<br class="">University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832 .<br class="">Head of Dpmt Parallel Computing . . . <a href="http://www.hlrs.de/people/rabenseifner" class="">www.hlrs.de/people/rabenseifner</a> .<br class="">Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307) .<br class=""></div></div></blockquote></div><br class=""></div></div></body></html>