From 01c298198e142b59176c20d5d25f962ff8df41ca Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Tue, 4 Mar 2025 17:17:43 +0100 Subject: [PATCH] Move mpich to pkgs/mpich --- pkgs/index.nix | 3 +- pkgs/mpich/default.nix | 39 +++++++++++++++++++++++++ pkgs/{ => mpich}/mpich-fix-hwtopo.patch | 0 pkgs/overlay.nix | 31 -------------------- 4 files changed, 41 insertions(+), 32 deletions(-) create mode 100644 pkgs/mpich/default.nix rename pkgs/{ => mpich}/mpich-fix-hwtopo.patch (100%) diff --git a/pkgs/index.nix b/pkgs/index.nix index 6381e0df..1d481a14 100644 --- a/pkgs/index.nix +++ b/pkgs/index.nix @@ -22,8 +22,9 @@ let intelPackages_2023 = callPackage ./intel-oneapi/2023.nix { }; jemallocNanos6 = callPackage ./nanos6/jemalloc.nix { }; #lmbench = callPackage ./lmbench/default.nix { }; # Broken - mpi = final.mpich; # Set MPICH as default mcxx = callPackage ./mcxx/default.nix { }; + mpi = final.mpich; # Set MPICH as default + mpich = callPackage ./mpich/default.nix { }; nanos6 = callPackage ./nanos6/default.nix { }; nanos6Debug = final.nanos6.override { enableDebug = true; }; nixtools = callPackage ./nixtools/default.nix { }; diff --git a/pkgs/mpich/default.nix b/pkgs/mpich/default.nix new file mode 100644 index 00000000..ba6b24a0 --- /dev/null +++ b/pkgs/mpich/default.nix @@ -0,0 +1,39 @@ +{ + mpich +, pmix +, libfabric +, gfortran +}: + +# Configure the OFI network for MPICH + +let + # pmix comes with the libraries in .out and headers in .dev + pmixAll = symlinkJoin { + name = "pmix-all"; + paths = [ pmix.dev pmix.out ]; + }; +in mpich.overrideAttrs (old: { + patches = (old.patches or []) ++ [ + # See https://github.com/pmodels/mpich/issues/6946 + ./mpich-fix-hwtopo.patch + ]; + # Configure the network for MPICH + buildInput = old.buildInputs ++ [ + libfabric + pmixAll + ]; + configureFlags = [ + "--enable-shared" + "--enable-sharedlib" + "--with-pm=no" + "--with-device=ch4:ofi" + "--with-pmi=pmix" + "--with-pmix=${pmixAll}" + "--with-libfabric=${libfabric}" + "--enable-g=log" + ] ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [ + "FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300 + "FCFLAGS=-fallow-argument-mismatch" + ]; +}); diff --git a/pkgs/mpich-fix-hwtopo.patch b/pkgs/mpich/mpich-fix-hwtopo.patch similarity index 100% rename from pkgs/mpich-fix-hwtopo.patch rename to pkgs/mpich/mpich-fix-hwtopo.patch diff --git a/pkgs/overlay.nix b/pkgs/overlay.nix index afc3816b..72c7b070 100644 --- a/pkgs/overlay.nix +++ b/pkgs/overlay.nix @@ -1,36 +1,5 @@ final: prev: { - # Configure the network for MPICH - mpich = with final; let - # pmix comes with the libraries in .out and headers in .dev - pmixAll = symlinkJoin { - name = "pmix-all"; - paths = [ pmix.dev pmix.out ]; - }; - in prev.mpich.overrideAttrs (old: { - patches = (old.patches or []) ++ [ - # See https://github.com/pmodels/mpich/issues/6946 - ./mpich-fix-hwtopo.patch - ]; - buildInput = old.buildInputs ++ [ - libfabric - pmixAll - ]; - configureFlags = [ - "--enable-shared" - "--enable-sharedlib" - "--with-pm=no" - "--with-device=ch4:ofi" - "--with-pmi=pmix" - "--with-pmix=${pmixAll}" - "--with-libfabric=${libfabric}" - "--enable-g=log" - ] ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [ - "FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300 - "FCFLAGS=-fallow-argument-mismatch" - ]; - }); - slurm = prev.slurm.overrideAttrs (old: { patches = (old.patches or []) ++ [ # See https://bugs.schedmd.com/show_bug.cgi?id=19324