Unverified Commit 3189db47 authored by markuskowa's avatar markuskowa Committed by GitHub
Browse files

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

mpich: optional pmix support
parents f0326542 95ae31a0
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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.
+17 −4
Original line number Diff line number Diff line
@@ -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 = ''
+2 −0
Original line number Diff line number Diff line
@@ -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 { };