Merge pull request #274804 from SomeoneSerge/feat/mpich-pmix

mpich: optional pmix support
This commit is contained in:
markuskowa 2024-01-16 12:49:11 +01:00 committed by GitHub
commit 3189db47ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 4 deletions

View File

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

View File

@ -3,10 +3,19 @@
# either libfabric or ucx work for ch4backend on linux. On darwin, neither of
# these libraries currently build so this argument is ignored on Darwin.
, ch4backend
# Process manager to build
, withPm ? "hydra:gforker"
# Process managers to build (`--with-pm`),
# 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");
stdenv.mkDerivation rec {
@ -22,11 +31,12 @@ stdenv.mkDerivation rec {
configureFlags = [
"--enable-shared"
"--enable-sharedlib"
"--with-pm=${withPm}"
"--with-pm=${withPmStr}"
] ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [
"FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300
"FCFLAGS=-fallow-argument-mismatch"
] ++ lib.optionals pmixSupport [
"--with-pmix=${lib.getDev pmix}"
];
enableParallelBuilding = true;
@ -45,6 +55,9 @@ stdenv.mkDerivation rec {
'';
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";
longDescription = ''

View File

@ -24048,6 +24048,8 @@ with pkgs;
ch4backend = libfabric;
};
mpich-pmix = mpich.override { pmixSupport = true; withPm = [ ]; };
mstpd = callPackage ../os-specific/linux/mstpd { };
mtdev = callPackage ../development/libraries/mtdev { };