lol

Merge pull request #125267 from markuskowa/add-mvapich

mvapich: init at 2.3.6

authored by

Sandro and committed by
GitHub
6943cf11 747026d6

+75
+73
pkgs/development/libraries/mvapich/default.nix
··· 1 + { lib, stdenv, fetchurl, pkg-config, bison, numactl, libxml2 2 + , perl, gfortran, slurm, openssh, hwloc, zlib, makeWrapper 3 + # InfiniBand dependencies 4 + , opensm, rdma-core 5 + # OmniPath dependencies 6 + , libpsm2, libfabric 7 + # Compile with slurm as a process manager 8 + , useSlurm ? false 9 + # Network type for MVAPICH2 10 + , network ? "ethernet" 11 + } : 12 + 13 + assert builtins.elem network [ "ethernet" "infiniband" "omnipath" ]; 14 + 15 + stdenv.mkDerivation rec { 16 + pname = "mvapich"; 17 + version = "2.3.6"; 18 + 19 + src = fetchurl { 20 + url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-${version}.tar.gz"; 21 + sha256 = "0jd28vy9ivl3rcpkxmhw73b6krzm0pd9jps8asw92wa00lm2z9mk"; 22 + }; 23 + 24 + nativeBuildInputs = [ pkg-config bison makeWrapper ]; 25 + propagatedBuildInputs = [ numactl rdma-core zlib opensm ]; 26 + buildInputs = with lib; [ 27 + numactl 28 + libxml2 29 + perl 30 + gfortran 31 + openssh 32 + hwloc 33 + ] ++ optionals (network == "infiniband") [ rdma-core opensm ] 34 + ++ optionals (network == "omnipath") [ libpsm2 libfabric ] 35 + ++ optional useSlurm slurm; 36 + 37 + configureFlags = with lib; [ 38 + "--with-pm=hydra" 39 + "--enable-fortran=all" 40 + "--enable-cxx" 41 + "--enable-threads=multiple" 42 + "--enable-hybrid" 43 + "--enable-shared" 44 + ] ++ optional useSlurm "--with-pm=slurm" 45 + ++ optional (network == "ethernet") "--with-device=ch3:sock" 46 + ++ optionals (network == "infiniband") [ "--with-device=ch3:mrail" "--with-rdma=gen2" ] 47 + ++ optionals (network == "omnipath") ["--with-device=ch3:psm" "--with-psm2=${libpsm2}"]; 48 + 49 + doCheck = true; 50 + 51 + preFixup = '' 52 + # /tmp/nix-build... ends up in the RPATH, fix it manually 53 + for entry in $out/bin/mpichversion $out/bin/mpivars; do 54 + echo "fix rpath: $entry" 55 + patchelf --set-rpath "$out/lib" $entry 56 + done 57 + 58 + # Ensure the default compilers are the ones mvapich was built with 59 + substituteInPlace $out/bin/mpicc --replace 'CC="gcc"' 'CC=${stdenv.cc}/bin/gcc' 60 + substituteInPlace $out/bin/mpicxx --replace 'CXX="g++"' 'CC=${stdenv.cc}/bin/g++' 61 + substituteInPlace $out/bin/mpifort --replace 'FC="gfortran"' 'CC=${gfortran}/bin/gfortran' 62 + ''; 63 + 64 + enableParallelBuilding = true; 65 + 66 + meta = with lib; { 67 + description = "MPI-3.1 implementation optimized for Infiband transport"; 68 + homepage = "https://mvapich.cse.ohio-state.edu"; 69 + license = licenses.bsd3; 70 + maintainers = [ maintainers.markuskowa ]; 71 + platforms = platforms.linux; 72 + }; 73 + }
+2
pkgs/top-level/all-packages.nix
··· 17178 17178 17179 17179 mutest = callPackage ../development/libraries/mutest { }; 17180 17180 17181 + mvapich = callPackage ../development/libraries/mvapich { }; 17182 + 17181 17183 mygpoclient = pythonPackages.mygpoclient; 17182 17184 17183 17185 mygui = callPackage ../development/libraries/mygui {