[mpiwg-abi] meeting April 4 to discuss integer and handle constants

Jeff Hammond jeff.science at gmail.com
Mon Apr 3 11:57:49 CDT 2023


The meeting is tomorrow, Tuesday, April 4, 17-18 Helsinki time, 8-9 AM New
York time.

The topics / decisions of interest are:

A. Integer constants

We have constants that must be powers of two (mode constants),
constants that must have a < relationship (error codes and thread levels),
constants that should be negative to avoid conflicting with e.g. ranks, and
constants that can be anything.

I have a proposal for constants here:
https://github.com/mpiwg-abi/specification-text-draft/blob/main/IntegerConstants.md.
I have not yet implemented Dan's suggestion to make constants unique
(presumably, for the aforementioned categories that allow it).

I would like feedback on the following:
1. Are the values of MPI_MAX_*** acceptable?  In all cases, I chose the
greater of MPICH and OMPI.  For MPI_BSEND_OVERHEAD, I used 512 to be safe.
Is that too large?  Is 128 better?
2. Are there any opponents to Dan's suggestion that all the constants are
unique, within reason?  If the consensus favors this, I'll redo all the
constants accordingly.
3. Are there any other integer constant values that bother people?  I have
very little attachment to any of them, and it is trivial to change them now.

B. Handle constants

I implemented a Huffman code for these (
https://github.com/mpiwg-abi/specification-text-draft/blob/main/HandleConstants.md
).  I made a Python code
<https://github.com/mpiwg-abi/specification-text-draft/blob/main/print-handle-constants.py>
that implements it, and the program dumps all the values, and can be
modified easily to generate mpi_abi.h.

Does anyone oppose the idea of a Huffman code?  I know Hui is indifferent,
which is obviously fine.  One can ignore the Huffman code and just view the
results as some random values I chose :-)

If you like Huffman codes, but dislike mine, then please complain soon.
There are some parts that I do not love.  For example, fixed size types are
handled consistently and encode their size (as the log_2 of bytes) in bits
3:5, while language default types are on a different branch and encode
their size in bits 8:10.  I can makes those consistent, but it means the
code branches aren't sequential in the bit indices.  I think that's fine,
but I am new to Huffman codes.

An alternative to the above is to say that in mpi_abi.h, that MPI_INT,
MPI_LONG and MPI_LONG_LONG are aliased to MPI_INTn_T according to the ABI
definition, and do not exist on their own.  This has some appeal, but will
change the results of MPI_Type_get_name.  What do people think about this?

The good news is there is lots of free space in the Huffman code for new
handle types and new constants.  I am not worried about running out of
space.  Already, I have reserved space for a bunch of types that are likely
to exist in C and C++ in the near future, so those will be trivial to add
later.

Finally, as noted on Slack, we have to figure out whether we reserve space
for or standardize some types that OMPI defines today in the MPI_
namespace.  This is the lowest priority for me right now, so if we don't
address it this week, that is fine.

Thanks,

Jeff

Microsoft Teams meeting

*Join on your computer, mobile app or room device*

Click here to join the meeting
<https://teams.microsoft.com/l/meetup-join/19%3ameeting_NmZjODUxOWUtM2RlZS00ODAwLTliOGUtZTU5NTk0ZmFhMDZm%40thread.v2/0?context=%7b%22Tid%22%3a%2243083d15-7273-40c1-b7db-39efd9ccc17a%22%2c%22Oid%22%3a%2264532211-6004-4136-aa56-87c59ef720fa%22%7d>

Meeting ID: 248 497 838 730
Passcode: YJk5m4

Download Teams
<https://www.microsoft.com/en-us/microsoft-teams/download-app> | Join on
the web <https://www.microsoft.com/microsoft-teams/join-a-meeting>

*Join with a video conferencing device*

teams at vc.nvidia.com

Video Conference ID: 114 363 143 0

Alternate VTC instructions <https://pexip.me/teams/vc.nvidia.com/1143631430>

*Or call in (audio only)*

+1 949-570-1120,,578136488# <+19495701120,,578136488#>   United States,
Irvine

Phone Conference ID: 578 136 488#

Find a local number
<https://dialin.teams.microsoft.com/c58d41ec-314f-4761-9381-98dfc4066d1b?id=578136488>
| Reset PIN <https://dialin.teams.microsoft.com/usp/pstnconferencing>

Learn More <https://aka.ms/JoinTeamsMeeting> | Meeting options
<https://teams.microsoft.com/meetingOptions/?organizerId=64532211-6004-4136-aa56-87c59ef720fa&tenantId=43083d15-7273-40c1-b7db-39efd9ccc17a&threadId=19_meeting_NmZjODUxOWUtM2RlZS00ODAwLTliOGUtZTU5NTk0ZmFhMDZm@thread.v2&messageId=0&language=en-US>
____________________________________________



-- 
Jeff Hammond
jeff.science at gmail.com
http://jeffhammond.github.io/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-abi/attachments/20230403/b93fe081/attachment.html>


More information about the mpiwg-abi mailing list