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