Open MPI logo

Open MPI: Major User-Noticeable Changes Across Major Release Series

  |   Home   |   Support   |   FAQ   |  
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.

v5.0.x series

The v5.0.x series introduced the following major feature enhancements compared to the v4.1.x series:

  1. 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.

  2. 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.

  3. Notable features:
    • Support for MPI-4 Sessions.
    • ULFM Fault Tolerance support.
    • CUDA support in OFI MTL.
    • Added a new Accelerator framework.
      CUDA-specific code was replaced with a generic framework that standardizes various device features such as copies or pointer type detection.
    • HAN collectives enabled by default

  4. 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.

v4.1.x series

The v4.1.x series introduced the following major feature enhancements compared to the v4.0.x series:

  1. 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 Lustre).

  2. AVX support was added for MPI collective reduction operations.
  3. Open MPI v4.1.x is ABI compatible with Open MPI 4.0.x.

v4.0.x series

The v4.0.x series introduced the following major changes compared to the v3.1.x series:

  1. 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 prototyped in mpi.h by default. This will almost certainly cause some legacy MPI applications to fail to compile.

    DO NOT FEAR! It is easy to fix such issues. See this FAQ category for more information, including:

    • 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!

  2. 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 openib BTL 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).

  3. Open MPI v4.0.x is ABI compatible with Open MPI 3.0.x and v3.1.x.

    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).

  4. Open MPI now "prefers" external hwloc and libevent installations.

    Open MPI still embeds hwloc and libevent 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.