mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-27 01:13:05 +00:00
Merge pull request #274804 from SomeoneSerge/feat/mpich-pmix
mpich: optional pmix support
This commit is contained in:
commit
3189db47ce
@ -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.
|
||||
|
@ -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 = ''
|
||||
|
@ -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 { };
|
||||
|
Loading…
Reference in New Issue
Block a user