In reply to anon.

Libraries that use MPI compose beautifully, so long as they are compiled against the same MPI implementation. It's important to understand the difference between composability via the API and ABI compatibility. Like C++ and Fortran, MPI has implementation-specific quirks. Not everything can be as amazing as C (which provides ABI compatibility).