Description
Problem
This issue needs to exist so I can submit a pull request to solve it, because of our voting procedures.
The problem is described in some detail in https://arxiv.org/abs/2308.11214. I do not want to repeat it here.
Proposal
Define a standard ABI for MPI. This includes:
- describe how calling conventions work
- header, module and shared library names
- status object
- integer types
- handle types
- integer constants
- handle constants
- callback constants
We will need a way to detect the existence and versions of the ABI.
The primary impact is on C but there are Fortran aspects too.
Changes to the Text
Write a completely new chapter to define all of the above. Define relevant terms. State the constraints.
Add all the constants to tables.
Impact on Implementations
The implementation of this in an MPI library is not trivial but not profound, either.
There is a prototype in MPICH already: pmodels/mpich#6390.
Impact on Users
Some users are desperate for this, because they are tired of compiling all their MPI software two or more times.
Use cases include:
- Python, Julia and Rust bindings.
- Users of containers.
References and Pull Requests
Pull request:
https://github.com/mpi-forum/mpi-standard/pull/875
Related issues:
Metadata
Metadata
Assignees
Labels
Type
Projects
Status