2023-06-16 16:02:25 +02:00
|
|
|
final: prev:
|
2023-06-16 14:16:51 +02:00
|
|
|
{
|
2023-11-06 23:03:56 +01:00
|
|
|
# Set MPICH as default
|
|
|
|
mpi = final.mpich;
|
2023-08-25 18:12:00 +02:00
|
|
|
|
2023-11-06 23:03:56 +01:00
|
|
|
# Configure the network for MPICH
|
2024-03-14 16:59:11 +01:00
|
|
|
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: {
|
2024-03-15 21:39:43 +01:00
|
|
|
patches = [
|
|
|
|
# See https://github.com/pmodels/mpich/issues/6946
|
|
|
|
./mpich-fix-hwtopo.patch
|
|
|
|
];
|
2023-11-06 23:03:56 +01:00
|
|
|
buildInput = old.buildInputs ++ [
|
|
|
|
libfabric
|
2024-03-14 16:59:11 +01:00
|
|
|
pmixAll
|
2023-11-06 23:03:56 +01:00
|
|
|
];
|
|
|
|
configureFlags = [
|
|
|
|
"--enable-shared"
|
|
|
|
"--enable-sharedlib"
|
|
|
|
"--with-pm=no"
|
|
|
|
"--with-device=ch4:ofi"
|
|
|
|
"--with-pmi=pmix"
|
2024-03-14 16:59:11 +01:00
|
|
|
"--with-pmix=${pmixAll}"
|
|
|
|
"--with-libfabric=${libfabric}"
|
2023-11-06 23:03:56 +01:00
|
|
|
"--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"
|
|
|
|
];
|
2023-06-16 16:02:25 +02:00
|
|
|
});
|
2023-08-25 18:12:46 +02:00
|
|
|
|
2024-03-15 13:12:46 +01:00
|
|
|
slurm = prev.slurm.overrideAttrs (old: {
|
|
|
|
patches = (old.patches or []) ++ [
|
|
|
|
# See https://bugs.schedmd.com/show_bug.cgi?id=19324
|
|
|
|
./slurm-rank-expansion.patch
|
|
|
|
];
|
|
|
|
});
|
|
|
|
|
2023-09-21 21:34:18 +02:00
|
|
|
prometheus-slurm-exporter = prev.callPackage ./slurm-exporter.nix { };
|
2023-06-16 14:16:51 +02:00
|
|
|
}
|