There is already a nice solution for the useful special case of ABI
portability where one wants to use more than one MPI library with an
application binary, but only one MPI library for a given application
invocation:
https://github.com/cea-hpc/wi4mpi
They document support for the Intel MPI and Open-MPI, which imply a much
larger support matrix when one takes https://www.mpich.org/abi/ into
account. Plus, there is another popular MPICH derivative that is binary
compatible in my experience, even though it isn't listed there.
Hammond
Post by Jeff Squyres (jsquyres)Don't forget that there's a lot more to "binary portability" between MPI
implementations than just the ABI (wire protocols, run-time interfaces,
...etc.). This is the main (set of) reasons that ABI standardization of
the MPI specification never really took off -- so much would need to be
standardized that it could (would) remove a lot of optimization / value-add
that each MPI implementation (particularly those tuned for a specific
environment) can do specifically because such things are *not* standardized.
Post by Jeff Squyres (jsquyres)I.e.: all things being equal, the optimization and performance benefits
that are achieved by real-world MPI implementations have been deemed more
important than binary compatibility.
Post by Jeff Squyres (jsquyres)On Sep 20, 2017, at 6:07 PM, Michael Thomadakis <
This discussion started getting into an interesting question: ABI
standardization for portability by language. It makes sense to have ABI
standardization for portability of objects across environments. At the same
time it does mean that everyone follows the exact same recipe for low level
implementation details but there may be unnecessarily restrictive at times.
Post by Jeff Squyres (jsquyres)Post by Jeff HammondPlease separate C and C++ here. C has a standard ABI. C++ doesn't.
Jeff
[For some value of "standard".] I've said the same about C++, but the
current GCC manual says its C++ ABI is "industry standard", and at least
Intel document compatibility with recent GCC on GNU/Linux. It's
standard enough to have changed for C++11 (?), with resulting grief in
package repos, for instance.
I may have used imprecise language. As a matter of practice, I switch
C compilers all the time without recompiling MPI and life is good.
Switching between Clang with libc++ and GCC with libstd++ does not produce
happiness.
Post by Jeff Squyres (jsquyres)Jeff
--
Jeff Hammond
http://jeffhammond.github.io/
_______________________________________________
users mailing list
https://lists.open-mpi.org/mailman/listinfo/users
_______________________________________________
users mailing list
https://lists.open-mpi.org/mailman/listinfo/users
--
Jeff Squyres
_______________________________________________
users mailing list
https://lists.open-mpi.org/mailman/listinfo/users
--
Jeff Hammond
***@gmail.com
http://jeffhammond.github.io/