diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-06-22 15:01:47 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-06-22 16:57:59 +0000 |
commit | 633cab0ecb07627706c6b523e219490f019eaab5 (patch) | |
tree | 4fb472bdfe2723037dad53dc1b8a87c939015f5e /nixpkgs/pkgs/development/libraries/mvapich | |
parent | ffb691c199e7e0cbc4e45e5310779c9e3f7c2a73 (diff) | |
parent | 432fc2d9a67f92e05438dff5fdc2b39d33f77997 (diff) | |
download | nixlib-633cab0ecb07627706c6b523e219490f019eaab5.tar nixlib-633cab0ecb07627706c6b523e219490f019eaab5.tar.gz nixlib-633cab0ecb07627706c6b523e219490f019eaab5.tar.bz2 nixlib-633cab0ecb07627706c6b523e219490f019eaab5.tar.lz nixlib-633cab0ecb07627706c6b523e219490f019eaab5.tar.xz nixlib-633cab0ecb07627706c6b523e219490f019eaab5.tar.zst nixlib-633cab0ecb07627706c6b523e219490f019eaab5.zip |
Merge commit '432fc2d9a67f92e05438dff5fdc2b39d33f77997'
# Conflicts: # nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix # nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix # nixpkgs/pkgs/applications/window-managers/sway/default.nix # nixpkgs/pkgs/build-support/rust/default.nix # nixpkgs/pkgs/development/go-modules/generic/default.nix
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/mvapich')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/mvapich/default.nix | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/mvapich/default.nix b/nixpkgs/pkgs/development/libraries/mvapich/default.nix new file mode 100644 index 000000000000..704a28dbb8cd --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/mvapich/default.nix @@ -0,0 +1,73 @@ +{ lib, stdenv, fetchurl, pkg-config, bison, numactl, libxml2 +, perl, gfortran, slurm, openssh, hwloc, zlib, makeWrapper +# InfiniBand dependencies +, opensm, rdma-core +# OmniPath dependencies +, libpsm2, libfabric +# Compile with slurm as a process manager +, useSlurm ? false +# Network type for MVAPICH2 +, network ? "ethernet" +} : + +assert builtins.elem network [ "ethernet" "infiniband" "omnipath" ]; + +stdenv.mkDerivation rec { + pname = "mvapich"; + version = "2.3.6"; + + src = fetchurl { + url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-${version}.tar.gz"; + sha256 = "0jd28vy9ivl3rcpkxmhw73b6krzm0pd9jps8asw92wa00lm2z9mk"; + }; + + nativeBuildInputs = [ pkg-config bison makeWrapper ]; + propagatedBuildInputs = [ numactl rdma-core zlib opensm ]; + buildInputs = with lib; [ + numactl + libxml2 + perl + gfortran + openssh + hwloc + ] ++ optionals (network == "infiniband") [ rdma-core opensm ] + ++ optionals (network == "omnipath") [ libpsm2 libfabric ] + ++ optional useSlurm slurm; + + configureFlags = with lib; [ + "--with-pm=hydra" + "--enable-fortran=all" + "--enable-cxx" + "--enable-threads=multiple" + "--enable-hybrid" + "--enable-shared" + ] ++ optional useSlurm "--with-pm=slurm" + ++ optional (network == "ethernet") "--with-device=ch3:sock" + ++ optionals (network == "infiniband") [ "--with-device=ch3:mrail" "--with-rdma=gen2" ] + ++ optionals (network == "omnipath") ["--with-device=ch3:psm" "--with-psm2=${libpsm2}"]; + + doCheck = true; + + preFixup = '' + # /tmp/nix-build... ends up in the RPATH, fix it manually + for entry in $out/bin/mpichversion $out/bin/mpivars; do + echo "fix rpath: $entry" + patchelf --set-rpath "$out/lib" $entry + done + + # Ensure the default compilers are the ones mvapich was built with + substituteInPlace $out/bin/mpicc --replace 'CC="gcc"' 'CC=${stdenv.cc}/bin/cc' + substituteInPlace $out/bin/mpicxx --replace 'CXX="g++"' 'CXX=${stdenv.cc}/bin/c++' + substituteInPlace $out/bin/mpifort --replace 'FC="gfortran"' 'FC=${gfortran}/bin/gfortran' + ''; + + enableParallelBuilding = true; + + meta = with lib; { + description = "MPI-3.1 implementation optimized for Infiband transport"; + homepage = "https://mvapich.cse.ohio-state.edu"; + license = licenses.bsd3; + maintainers = [ maintainers.markuskowa ]; + platforms = platforms.linux; + }; +} |