Merge pull request #274804 from SomeoneSerge/feat/mpich-pmix
mpich: optional pmix support
This commit is contained in:
@@ -193,5 +193,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||||||
replaces the need for the `extraPackages` option, this option will be
|
replaces the need for the `extraPackages` option, this option will be
|
||||||
deprecated in future releases.
|
deprecated in future releases.
|
||||||
|
|
||||||
|
- The `mpich` package expression now requires `withPm` to be a list, e.g. `"hydra:gforker"` becomes `[ "hydra" "gforker" ]`.
|
||||||
|
|
||||||
- QtMultimedia has changed its default backend to `QT_MEDIA_BACKEND=ffmpeg` (previously `gstreamer` on Linux or `darwin` on MacOS).
|
- QtMultimedia has changed its default backend to `QT_MEDIA_BACKEND=ffmpeg` (previously `gstreamer` on Linux or `darwin` on MacOS).
|
||||||
The previous native backends remain available but are now minimally maintained. Refer to [upstream documentation](https://doc.qt.io/qt-6/qtmultimedia-index.html#ffmpeg-as-the-default-backend) for further details about each platform.
|
The previous native backends remain available but are now minimally maintained. Refer to [upstream documentation](https://doc.qt.io/qt-6/qtmultimedia-index.html#ffmpeg-as-the-default-backend) for further details about each platform.
|
||||||
|
|||||||
@@ -3,10 +3,19 @@
|
|||||||
# either libfabric or ucx work for ch4backend on linux. On darwin, neither of
|
# either libfabric or ucx work for ch4backend on linux. On darwin, neither of
|
||||||
# these libraries currently build so this argument is ignored on Darwin.
|
# these libraries currently build so this argument is ignored on Darwin.
|
||||||
, ch4backend
|
, ch4backend
|
||||||
# Process manager to build
|
# Process managers to build (`--with-pm`),
|
||||||
, withPm ? "hydra:gforker"
|
# cf. https://github.com/pmodels/mpich/blob/b80a6d7c24defe7cdf6c57c52430f8075a0a41d6/README.vin#L562-L586
|
||||||
|
, withPm ? [ "hydra" "gforker" ]
|
||||||
|
, pmix
|
||||||
|
# PMIX support is likely incompatible with process managers (`--with-pm`)
|
||||||
|
# https://github.com/NixOS/nixpkgs/pull/274804#discussion_r1432601476
|
||||||
|
, pmixSupport ? false
|
||||||
} :
|
} :
|
||||||
|
|
||||||
|
let
|
||||||
|
withPmStr = if withPm != [ ] then builtins.concatStringsSep ":" withPm else "no";
|
||||||
|
in
|
||||||
|
|
||||||
assert (ch4backend.pname == "ucx" || ch4backend.pname == "libfabric");
|
assert (ch4backend.pname == "ucx" || ch4backend.pname == "libfabric");
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@@ -22,11 +31,12 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--enable-shared"
|
"--enable-shared"
|
||||||
"--enable-sharedlib"
|
"--with-pm=${withPmStr}"
|
||||||
"--with-pm=${withPm}"
|
|
||||||
] ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [
|
] ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [
|
||||||
"FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300
|
"FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300
|
||||||
"FCFLAGS=-fallow-argument-mismatch"
|
"FCFLAGS=-fallow-argument-mismatch"
|
||||||
|
] ++ lib.optionals pmixSupport [
|
||||||
|
"--with-pmix=${lib.getDev pmix}"
|
||||||
];
|
];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
@@ -45,6 +55,9 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
# As far as we know, --with-pmix silently disables all of `--with-pm`
|
||||||
|
broken = pmixSupport && withPm != [ ];
|
||||||
|
|
||||||
description = "Implementation of the Message Passing Interface (MPI) standard";
|
description = "Implementation of the Message Passing Interface (MPI) standard";
|
||||||
|
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
|||||||
@@ -24048,6 +24048,8 @@ with pkgs;
|
|||||||
ch4backend = libfabric;
|
ch4backend = libfabric;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mpich-pmix = mpich.override { pmixSupport = true; withPm = [ ]; };
|
||||||
|
|
||||||
mstpd = callPackage ../os-specific/linux/mstpd { };
|
mstpd = callPackage ../os-specific/linux/mstpd { };
|
||||||
|
|
||||||
mtdev = callPackage ../development/libraries/mtdev { };
|
mtdev = callPackage ../development/libraries/mtdev { };
|
||||||
|
|||||||
Reference in New Issue
Block a user