<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Martin,<div class=""><br class=""></div><div class="">Thanks (and thanks to Dominik).</div><div class=""><br class=""></div><div class="">One clarification that jumps out at me and is<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">, IMHO,</span> worth pointing out to reduce confusion (or start an argument):</div><div class=""><br class=""></div><div class="">The question “Blocking?” in the table on slide 8 should probably be “May it block?” in plain English, which is “Nonlocal?” in MPI terms.</div><div class=""><br class=""></div><div class="">(Note: blocking procedure <=> NOT nonblocking procedure <=> NOT (incomplete procedure AND local procedure) <=> completing procedure OR nonlocal procedure)</div><div class=""><br class=""></div><div class="">I expect that the new procedures accept<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">_res_change</span>/confirm_res_change are both completing procedures (because the user can use the output value of new_pset immediately upon return of the procedure), so they are definitely blocking procedures in MPI terms.</div><div class=""><br class=""></div><div class="">The question “Nonlocal?” is still interesting though.</div><div class=""><br class=""></div><div class="">All collective MPI operations are permitted to synchronise and are, therefore, nonlocal operations (meaning it is permitted for a valid implementation of MPI to delay completion of the operation at any involved MPI process until all involved MPI processes have started the operation).</div><div class=""><br class=""></div><div class="">A single procedure that does all four stages of a collective operation must therefore be a nonlocal procedure (meaning <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">it is permitted for a valid implementation of MPI to delay the return of the procedure at any involved MPI process until all involved MPI processes have called the procedure).</span></div><div class=""><font color="#000000" class=""><span style="caret-color: rgb(0, 0, 0);" class=""><br class=""></span></font></div><div class=""><font color="#000000" class=""><span style="caret-color: rgb(0, 0, 0);" class="">The user must code as though the procedure synchronises with all involved MPI processes every time it is called.</span></font></div><div class=""><font color="#000000" class=""><span style="caret-color: rgb(0, 0, 0);" class="">The implementation is free to synchronise if it feels like it, or it can locally complete the operation and return from the procedure before knowing that other MPI processes have called it as long as it can fulfil the semantics of the operation as far as the local MPI process is concerned.</span></font></div><div class=""><font color="#000000" class=""><span style="caret-color: rgb(0, 0, 0);" class=""><br class=""></span></font></div><div class=""><font color="#000000" class="">OTOH, the answers given in the table seem to be addressing a different question of “Must it block?” which is not an MPI semantic that has a named term but could expressed as “Must it synchronise?” in MPI terms. That is a question we don’t usually ask because it is an implementation design decision and not something that the MPI Standard tries to control or specify.<br class=""></font><div class="">
<meta charset="UTF-8" class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); 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; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div style="caret-color: rgb(0, 0, 0); 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; text-decoration: none;"><br class="Apple-interchange-newline">Cheers,</div><div style="caret-color: rgb(0, 0, 0); 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; text-decoration: none;">Dan.</div><div style="caret-color: rgb(0, 0, 0); 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; text-decoration: none;">—</div><div style="caret-color: rgb(0, 0, 0); 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; text-decoration: none;">Dr Daniel Holmes PhD</div>Executive Director<br class="">Chief Technology Officer<br class=""><div style="caret-color: rgb(0, 0, 0); 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; text-decoration: none;">CHI Ltd</div><div style="caret-color: rgb(0, 0, 0); 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; text-decoration: none;"><a href="mailto:danholmes@chi.scot" class="">danholmes@chi.scot</a></div><div style="caret-color: rgb(0, 0, 0); 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; text-decoration: none;" class=""><br class=""></div></div><br class="Apple-interchange-newline">
</div>
<div><br class=""><blockquote type="cite" class=""><div class="">On 11 Jan 2022, at 14:56, Martin SCHREIBER via mpiwg-sessions <<a href="mailto:mpiwg-sessions@lists.mpi-forum.org" class="">mpiwg-sessions@lists.mpi-forum.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Bonjour,<br class=""><br class="">Dominik asked me to forward his slides to this mailing list.<br class=""><br class="">Here they are:<br class=""><a href="http://www.martin-schreiber.info/pub/tmp/2022_01_11_dominik_huber_dynamic_sessions_interface_annotated.pdf" class="">www.martin-schreiber.info/pub/tmp/2022_01_11_dominik_huber_dynamic_sessions_interface_annotated.pdf</a><br class=""><br class="">He also extended them with more information.<br class=""><br class="">All the best,<br class=""><br class="">Martin<br class=""><br class=""><br class="">-- <br class="">Prof. Dr. Martin Schreiber<br class=""><br class="">Applied Mathematics / Scientific and High-Performance Computing<br class="">Université Grenoble Alpes / Laboratoire Jean Kuntzmann, France<br class=""><br class="">Time-X Euro-HPC project:<br class="">Informatics / Computer Architecture and Parallel Systems<br class="">Technical University of Munich, Germany<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">_______________________________________________<br class="">mpiwg-sessions mailing list<br class="">mpiwg-sessions@lists.mpi-forum.org<br class="">https://lists.mpi-forum.org/mailman/listinfo/mpiwg-sessions<br class=""></div></div></blockquote></div><br class=""></div></body></html>