Jeff Hammond <jeff.scie...@gmail.com> writes: > You can rely upon e.g. https://www.mpich.org/abi/ when redistributing MPI > binaries built with MPICH, but a better option would be to wrap all of your > MPI code in an implementation-agnostic wrapper and then ship a binary that > can dlopen a different version wrapper depending on which MPI > implementation the user has. That would allow you to ship a single binary > that could use both MPICH and OpenMPI.
I don't know how it works with MPICH, but in OMPI don't you need all of the submitting orterun, the linked libraries, and the target ORTE to be compatible, which a wrapper would need to know? [How is the Fortran ABI fixed anyhow?] I don't think there's a check on that currently, which would be useful if the info can be propagated. There have been issues on the list due to host and target ORTE being different, and I've seen them locally. Producing a clear error with incompatible components (to the extent it's possible) could save confusion.