<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
<div class="" style="word-wrap:break-word; line-break:after-white-space">
<div class=""><u class=""><b class=""><font color="#ff0000" class="">SHORT VERSION</font></b></u></div>
<div class=""><br class="">
</div>
<div class="">See the attached two PDFs for how "BigCount" will be rendered in the MPI-4.0 PDF (pt2pt chapter and pt2pt/external interfaces in Annex A).</div>
<div class=""><br class="">
</div>
<div class="">Comments / suggestions are welcome, but you may only make comments / suggestions if you have read all of the "MORE DETAIL" section, below.</div>
<div class=""><br class="">
</div>
<div class=""><font color="#ff0000" class=""><u class=""><b class="">MORE DETAIL</b></u></font></div>
<div class=""><br class="">
</div>
<div class="">We have split the work of the "BigCount" WG into two parts:</div>
<div class=""><br class="">
</div>
<div class="">1. Updating all the bindings throughout the entire MPI spec.  This is further sub-divided into two parts:</div>
<div class="">   1a. Updating the bindings in the chapters of the MPI spec.</div>
<div class="">   1b. Updating the bindings listing in Annex A.</div>
<div class=""><br class="">
</div>
<div class="">2. Updating text in various chapters (e.g., Terms&Conventions and Language Bindings) describing BigCount, language consequences, describing how the bindings appear in the rest of the doc, ...etc.</div>
<div class=""><br class="">
</div>
<div class="">We've incorporated all the feedback from the BigCount Virtual Meeting last week, and I'd like to share samples of how #1a and #1b will look in the MPI 4.0 PDF.</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">Text for #2 will be read at the September meeting (stay tuned -- that text will be published according to the normal 2-week deadline, etc.).</div>
</div>
<div class=""><br class="">
</div>
<div class="">Attached are 2 documents:</div>
<div class=""><br class="">
</div>
<div class="">1. The point-to-point chapter rendered in the new style.  Look at the bindings for MPI_SEND and MPI_RECV, for example.</div>
<div class=""><br class="">
</div>
<div class="">2. Annex A rendered in the new style (only some of the bindings have been updated so far -- such as pt2pt and external interfaces).</div>
<div class=""><br class="">
</div>
<div class="">If you are confused when looking at these PDFs (e.g., why are there up to 3 C bindings?), and/or if you weren't at the Virtual Meeting / didn't watch the Webex after the fact, the feedback we received from the Virtual Meeting is summarized below.
  It is a lot of wordswordswords and is somewhat difficult to follow -- I highly suggest reading the rules below while simultaneously examining the attached PDFs.  The summary below should make much more sense when looking at concrete examples.</div>
<div class=""><br class="">
</div>
<div class="">-----</div>
<div class=""><br class="">
</div>
<div class="">The overall intent is:</div>
<div class=""><br class="">
</div>
<div class="">A. In MPI-4.0, expose "BigCount" functionality through language polymorphism in the C bindings and the mpi_f08 module (we are
<i class=""><u class="">not</u></i> updating mpif.h or the mpi module).</div>
<div class=""><br class="">
</div>
<div class="">B. C11 _Generic polymorphism kinda sucks, *and* we're in a transition period where not all C compilers are C11-capable.  Hence, we're exposing up to *3* C bindings per MPI procedure to applications (including explicitly exposing the "_x" variant
 where relevant).</div>
<div class=""><br class="">
</div>
<div class="">C. Fortran polymorphism "just works" (skipping a longer explanation here -- ask Rolf/Puri if you're interested in the details), so there will only be up to *2* F08 bindings per MPI procedure.</div>
<div class=""><br class="">
</div>
<div class="">-----</div>
<div class=""><br class="">
</div>
<div class="">For each binding in the main text of the document:</div>
<div class="">
<div class=""><br class="">
</div>
<div class="">1. Show the "plain" MPI_Foo(...) C binding (e.g., as it appeared in MPI-3.1)</div>
<div class=""><br class="">
</div>
<div class="">2. If the binding has count or displacement arguments:</div>
<div class="">   2a. Show a second MPI_Foo() C binding with count and displacement arguments as MPI_Count and MPI_Aint, respectively.</div>
<div class="">   2b. If MPI_Foo() DOES NOT HAVE a corresponding MPI_Foo_x() in MPI-3.1, show a third MPI_Foo_x(...) C binding with count/displacement as MPI_Count/MPI_Aint.</div>
<div class=""><br class="">
</div>
<div class="">3. Show the "plain" MPI_Foo(...) F08 binding (e.g., as it appeared in MPI-3.1)</div>
<div class=""><br class="">
</div>
<div class="">4. If the binding has count or displacement arguments:</div>
<div class="">   4a. Show a second MPI_Foo() F08 binding with count and displacement arguments as INTEGER(KIND=MPI_COUNT_KIND) and INTEGER(MPI_ADDRESS_KIND), respectively.</div>
<div class=""><br class="">
</div>
<div class="">5. Show the "plain" F90 binding</div>
<div class=""><br class="">
</div>
<div class="">-----</div>
<div class=""><br class="">
</div>
<div class="">References:</div>
<div class=""><br class="">
</div>
<div class="">- Slides we presented at the BigCount Virtual Meeting: <a href="https://docs.google.com/presentation/d/10D_ws5NYAOI8m6KZKb31s9HxiSSmc_k5C620Cuy3brY/edit" class="">
https://docs.google.com/presentation/d/10D_ws5NYAOI8m6KZKb31s9HxiSSmc_k5C620Cuy3brY/edit</a></div>
<div class=""><br class="">
</div>
<div class="">- Webex Recording of the BigCount Virtual Meeting: <a href="https://www.mpi-forum.org/virtual_meetings/" class="">https://www.mpi-forum.org/virtual_meetings/</a></div>
<div class=""><br class="">
</div>
<div class="">- Froozle MPI, a no-op MPI implementation showing a bindings implementation of BigCount: <a href="https://github.com/jsquyres/froozle-mpi" class="">https://github.com/jsquyres/froozle-mpi</a></div>
<div class="">
<div class=""><br class="">
</div>
If you have read all the way down to this point, comments and feedback are welcome.  :-)<br class="">
<br class="">
-- <br class="">
<div class="">
<div class="">
<div class="">Jeff Squyres<br class="">
<a href="mailto:jsquyres@cisco.com" class="">jsquyres@cisco.com</a></div>
<br class="">
</div>
</div>
</div>
</div>
<div class=""></div>
</div>
<div style="word-wrap:break-word; line-break:after-white-space">
<meta content="text/html; charset=us-ascii">
<div></div>
</div>
<div class="" style="word-wrap:break-word; line-break:after-white-space">
<div class=""></div>
</div>
</body>
</html>