The ABI must be implemented using a header named mpi.h. The MPI library that implements the standard ABI must be named mpi_abi. The filename for this library may have a platform-specific prefix and/or a platform-specific suffix. For Linux, for example, lib and .so would be the default prefix and suffix. Implementors are expected to follow platform-specific conventions for dynamic shared library naming and versioning. ABI-compliant implementations must not require more than mpi_abi or its versioned variant as the sole direct dependency of the application binary.
Advice
to implementors.
If an implementation implements its own ABI definition,
it must clearly document how users employ one or the other,
such as the paths of the aforementioned files and any
other options required for their correct use.
( End of advice to implementors.)
Applications must not mix different ABIs.
If implementations provide both the standard ABI and
an implementation-specific ABI, applications must compile
and link against only one of these.
The API defined in mpi.h associated with the standard ABI does not include features of MPI deprecated in MPI-3.1 or earlier. A full list of deprecated features can be found in Table 1.
Rationale.
If deprecated features are included in the standard ABI, deleting
them will cause a backwards-incompatibility issue in the ABI.
Removing them from the ABI now makes it straightforward for them
to be deleted from MPI in the future.
( End of rationale.)