[Mpi-forum] "BigCount" rendering in PDF

Jeff Squyres (jsquyres) jsquyres at cisco.com
Tue Jul 30 11:13:09 CDT 2019


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).

Comments / suggestions are welcome, but you may only make comments / suggestions if you have read all of the "MORE DETAIL" section, below.


We have split the work of the "BigCount" WG into two parts:

1. Updating all the bindings throughout the entire MPI spec.  This is further sub-divided into two parts:
   1a. Updating the bindings in the chapters of the MPI spec.
   1b. Updating the bindings listing in Annex A.

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.

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.

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.).

Attached are 2 documents:

1. The point-to-point chapter rendered in the new style.  Look at the bindings for MPI_SEND and MPI_RECV, for example.

2. Annex A rendered in the new style (only some of the bindings have been updated so far -- such as pt2pt and external interfaces).

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.


The overall intent is:

A. In MPI-4.0, expose "BigCount" functionality through language polymorphism in the C bindings and the mpi_f08 module (we are not updating mpif.h or the mpi module).

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).

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.


For each binding in the main text of the document:

1. Show the "plain" MPI_Foo(...) C binding (e.g., as it appeared in MPI-3.1)

2. If the binding has count or displacement arguments:
   2a. Show a second MPI_Foo() C binding with count and displacement arguments as MPI_Count and MPI_Aint, respectively.
   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.

3. Show the "plain" MPI_Foo(...) F08 binding (e.g., as it appeared in MPI-3.1)

4. If the binding has count or displacement arguments:
   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.

5. Show the "plain" F90 binding



- Slides we presented at the BigCount Virtual Meeting: https://docs.google.com/presentation/d/10D_ws5NYAOI8m6KZKb31s9HxiSSmc_k5C620Cuy3brY/edit

- Webex Recording of the BigCount Virtual Meeting: https://www.mpi-forum.org/virtual_meetings/

- Froozle MPI, a no-op MPI implementation showing a bindings implementation of BigCount: https://github.com/jsquyres/froozle-mpi

If you have read all the way down to this point, comments and feedback are welcome.  :-)

Jeff Squyres
jsquyres at cisco.com<mailto:jsquyres at cisco.com>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpi-forum/attachments/20190730/e253b99e/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pt2pt-4.0-sample-rendering-with-bigcount-bindings.pdf
Type: application/pdf
Size: 405146 bytes
Desc: pt2pt-4.0-sample-rendering-with-bigcount-bindings.pdf
URL: <http://lists.mpi-forum.org/pipermail/mpi-forum/attachments/20190730/e253b99e/attachment-0002.pdf>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: annex-a-4.0-sample-rendering-with-bigcount-bindings.pdf
Type: application/pdf
Size: 664163 bytes
Desc: annex-a-4.0-sample-rendering-with-bigcount-bindings.pdf
URL: <http://lists.mpi-forum.org/pipermail/mpi-forum/attachments/20190730/e253b99e/attachment-0003.pdf>

More information about the mpi-forum mailing list