The following are major user-noticeable changes across the major
releases of Open MPI. Specifically, these are changes that may
present an incompatibility vs. a prior version of Open MPI, or cause
some other type of user-noticeable change in behavior.
The v5.0.x series introduced the following major feature
enhancements compared to the v4.1.x series:
- Changes in building and linking against 3rd-party packages.
Open MPI v5.0.x changed the default behavior of how it builds and links
against its required 3rd-party packages: libevent, hwloc, PMIx, and PRRTE.
Unlike previous versions of Open MPI, Open MPI 5.0 and later will prefer
an external package that meets our version requirements, even if it is
older than our internal version.
- Open MPI v5.0.x switched from using ORTE to the PRRTE runtime environment.
Open MPI 5.0.x adopted PRRTE (PMIx Reference RunTime Environment)
as the default runtime environment management system.
PRRTE is the evolution of ORTE into an independent project that
provides run-time environment infrastructure for environments that
do not natively have them. In practical terms, this typically means
providing infrastructure for non-scheduled environments that have no
concept of distributed scheduling, file staging, remote
stdout/stderr redirection, and only have
ssh to execute
commands on remote nodes.
- Notable features:
Open MPI v5.0.x is ABI compatible with Open MPI 4.1.x and 4.0.x.
For the full list of features and updates please refer to
v5.0.x release notes section.
- Support for MPI-4 Sessions.
- ULFM Fault Tolerance support.
- CUDA support in OFI MTL.
- Added a new Accelerator framework.
was replaced with a generic framework that standardizes various
device features such as copies or pointer type detection.
- HAN collectives enabled by default
The v4.1.x series introduced the following major feature
enhancements compared to the v4.0.x series:
- The "OMPIO" module is now the default module for the MPI-IO APIs
on all filesystems -- including Lustre.
Prior to v4.1.0, OMPI was the default for all filesystems
except Lustre (and the "ROMIO" module was the default for
- AVX support was added for MPI collective reduction operations.
- Open MPI v4.1.x is ABI compatible with Open MPI 4.0.x.
The v4.0.x series introduced the following major changes compared
to the v3.1.x series:
- Legacy MPI-1 symbols that were deprecated in MPI-2.0 in 1996 and
then deleted from the MPI-3.0 specification in 2012 are no longer
mpi.h by default. This will almost
certainly cause some legacy MPI applications to fail to
DO NOT FEAR! It is easy
to fix such issues. See this FAQ category for more
- How to upgrade your application to no longer use these legacy
symbols, and/or what to ask your MPI application provider to do to
update their MPI application.
- How to re-enable these legacy MPI prototypes in Open MPI.
WARNING: These legacy symbols may disappear in a
future major release series of Open MPI!
- The use of InfiniBand with the
openib BTL is now
deprecated; the UCX PML is now
the preferred method of InfiniBand support.
- See this FAQ item for
information on how to build Open MPI with UCX support.
- See this FAQ item for
information on how to run Open MPI jobs with UCX support.
- In the Open MPI v4.0.x series, the
will still be used — by default — for RoCE and iWARP networks
(although UCX works fine with these networks, too). Users can
force the use of UCX for RoCE and iWARP networks, if desired (see
this FAQ item).
- Open MPI v4.0.x is ABI compatible with Open MPI 3.0.x and
Even though Open MPI changed its major version from 3 to 4, it
remains ABI-compatible with the v3.0.x and v3.1.x release series.
Note that other backwards-incompatible changes occurred —
e.g., some MCA parameter names and behaviors changed, some
mpirun command line parameters changed, etc. Hence, Open
MPI 4.0.x is not fully, 100% backwards-compatibile as defined by Open MPI's
version number / backwards compatibility scheme, but it is
ABI compatibile (which is what most users will notice).
- Open MPI now "prefers" external
Open MPI still embeds
source code in its release packages, and will automatically use them
if no suitable version is found when Open MPI is built. However, if a
suitable external version of [hwloc] and/or [libevent] (and their
corresponding development headers) is found on the system during Open
MPI's configuration process, then Open MPI will ignore its embedded
copy and use the system version, instead.