Bug#1102465: petsc: PETSc was configured with one MPICH/Open MPI mpi.h version but now appears to be compiling using an older version
Drew Parsons
dparsons at emerall.com
Thu Mar 19 16:21:50 GMT 2026
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
More information about the debian-science-maintainers
mailing list