aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/libraries/openmpi/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/openmpi/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/openmpi/default.nix17
1 files changed, 10 insertions, 7 deletions
diff --git a/nixpkgs/pkgs/development/libraries/openmpi/default.nix b/nixpkgs/pkgs/development/libraries/openmpi/default.nix
index 38041e6b5d8..95c2a9c3fcf 100644
--- a/nixpkgs/pkgs/development/libraries/openmpi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openmpi/default.nix
@@ -1,6 +1,6 @@
{ stdenv, fetchurl, fetchpatch, gfortran, perl, libnl
, rdma-core, zlib, numactl, libevent, hwloc, targetPackages, symlinkJoin
-, libpsm2, libfabric
+, libpsm2, libfabric, pmix, ucx
# Enable CUDA support
, cudaSupport ? false, cudatoolkit ? null
@@ -13,13 +13,12 @@
# Enable libfabric support (necessary for Omnipath networks) on x86_64 linux
, fabricSupport ? stdenv.isLinux && stdenv.isx86_64
-
}:
assert !cudaSupport || cudatoolkit != null;
let
- version = "4.0.3";
+ version = "4.0.5";
cudatoolkit_joined = symlinkJoin {
name = "${cudatoolkit.name}-unsplit";
@@ -31,7 +30,7 @@ in stdenv.mkDerivation rec {
src = with stdenv.lib.versions; fetchurl {
url = "https://www.open-mpi.org/software/ompi/v${major version}.${minor version}/downloads/${pname}-${version}.tar.bz2";
- sha256 = "00zxcw99gr5n693cmcmn4f6a47vx1ywna895p0x7p163v37gw0hl";
+ sha256 = "02f0r9d3xgs08svkmj8v7lzviyxqnkk4yd3z0wql550xnriki3y5";
};
postPatch = ''
@@ -46,7 +45,7 @@ in stdenv.mkDerivation rec {
'';
buildInputs = with stdenv; [ gfortran zlib ]
- ++ lib.optionals isLinux [ libnl numactl ]
+ ++ lib.optionals isLinux [ libnl numactl pmix ucx ]
++ lib.optionals cudaSupport [ cudatoolkit ]
++ [ libevent hwloc ]
++ lib.optional (isLinux || isFreeBSD) rdma-core
@@ -55,8 +54,12 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ perl ];
configureFlags = with stdenv; lib.optional (!cudaSupport) "--disable-mca-dso"
- ++ lib.optional isLinux "--with-libnl=${libnl.dev}"
- ++ lib.optional enableSGE "--with-sge"
+ ++ lib.optionals isLinux [
+ "--with-libnl=${libnl.dev}"
+ "--with-pmix=${pmix}"
+ "--with-pmix-libdir=${pmix}/lib"
+ "--enable-mpi-cxx"
+ ] ++ lib.optional enableSGE "--with-sge"
++ lib.optional enablePrefix "--enable-mpirun-prefix-by-default"
# TODO: add UCX support, which is recommended to use with cuda for the most robust OpenMPI build
# https://github.com/openucx/ucx