Skip to content

MPI needs a standard ABI #751

Closed
Closed
@jeffhammond

Description

@jeffhammond

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:

#744
#743
#735
#709
#704
#702
#654
#642
#159
#107

Metadata

Metadata

Assignees

Labels

had readingCompleted the formal proposal readingmpi-5.0For inclusion in the MPI 5.0 standardpassed final votePassed the final formal votepassed first votePassed the first formal votewg-abiABI Working Group

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions