On 2026-03-19 12:49, Drew Parsons wrote:

The question of ABI compatibility will get even more complex, or simpler depending on your perspective, in the future when the MPI implementations move to MPI standard 5, which will provide a common stable ABI that will enable swap-out between OpenMPI and MPI (and other implementations). I say "future", but actually that's what mpich v5 is already, it's supporting the new MPI-5 standard.

The apparent compatibility that we're seeing between mpich v4 and v5 might be part of that move to a more stable interface, which is a new development.

I should correct what I wrote here. The MPI-5 common ABI is a new development, enabling exchange of different MPI-5 implementations (i.e. swapping between openmpi and mpich, etc).

But MPICH ABI stability with respect to mpich's own recent versions and derivatives has been in place for a decade or more,
the MPICH ABI Compatibility Initiative, https://www.mpich.org/abi/
https://github.com/pmodels/mpich/blob/main/doc/wiki/testing/ABI_Compatibility_Initiative.md
cf. https://www.anl.gov/mcs/article/new-initiative-on-runtime-compatibility-for-mpi-implementations
This is why libmpich12 in principle hasn't needed ABI transitions.

It's a separate question why PETSc nevertheless felt the need to be more restrictive about the mpich version.
I haven't found much PETSc discussion upstream about the common ABIs,
except there is brief reference in
 https://www.mpich.org/static/docs/slides/2024-cass-bof/zhang.pdf
and a source comment at
https://gitlab.com/petsc/petsc/-/blob/main/src/sys/objects/pinit.c#L799
about the MPICH ABI Compatibility Initiative
before checking for older mpich (before ABI compatibility) at
https://gitlab.com/petsc/petsc/-/blob/main/src/sys/objects/pinit.c#L829

Reply via email to