3.3. Platform Notes
Open MPI uses both OpenPMIx and PRRTE for its run-time system support, and therefore supports whatever run-time systems they support.
Note
See the PMIx and PRRTE section of the Open MPI documentation for more details about those projects and their relationship to Open MPI.
3.3.1. Required support libraries
Open MPI v6.1.0a1 depends on the following support libraries. Each may be supplied by a system installation (if it is recent enough) or used from the copy embedded in the Open MPI distribution:
OpenPMIx: version 4.2.0 or later when building without PRRTE (when building with PRRTE, PRRTE’s own OpenPMIx minimum applies). Open MPI v6.1.0a1 embeds OpenPMIx v6.1.1rc2.
PRRTE: version 3.0.0 or later. Open MPI v6.1.0a1 embeds PRRTE v5.0.0ompi-a1. PRRTE is what provides
mpirun; it is not needed if MPI jobs are always launched directly by a PMIx-enabled resource manager.hwloc: version 2.1.0 or later, and older than v3.0.0 (Open MPI does not yet support the hwloc v3.x series). Open MPI v6.1.0a1 embeds hwloc 2.7.1.
Libevent: version 2.0.21 or later. Open MPI v6.1.0a1 embeds Libevent 2.1.12.
See the Required support libraries section for the full details,
including how configure chooses between an embedded and an
external copy of each library.
The versions of OpenPMIx and PRRTE that a given Open MPI release supports determine which back-end run-time systems that release supports.
Building Open MPI additionally requires Perl 5 and Python 3.6 or later. These are needed only to build Open MPI itself — not to build or run MPI applications.
3.3.2. Operating systems and compilers
Open MPI v6.1.0a1 requires a C11 (or newer) C compiler.
Systems that have been tested are:
Linux (various flavors/distros), 64 bit (x86, ppc, aarch64), with gcc/gfortran (>= 7.x), clang (>= 10.x), Intel, and NVIDIA (be sure to also see the Compiler Notes section)
macOS (26.x), 64 bit (arm64/Apple silicon), with Xcode compilers. This is the macOS platform exercised by Open MPI’s GitHub Actions CI, which builds, runs
make check, and runs the example programs on themacos-latestrunner image.
Other systems have been lightly (but not fully) tested:
macOS on 64 bit x86_64 (Intel) hardware with Xcode compilers. Open MPI is expected to work here, but it is not covered by CI.
Cygwin 64 bit with gcc
ARMv6, ARMv7, ARMv9
Other 64 bit platforms.
OpenBSD. Requires configure options
--enable-mca-no-build=patcherand--disable-dlopenwith this release.Problems have been reported when building Open MPI on FreeBSD 11.1 using the clang-4.0 system compiler. A workaround is to build Open MPI using the GNU compiler.
Note
32-bit environments are no longer supported.
3.3.3. Run-time systems
Because Open MPI delegates launch to PRRTE, the supported back-end run-time systems are those that PRRTE supports. The currently supported run-time systems are:
ssh / rsh: used in non-scheduled environments, and also to launch within an allocation from a resource manager that does not provide its own launch mechanism. See Launching with SSH.
Slurm: Open MPI obtains the node list and slot counts from Slurm, and uses Slurm’s native mechanisms to start processes. Slurm’s
srun“direct launch” mode is also supported. See Launching with Slurm.PBS Pro / Torque / OpenPBS: the allocation is obtained from the resource manager, and processes are started via the TM interface. See Launching with PBS / Torque.
Platform LSF (tested with v9.1.1 and later): the allocation is obtained from LSF, and processes are started via LSF’s native mechanisms. Problems have been reported with the most recent LSF releases; see Launching with LSF for the details and a workaround.
HPE PALS: processes are started via the Parallel Application Launch Service on HPE systems; PALS’
aprun“direct launch” mode is also supported. See Launching with HPE PALS.Grid Engine: the allocation is obtained from Grid Engine, and processes are started via
qrshso that Grid Engine can monitor and control them. This covers the whole Grid Engine family (Oracle Grid Engine, Son of Grid Engine, Altair/Univa Grid Engine, Open Cluster Scheduler, and friends); it must be explicitly enabled withconfigure --with-sge. See Launching with Grid Engine.Flux: the allocation is obtained from Flux, but Flux provides no native launch mechanism to PRRTE; processes within the allocation are started via
ssh.
3.3.4. Network interconnects
The primary network transports that Open MPI supports are:
Shared memory, for on-node communication
TCP / IP
InfiniBand and RoCE, via UCX
Networks supported by Libfabric (OFI), including AWS EFA, Cornelis Networks Omni-Path, and HPE Slingshot
Cisco usNIC
See the networking pages under Run-time operation and tuning MPI applications for configuration and tuning details.