|
3 | 3 | Required support libraries
|
4 | 4 | ==========================
|
5 | 5 |
|
6 |
| -Open MPI requires the following support libraries with the minimum listed versions: |
7 |
| - |
8 |
| -.. list-table:: |
9 |
| - :header-rows: 1 |
10 |
| - |
11 |
| - * - Library |
12 |
| - - Minimum version |
13 |
| - - Notes |
14 |
| - * - `Hardware Locality <https://www.open-mpi.org/projects/hwloc/>`_ |
15 |
| - - |hwloc_min_version| |
16 |
| - - This library is required; Open MPI will not build without it. |
17 |
| - * - `Libevent <https://libevent.org/>`_ |
18 |
| - - |event_min_version| |
19 |
| - - This library is required; Open MPI will not build without it. |
20 |
| - * - `PMIx <https://pmix.org/>`_ |
21 |
| - - |pmix_min_version| |
22 |
| - - This library is required; Open MPI will not build without it. |
23 |
| - * - `PRRTE <https://github.com/openpmix/prrte>`_ |
24 |
| - - |prte_min_version| |
25 |
| - - This library is optional in some environments. PRRTE provides |
26 |
| - Open MPI's full-featured ``mpirun`` / ``mpiexec`` MPI |
27 |
| - application launchers (the two are identical; they are symbolic |
28 |
| - links to the same executable). |
29 |
| - |
30 |
| - * If your environment uses another MPI application launcher |
31 |
| - (e.g., Slurm users can use the ``srun`` launcher to "direct |
32 |
| - launch" Open MPI applications), then the use of PRRTE is |
33 |
| - optional. |
34 |
| - * If your environment has no other MPI application launcher, then |
35 |
| - you need to install PRRTE and build Open MPI with PRRTE |
36 |
| - support. |
37 |
| - * Open MPI can use the copy of PRRTE embedded in its source |
38 |
| - code tree, or compile/link against an external PRRTE |
39 |
| - installation. :ref:`See this section for details about how |
40 |
| - to specify each method |
41 |
| - <label-building-ompi-cli-options-required-support-libraries>`. |
42 |
| - |
43 |
| -Since these support libraries are fundamental to Open MPI's operation |
44 |
| -and not universally available in all environments, they are directly |
| 6 | + |
| 7 | +While Open MPI can be built with support for a wide variety of |
| 8 | +systems, a small set of support libraries are *required* in order to |
| 9 | +build Open MPI in *any* environment. Several of these packages are |
| 10 | +both fundamental to Open MPI's operation and not universally available |
| 11 | +in all environments. As such, these "fundamental" packages are both |
| 12 | +embedded in Open MPI's distribution tarballs and also directly |
45 | 13 | incorporated into Open MPI's configure, build, and installation
|
46 |
| -process. More on this below. |
| 14 | +process. |
| 15 | + |
| 16 | +:ref:`See below |
| 17 | +<required-support-libraries-configure-discovery-label>` for a |
| 18 | +description of how Open MPI chooses whether to use the embedded |
| 19 | +versions of these packages or versions already installed on your |
| 20 | +system. |
| 21 | + |
| 22 | +* `Hardware Locality <https://www.open-mpi.org/projects/hwloc/>`_ |
47 | 23 |
|
48 |
| - .. note:: The versions listed in this table are the *minimum* versions needed. In general, the Open MPI community recommends using more recent versions of both the :ref:`required support libraries <label-install-required-support-libraries>` and any other optional support libraries. This is because more recent versions typically tend to include bug fixes, sometimes affecting Open MPI functionality. As a specific example, there is a known issue with `Hardware Locality <https://www.open-mpi.org/projects/hwloc/>`_ releases older than v2.8.0 on systems with Intel Ponte Vecchio accelerators. If you run Open MPI on such systems, you need to use Hwloc v2.8.0 or newer, or you will experience undefined behavior. |
49 |
| - This effect is not unique to the Hardware Locality library; this is why the Open MPI community recommends using as recent as possible versions of all support libraries. |
| 24 | + * This library is required; Open MPI will not build without it. |
| 25 | + * **Minimum version required:** |hwloc_min_version| |
| 26 | + * **Version embedded in Open MPI distribution:** |
| 27 | + |hwloc_embedded_version| |
50 | 28 |
|
51 | 29 | .. danger:: As of |ompi_ver|, Open MPI does not yet support the
|
52 | 30 | Hwloc v3.x series (which may not even be available at
|
@@ -77,6 +55,81 @@ process. More on this below.
|
77 | 55 | uses Hwloc, it uses the *same* Hwloc with which Open MPI
|
78 | 56 | was compiled.
|
79 | 57 |
|
| 58 | +* `Libevent <https://libevent.org/>`_ |
| 59 | + |
| 60 | + * This library is required; Open MPI will not build without it. |
| 61 | + * **Minimum version required:** |event_min_version| |
| 62 | + * **Version embedded in Open MPI distribution:** |
| 63 | + |event_embedded_version| |
| 64 | + |
| 65 | +* `PMIx <https://pmix.org/>`_ |
| 66 | + |
| 67 | + * This library is required; Open MPI will not build without it. |
| 68 | + * **Minimum version required when building without PRRTE:** |
| 69 | + |pmix_min_version| |
| 70 | + * **Minimum version required when building with PRRTE:** `See the |
| 71 | + PRRTE project documentation <https://docs.prrte.org/>`_. |
| 72 | + * **Version embedded in Open MPI distribution:** |
| 73 | + |pmix_embedded_version| |
| 74 | + |
| 75 | +* `PRRTE <https://github.com/openpmix/prrte>`_ |
| 76 | + |
| 77 | + * This library is optional in some environments. See below. |
| 78 | + * **Minimum version required:** |prte_min_version| |
| 79 | + |
| 80 | + .. note:: While building Open MPI with PRRTE |prte_min_version| |
| 81 | + *works*, you will not get a fully-populated |
| 82 | + ``mpirun(1)`` man page. The Open MPI community |
| 83 | + recommends that you use PRRTE version 3.0.1 or higher. |
| 84 | + |
| 85 | + * **Version embedded in Open MPI distribution:** |
| 86 | + |prte_embedded_version| |
| 87 | + |
| 88 | + PRRTE provides Open MPI's full-featured ``mpirun`` / ``mpiexec`` MPI |
| 89 | + application launchers (the two commands are identical; they are |
| 90 | + symbolic links to the same executable). |
| 91 | + |
| 92 | + .. warning:: If you are building the PRRTE that is embedded in the |
| 93 | + Open MPI |ompi_ver| distribution: |
| 94 | + |
| 95 | + * If you are also building the PMIx that is embedded in |
| 96 | + the Open MPI |ompi_ver| distribution, that |
| 97 | + combination of packages is supported. |
| 98 | + |
| 99 | + * If you are building against an external PMIx |
| 100 | + installation (i.e., a version of PMIx that is not |
| 101 | + embedded in the Open MPI |ompi_ver| distribution), |
| 102 | + you should check `the PRRTE project documentation |
| 103 | + <https://docs.prrte.org/>`_ to see what minimum |
| 104 | + version of PMIx is required. |
| 105 | + |
| 106 | + * If your environment uses another MPI application launcher (e.g., |
| 107 | + Slurm users can use the ``srun`` launcher to "direct launch" Open |
| 108 | + MPI applications), then the use of PRRTE is optional. |
| 109 | + * If your environment has no other MPI application launcher, then |
| 110 | + you need to install PRRTE and build Open MPI with PRRTE support. |
| 111 | + * Open MPI can use the copy of PRRTE embedded in its source code |
| 112 | + tree, or compile/link against an external PRRTE installation. |
| 113 | + :ref:`See this section for details about how to specify each |
| 114 | + method |
| 115 | + <label-building-ompi-cli-options-required-support-libraries>`. |
| 116 | + |
| 117 | +.. note:: In general, the Open MPI community recommends using the most |
| 118 | + recent versions of both the :ref:`required support libraries |
| 119 | + <label-install-required-support-libraries>` and any other |
| 120 | + optional support libraries. This is because more recent |
| 121 | + versions typically tend to include bug fixes, sometimes |
| 122 | + affecting Open MPI functionality. As a specific example, |
| 123 | + there is a known issue with `Hardware Locality |
| 124 | + <https://www.open-mpi.org/projects/hwloc/>`_ releases older |
| 125 | + than v2.8.0 on systems with Intel Ponte Vecchio |
| 126 | + accelerators. If you run Open MPI on such systems, you need |
| 127 | + to use Hwloc v2.8.0 or newer, or you will experience |
| 128 | + undefined behavior. This effect is not unique to the |
| 129 | + Hardware Locality library; this is why the Open MPI |
| 130 | + community recommends using as recent as possible versions of |
| 131 | + *all* support libraries. |
| 132 | + |
80 | 133 | Library dependencies
|
81 | 134 | --------------------
|
82 | 135 |
|
@@ -145,6 +198,8 @@ example |mdash| only Libevent and Hwloc, that somewhat simplifies the
|
145 | 198 | final Open MPI configuration, and therefore avoids some potentially
|
146 | 199 | erroneous configurations.
|
147 | 200 |
|
| 201 | +.. _required-support-libraries-configure-discovery-label: |
| 202 | + |
148 | 203 | How ``configure`` finds the required libraries
|
149 | 204 | ----------------------------------------------
|
150 | 205 |
|
@@ -264,7 +319,7 @@ on Mac OS because:
|
264 | 319 | tarballs).
|
265 | 320 | #. In MacOS, it is common for `Homebrew <https://brew.sh/>`_ or
|
266 | 321 | `MacPorts <https://www.macports.org/>`_ to install:
|
267 |
| - |
| 322 | + |
268 | 323 | * `Hardware Locality <https://www.open-mpi.org/projects/hwloc/>`_
|
269 | 324 | * `Libevent <https://libevent.org/>`_
|
270 | 325 |
|
|
0 commit comments