diff options
author | Ludovic Courtès <ludovic.courtes@inria.fr> | 2019-11-15 17:15:05 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-11-15 17:52:45 +0100 |
commit | faab7082ab9587b71ca5ae8becdf72234f3c51d7 (patch) | |
tree | 6a27e070f9d289e6ebd44d42014b4e7a7eacc46b | |
parent | 348caf3d2c0e5a1d842c16cf6246f6d84004ad3f (diff) |
gnu: openmpi: Raise the priority of the PSM2 component.
This allows us to get better performance by default on machines with
OmniPath hardware.
* gnu/packages/patches/openmpi-psm2-priority.patch: New file.
* gnu/packages/mpi.scm (openmpi)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add it.
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/mpi.scm | 3 | ||||
-rw-r--r-- | gnu/packages/patches/openmpi-psm2-priority.patch | 21 |
3 files changed, 24 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 7ef5ef7a6c..4e6fb7c1d8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1192,6 +1192,7 @@ dist_patch_DATA = \ %D%/packages/patches/opencv-rgbd-aarch64-test-fix.patch \ %D%/packages/patches/openfoam-4.1-cleanup.patch \ %D%/packages/patches/openjdk-10-idlj-reproducibility.patch \ + %D%/packages/patches/openmpi-psm2-priority.patch \ %D%/packages/patches/openocd-nrf52.patch \ %D%/packages/patches/opensmtpd-fix-crash.patch \ %D%/packages/patches/openssl-runpath.patch \ diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 79ee948765..5fde6efae4 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -174,7 +174,8 @@ bind processes, and much more.") (version-major+minor version) "/downloads/openmpi-" version ".tar.bz2")) (sha256 - (base32 "0ms0zvyxyy3pnx9qwib6zaljyp2b3ixny64xvq3czv3jpr8zf2wh")))) + (base32 "0ms0zvyxyy3pnx9qwib6zaljyp2b3ixny64xvq3czv3jpr8zf2wh")) + (patches (search-patches "openmpi-psm2-priority.patch")))) (build-system gnu-build-system) (inputs `(("hwloc" ,hwloc-2 "lib") diff --git a/gnu/packages/patches/openmpi-psm2-priority.patch b/gnu/packages/patches/openmpi-psm2-priority.patch new file mode 100644 index 0000000000..d9dd558010 --- /dev/null +++ b/gnu/packages/patches/openmpi-psm2-priority.patch @@ -0,0 +1,21 @@ +PSM2 is the only valid implementation for OmniPath (OPA). UCX also +supports OmniPath, but it does so via Verbs, thus getting much lower +performance (typically 3 GiB/s instead of 10 GiB/s). + +To work around that, give the mtl_psm2 component a higher priority +than the pml_ucx component. + +See <https://www.mail-archive.com/users@lists.open-mpi.org/msg33581.html>. + +--- openmpi-4.0.2/ompi/mca/mtl/psm2/mtl_psm2_component.c 2019-11-15 17:06:15.142076840 +0100 ++++ openmpi-4.0.2/ompi/mca/mtl/psm2/mtl_psm2_component.c 2019-11-15 17:06:22.242009379 +0100 +@@ -126,7 +126,7 @@ ompi_mtl_psm2_component_register(void) + setenv("PSM2_DEVICES", "self,shm", 0); + } + +- param_priority = 40; ++ param_priority = 55; + (void) mca_base_component_var_register (&mca_mtl_psm2_component.super.mtl_version, + "priority", "Priority of the PSM2 MTL component", + MCA_BASE_VAR_TYPE_INT, NULL, 0, 0, + |