aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches/openmpi-psm2-priority.patch
diff options
context:
space:
mode:
authorLudovic Courtès <ludovic.courtes@inria.fr>2019-11-15 17:15:05 +0100
committerLudovic Courtès <ludo@gnu.org>2019-11-15 17:52:45 +0100
commitfaab7082ab9587b71ca5ae8becdf72234f3c51d7 (patch)
tree6a27e070f9d289e6ebd44d42014b4e7a7eacc46b /gnu/packages/patches/openmpi-psm2-priority.patch
parent348caf3d2c0e5a1d842c16cf6246f6d84004ad3f (diff)
downloadguix-faab7082ab9587b71ca5ae8becdf72234f3c51d7.tar
guix-faab7082ab9587b71ca5ae8becdf72234f3c51d7.tar.gz
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.
Diffstat (limited to 'gnu/packages/patches/openmpi-psm2-priority.patch')
-rw-r--r--gnu/packages/patches/openmpi-psm2-priority.patch21
1 files changed, 21 insertions, 0 deletions
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,
+