Merge pull request #86322 from bzizou/openmpi-fabric

openmpi: add libfabric support (for omnipath networks)
This commit is contained in:
markuskowa 2020-04-30 12:33:18 +02:00 committed by GitHub
commit 01790228ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,5 +1,6 @@
{ stdenv, fetchurl, fetchpatch, gfortran, perl, libnl { stdenv, fetchurl, fetchpatch, gfortran, perl, libnl
, rdma-core, zlib, numactl, libevent, hwloc, pkgsTargetTarget, symlinkJoin , rdma-core, zlib, numactl, libevent, hwloc, pkgsTargetTarget, symlinkJoin
, libpsm2, libfabric
# Enable CUDA support # Enable CUDA support
, cudaSupport ? false, cudatoolkit ? null , cudaSupport ? false, cudatoolkit ? null
@ -9,6 +10,10 @@
# Pass PATH/LD_LIBRARY_PATH to point to current mpirun by default # Pass PATH/LD_LIBRARY_PATH to point to current mpirun by default
, enablePrefix ? false , enablePrefix ? false
# Enable libfabric support (necessary for Omnipath networks) on x86_64 linux
, fabricSupport ? stdenv.isLinux && stdenv.isx86_64
}: }:
assert !cudaSupport || cudatoolkit != null; assert !cudaSupport || cudatoolkit != null;
@ -44,7 +49,8 @@ in stdenv.mkDerivation rec {
++ lib.optionals isLinux [ libnl numactl ] ++ lib.optionals isLinux [ libnl numactl ]
++ lib.optionals cudaSupport [ cudatoolkit ] ++ lib.optionals cudaSupport [ cudatoolkit ]
++ [ libevent hwloc ] ++ [ libevent hwloc ]
++ lib.optional (isLinux || isFreeBSD) rdma-core; ++ lib.optional (isLinux || isFreeBSD) rdma-core
++ lib.optional fabricSupport [ libpsm2 libfabric ];
nativeBuildInputs = [ perl ]; nativeBuildInputs = [ perl ];
@ -56,6 +62,7 @@ in stdenv.mkDerivation rec {
# https://github.com/openucx/ucx # https://github.com/openucx/ucx
# https://www.open-mpi.org/faq/?category=buildcuda # https://www.open-mpi.org/faq/?category=buildcuda
++ lib.optionals cudaSupport [ "--with-cuda=${cudatoolkit_joined}" "--enable-dlopen" ] ++ lib.optionals cudaSupport [ "--with-cuda=${cudatoolkit_joined}" "--enable-dlopen" ]
++ lib.optionals fabricSupport [ "--with-psm2=${libpsm2}" "--with-libfabric=${libfabric}" ]
; ;
enableParallelBuilding = true; enableParallelBuilding = true;