Move mpich to pkgs/mpich

This commit is contained in:
2025-03-04 17:17:43 +01:00
parent 80dc49b963
commit 01c298198e
4 changed files with 41 additions and 32 deletions

View File

@@ -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 { };

39
pkgs/mpich/default.nix Normal file
View File

@@ -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"
];
});

View File

@@ -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