GNU bug report logs - #72062
[PATCH 0/4] Add OpenMPI 5.x

Previous Next

Package: guix-patches;

Reported by: Romain GARBAGE <romain.garbage <at> inria.fr>

Date: Thu, 11 Jul 2024 14:35:01 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludovic.courtes <at> inria.fr>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 72062 in the body.
You can then email your comments to 72062 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Thu, 11 Jul 2024 14:35:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Romain GARBAGE <romain.garbage <at> inria.fr>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 11 Jul 2024 14:35:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: guix-patches <at> gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH 0/4] Add OpenMPI 5.x
Date: Thu, 11 Jul 2024 16:25:08 +0200
This patch series aims at bringing the 5.x branch of OpenMPI to Guix.

First two patches are dependencies of OpenMPI 5.x.

Third patch adds a new package for OpenMPI 5.x, keeping OpenMPI 4.x as
the default version in package dependencies.

Fourth patch adds PMIx support, which is required for OpenMPI 5.x
support in SLURM.

These patches have been applied on top of commit
0663668507377a849317b0fff3d72f609c3139c2, all packages depending on
slurm and openmpi <at> 5 have been successfully rebuilt.

Romain GARBAGE (4):
  gnu: Add openpmix.
  gnu: Add prrte.
  gnu: Add openmpi-5.
  gnu: slurm: Add PMIx support.

 gnu/packages/mpi.scm      | 52 ++++++++++++++++++++++++++++++
 gnu/packages/parallel.scm | 68 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 120 insertions(+)

-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Thu, 11 Jul 2024 14:36:01 GMT) Full text and rfc822 format available.

Message #8 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH 1/4] gnu: Add openpmix.
Date: Thu, 11 Jul 2024 16:35:22 +0200
* gnu/packages/parallel.scm (openpmix): New variable.

Change-Id: Id23bc710c9b61ede0aebf7e2a18863fbe5fb8304
---
 gnu/packages/parallel.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index a16a0d8689..4a57e85e6c 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2021 Stefan Reichör <stefan <at> xsteve.at>
 ;;; Copyright © 2024 Zheng Junjie <873216071 <at> qq.com>
 ;;; Copyright © 2024 David Elsing <david.elsing <at> posteo.net>
+;;; Copyright © 2024 Romain Garbage <romain.garbage <at> inria.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -51,6 +52,7 @@ (define-module (gnu packages parallel)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freeipmi)
+  #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
@@ -612,3 +614,33 @@ (define-public psimd
        "This header-only C++ library provides a portable interface to
 single-instruction multiple-data (SIMD) intrinsics.")
       (license license:expat))))
+
+(define-public openpmix
+  (package
+   (name "openpmix")
+   (version "4.2.8")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append
+                  "https://github.com/openpmix/openpmix/releases/download/v"
+                  version "/pmix-" version ".tar.bz2"))
+            (sha256
+             (base32
+              "1j9xlhqrrmgjdkwakamn78y5gj756adi53hn25zksgr3is3l5d09"))))
+   (build-system gnu-build-system)
+   (arguments
+    (list #:configure-flags #~(list (string-append "--with-hwloc="
+                                                   (ungexp (this-package-input "hwloc") "lib")))))
+   (inputs (list libevent
+                 `(,hwloc "lib")))
+   (native-inputs (list perl
+                        python))
+   (synopsis "PMIx library")
+   (description
+    "PMIx is an application programming interface standard that provides
+libraries and programming models with portable and well-defined access
+to commonly needed services in distributed and parallel computing
+systems.")
+   (home-page "https://pmix.org/")
+   ;; The provided license is kind of BSD-style but specific.
+   (license (license:fsf-free "https://github.com/openpmix/openpmix?tab=License-1-ov-file#License-1-ov-file"))))
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Thu, 11 Jul 2024 14:36:02 GMT) Full text and rfc822 format available.

Message #11 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH 2/4] gnu: Add prrte.
Date: Thu, 11 Jul 2024 16:35:23 +0200
* gnu/packages/parallel.scm (prrte): New variable.

Change-Id: I4427eec1a5c7d94ed5f9cbceb55f9372834a8971
---
 gnu/packages/parallel.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 4a57e85e6c..f173d1b75e 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -644,3 +644,35 @@ (define-public openpmix
    (home-page "https://pmix.org/")
    ;; The provided license is kind of BSD-style but specific.
    (license (license:fsf-free "https://github.com/openpmix/openpmix?tab=License-1-ov-file#License-1-ov-file"))))
+
+(define-public prrte
+  (package
+   (name "prrte")
+   (version "3.0.6")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append
+                  "https://github.com/openpmix/prrte/releases/download/v"
+                  version "/prrte-" version ".tar.bz2"))
+            (sha256
+             (base32
+              "0wiy0vk37v4db1jgxza8bci0cczcvj34dalzsrlz05dk45zb7dl3"))))
+   (build-system gnu-build-system)
+   (arguments
+    (list #:configure-flags #~(list (string-append "--with-hwloc="
+                                                   (assoc-ref %build-inputs "hwloc"))
+                                    (string-append "--with-pmix=" #$(this-package-input "openpmix")))))
+   (inputs (list libevent
+                 `(,hwloc "lib")
+                 openpmix))
+   (native-inputs (list perl))
+   (synopsis "PMIx Reference RunTime Environment (PRRTE)")
+   (description
+    "The PMIx Reference RunTime Environment is a runtime environment
+containing the reference implementation and capable of operating
+within a host SMS. The reference RTE therefore provides an easy way of
+exploring PMIx capabilities and testing PMIx-based applications
+outside of a PMIx-enabled environment.")
+   (home-page "https://openpmix.github.io/")
+   ;; The provided license is kind of BSD-style but specific.
+   (license (license:fsf-free "https://github.com/openpmix/prrte?tab=License-1-ov-file#License-1-ov-file"))))
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Thu, 11 Jul 2024 14:37:01 GMT) Full text and rfc822 format available.

Message #14 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH 3/4] gnu: Add openmpi-5.
Date: Thu, 11 Jul 2024 16:35:24 +0200
* gnu/packages/mpi.scm (openmpi-5): New variable.

Change-Id: I048692b2e928077c9cfa9fb8076ceb356251e1db
---
 gnu/packages/mpi.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 6270108b16..8cde8ef044 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2018–2022 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2018 Paul Garlick <pgarlick <at> tourbillion-technology.com>
 ;;; Copyright © 2019, 2021 Ricardo Wurmus <rekado <at> elephly.net>
+;;; Copyright © 2024 Romain Garbage <romain.garbage <at> inria.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -49,6 +50,7 @@ (define-module (gnu packages mpi)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages parallel)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages valgrind)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match))
@@ -307,6 +309,56 @@ (define-public openmpi
     ;; See file://LICENSE
     (license license:bsd-2)))
 
+(define-public openmpi-5
+  (package/inherit openmpi
+    (version "5.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.open-mpi.org/software/ompi/v"
+                           (version-major+minor version)
+                           "/downloads/openmpi-" version ".tar.bz2"))
+       (sha256
+        (base32 "02x9xmpggw77mdpikjjx83j6i4v3gkqbncda73lk5axk0vr841cr"))))
+
+    (inputs (modify-inputs (package-inputs openmpi)
+              ;; As of Open MPI 5.0.X, PMIx is used to communicate
+              ;; with SLURM, so SLURM'S PMI is no longer needed.
+              (delete "slurm")
+              (append ucx)              ;for Infiniband support
+              (append openpmix)         ;for PMI support (launching via "srun")
+              (append prrte)))          ;for PMI support (launching via "srun")
+    (native-inputs (modify-inputs (package-native-inputs openmpi)
+                     (append python)))
+
+    (outputs '("out" "debug"))
+    (arguments
+     (substitute-keyword-arguments (package-arguments openmpi)
+       ((#:configure-flags flags)
+        #~(append (list "--enable-prte-prefix-by-default" ;replaces --enable-mpirun-prefix-by-default
+                        ;; Enable support for the 'Process Management
+                        ;; Interface for Exascale' (PMIx) used e.g. by
+                        ;; Slurm for the management communication and
+                        ;; coordination of MPI processes.
+                        (string-append "--with-pmix=" #$(this-package-input "openpmix"))
+                        (string-append "--with-prrte=" #$(this-package-input "prrte"))
+
+                        ;; Since 5.x, Infiniband support is provided by ucx.
+                        (string-append "--with-ucx=" #$(this-package-input "ucx")))
+                  (filter (lambda (e)
+                            (and (not (string-contains e "pmi")) ;; Since 5.x, OpenMPI doesn't support PMI/PMI-2
+                                 ;; Deprecated since 5.x.
+                                 (not (string-contains e "enable-mpirun-prefix-by-default"))
+                                 ;; Infiniband support is deprecated and superseded by ucx
+                                 ;; See https://docs.open-mpi.org/en/main/release-notes/networks.html#miscellaneous-network-notes
+                                 (not (string-contains e "openib"))))
+                          #$flags)))
+
+       ((#:phases phases)
+        #~(modify-phases #$phases
+            (delete 'remove-absolute)
+            (delete 'scrub-timestamps)))))))
+
 (define-public openmpi-c++
   (package/inherit openmpi
     (name "openmpi-c++")
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Thu, 11 Jul 2024 14:37:02 GMT) Full text and rfc822 format available.

Message #17 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH 4/4] gnu: slurm: Add PMIx support.
Date: Thu, 11 Jul 2024 16:35:25 +0200
* gnu/packages/parallel.scm (slurm) [inputs]: Add dependency.
[arguments]: Update configure flags.

Change-Id: I6544be5eb44980191d0788738ab960263c56c0ba
---
 gnu/packages/parallel.scm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index f173d1b75e..694968b727 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -229,6 +229,7 @@ (define-public slurm
                   `(,hwloc-2 "lib")
                   json-c
                   linux-pam
+                  openpmix
                   munge
                   numactl
                   readline))
@@ -245,6 +246,9 @@ (define-public slurm
                    (string-append "--with-json=" #$(this-package-input "json-c"))
                    (string-append "--with-munge=" #$(this-package-input "munge"))
 
+                   ;; Use PMIx bundled with Open MPI (this is required for Open MPI 5.x).
+                   (string-append "--with-pmix=" #$(this-package-input "openpmix"))
+
                    ;; 32-bit support is marked as deprecated and needs to be
                    ;; explicitly enabled.
                    #$@(if (target-64bit?) '() '("--enable-deprecated")))
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 07:28:02 GMT) Full text and rfc822 format available.

Message #20 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: "Romain GARBAGE" <romain.garbage <at> inria.fr>
To: <72062 <at> debbugs.gnu.org>
Cc: ludovic.courtes <at> inria.fr
Subject: Re: [PATCH 0/4] Add OpenMPI 5.x
Date: Fri, 12 Jul 2024 09:27:22 +0200
On Thu Jul 11, 2024 at 4:25 PM CEST, Romain GARBAGE wrote:
> This patch series aims at bringing the 5.x branch of OpenMPI to Guix.
[...]
> Third patch adds a new package for OpenMPI 5.x, keeping OpenMPI 4.x as
> the default version in package dependencies.
>
> Fourth patch adds PMIx support, which is required for OpenMPI 5.x
> support in SLURM.

After thinking about it, the last two patches should be applied in the
reverse order so the when OpenMPI5 is present in the tree, SLURM already
has the PMIx support needed by OpenMPI5. 
If the need arises to submit a v2, I'll swap them at this occasion.

> These patches have been applied on top of commit
> 0663668507377a849317b0fff3d72f609c3139c2, all packages depending on
> slurm and openmpi <at> 5 have been successfully rebuilt.

To be more precise, I rebuilt the packages that depend directly on slurm
and openmpi <at> 5 (for the latter, there should be none for now).

Romain




Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 08:42:01 GMT) Full text and rfc822 format available.

Message #23 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludovic.courtes <at> inria.fr>
To: Romain GARBAGE <romain.garbage <at> inria.fr>
Cc: 72062 <at> debbugs.gnu.org
Subject: Re: [PATCH 3/4] gnu: Add openmpi-5.
Date: Fri, 12 Jul 2024 10:40:53 +0200
Hello!

Romain GARBAGE <romain.garbage <at> inria.fr> skribis:

> * gnu/packages/mpi.scm (openmpi-5): New variable.
>
> Change-Id: I048692b2e928077c9cfa9fb8076ceb356251e1db

[...]

> +(define-public openmpi-5
> +  (package/inherit openmpi

I think it’s a case where (package (inherit openmpi) …) is more
appropriate: ‘package/inherit’ would cause the ‘replacement’ of
‘openmpi’ to be inherited, which is probably not a good idea since it’s
a different version.

> +     (substitute-keyword-arguments (package-arguments openmpi)
> +       ((#:configure-flags flags)
> +        #~(append (list "--enable-prte-prefix-by-default" ;replaces --enable-mpirun-prefix-by-default
> +                        ;; Enable support for the 'Process Management
> +                        ;; Interface for Exascale' (PMIx) used e.g. by
> +                        ;; Slurm for the management communication and
> +                        ;; coordination of MPI processes.
> +                        (string-append "--with-pmix=" #$(this-package-input "openpmix"))
> +                        (string-append "--with-prrte=" #$(this-package-input "prrte"))
> +
> +                        ;; Since 5.x, Infiniband support is provided by ucx.
> +                        (string-append "--with-ucx=" #$(this-package-input "ucx")))
> +                  (filter (lambda (e)
> +                            (and (not (string-contains e "pmi")) ;; Since 5.x, OpenMPI doesn't support PMI/PMI-2
> +                                 ;; Deprecated since 5.x.
> +                                 (not (string-contains e "enable-mpirun-prefix-by-default"))
> +                                 ;; Infiniband support is deprecated and superseded by ucx
> +                                 ;; See https://docs.open-mpi.org/en/main/release-notes/networks.html#miscellaneous-network-notes
> +                                 (not (string-contains e "openib"))))
> +                          #$flags)))

How about listing all the configure flags explicitly rather than
relative to those of 4.x?  I feel like this would be clearer and that
there’s little to be gained by factorizing anyway.

Thanks,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 08:43:02 GMT) Full text and rfc822 format available.

Message #26 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludovic.courtes <at> inria.fr>
To: Romain GARBAGE <romain.garbage <at> inria.fr>
Cc: 72062 <at> debbugs.gnu.org
Subject: Re: [PATCH 3/4] gnu: Add openmpi-5.
Date: Fri, 12 Jul 2024 10:42:47 +0200
Romain GARBAGE <romain.garbage <at> inria.fr> skribis:

> +(define-public openmpi-5

Also, probably as a separate patch, you could rename ‘openmpi’ to
‘openmpi-4’ and add:

  (define-public openmpi openmpi-4)

That way, we’ll only have to touch that variable when we decide to
upgrade wholesale.

WDYT?

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 08:45:02 GMT) Full text and rfc822 format available.

Message #29 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludovic.courtes <at> inria.fr>
To: Romain GARBAGE <romain.garbage <at> inria.fr>
Cc: 72062 <at> debbugs.gnu.org
Subject: Re: [PATCH 0/4] Add OpenMPI 5.x
Date: Fri, 12 Jul 2024 10:44:06 +0200
Romain GARBAGE <romain.garbage <at> inria.fr> skribis:

>   gnu: Add openpmix.
>   gnu: Add prrte.
>   gnu: Add openmpi-5.
>   gnu: slurm: Add PMIx support.

Apart from the minor issues I reported, it LGTM!  Let’s see if qa.guix
can give it a try…

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 11:54:02 GMT) Full text and rfc822 format available.

Message #32 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH v2 0/5] Add OpenMPI 5.x.
Date: Fri, 12 Jul 2024 13:47:01 +0200
Changes from v1->v2:
* Swapped patches #3 and #4 so SLURM with PMIx support is present before
OpenMPI 5.x.
* (openmpi-5)[arguments]: configure flags are not derived from the
inherited package but fully listed.
* (openmpi-5): Switched from package/inherit to (inherit ...).
* Renamed openmpi to openmpi-4.
* Set openmpi-4 as default openmpi.

Romain GARBAGE (5):
  gnu: Add openpmix.
  gnu: Add prrte.
  gnu: slurm: Add PMIx support.
  gnu: Add openmpi-5.
  gnu: openmpi: Set default version to 4.x.

 gnu/packages/mpi.scm      | 63 +++++++++++++++++++++++++++++++++++-
 gnu/packages/parallel.scm | 68 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 130 insertions(+), 1 deletion(-)


base-commit: 0663668507377a849317b0fff3d72f609c3139c2
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 11:54:02 GMT) Full text and rfc822 format available.

Message #35 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH v2 1/5] gnu: Add openpmix.
Date: Fri, 12 Jul 2024 13:47:02 +0200
* gnu/packages/parallel.scm (openpmix): New variable.

Change-Id: Id23bc710c9b61ede0aebf7e2a18863fbe5fb8304
---
 gnu/packages/parallel.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index a16a0d8689..4a57e85e6c 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2021 Stefan Reichör <stefan <at> xsteve.at>
 ;;; Copyright © 2024 Zheng Junjie <873216071 <at> qq.com>
 ;;; Copyright © 2024 David Elsing <david.elsing <at> posteo.net>
+;;; Copyright © 2024 Romain Garbage <romain.garbage <at> inria.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -51,6 +52,7 @@ (define-module (gnu packages parallel)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freeipmi)
+  #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
@@ -612,3 +614,33 @@ (define-public psimd
        "This header-only C++ library provides a portable interface to
 single-instruction multiple-data (SIMD) intrinsics.")
       (license license:expat))))
+
+(define-public openpmix
+  (package
+   (name "openpmix")
+   (version "4.2.8")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append
+                  "https://github.com/openpmix/openpmix/releases/download/v"
+                  version "/pmix-" version ".tar.bz2"))
+            (sha256
+             (base32
+              "1j9xlhqrrmgjdkwakamn78y5gj756adi53hn25zksgr3is3l5d09"))))
+   (build-system gnu-build-system)
+   (arguments
+    (list #:configure-flags #~(list (string-append "--with-hwloc="
+                                                   (ungexp (this-package-input "hwloc") "lib")))))
+   (inputs (list libevent
+                 `(,hwloc "lib")))
+   (native-inputs (list perl
+                        python))
+   (synopsis "PMIx library")
+   (description
+    "PMIx is an application programming interface standard that provides
+libraries and programming models with portable and well-defined access
+to commonly needed services in distributed and parallel computing
+systems.")
+   (home-page "https://pmix.org/")
+   ;; The provided license is kind of BSD-style but specific.
+   (license (license:fsf-free "https://github.com/openpmix/openpmix?tab=License-1-ov-file#License-1-ov-file"))))
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 11:54:03 GMT) Full text and rfc822 format available.

Message #38 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH v2 2/5] gnu: Add prrte.
Date: Fri, 12 Jul 2024 13:47:03 +0200
* gnu/packages/parallel.scm (prrte): New variable.

Change-Id: I4427eec1a5c7d94ed5f9cbceb55f9372834a8971
---
 gnu/packages/parallel.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 4a57e85e6c..f173d1b75e 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -644,3 +644,35 @@ (define-public openpmix
    (home-page "https://pmix.org/")
    ;; The provided license is kind of BSD-style but specific.
    (license (license:fsf-free "https://github.com/openpmix/openpmix?tab=License-1-ov-file#License-1-ov-file"))))
+
+(define-public prrte
+  (package
+   (name "prrte")
+   (version "3.0.6")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append
+                  "https://github.com/openpmix/prrte/releases/download/v"
+                  version "/prrte-" version ".tar.bz2"))
+            (sha256
+             (base32
+              "0wiy0vk37v4db1jgxza8bci0cczcvj34dalzsrlz05dk45zb7dl3"))))
+   (build-system gnu-build-system)
+   (arguments
+    (list #:configure-flags #~(list (string-append "--with-hwloc="
+                                                   (assoc-ref %build-inputs "hwloc"))
+                                    (string-append "--with-pmix=" #$(this-package-input "openpmix")))))
+   (inputs (list libevent
+                 `(,hwloc "lib")
+                 openpmix))
+   (native-inputs (list perl))
+   (synopsis "PMIx Reference RunTime Environment (PRRTE)")
+   (description
+    "The PMIx Reference RunTime Environment is a runtime environment
+containing the reference implementation and capable of operating
+within a host SMS. The reference RTE therefore provides an easy way of
+exploring PMIx capabilities and testing PMIx-based applications
+outside of a PMIx-enabled environment.")
+   (home-page "https://openpmix.github.io/")
+   ;; The provided license is kind of BSD-style but specific.
+   (license (license:fsf-free "https://github.com/openpmix/prrte?tab=License-1-ov-file#License-1-ov-file"))))
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 11:54:03 GMT) Full text and rfc822 format available.

Message #41 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH v2 3/5] gnu: slurm: Add PMIx support.
Date: Fri, 12 Jul 2024 13:47:04 +0200
* gnu/packages/parallel.scm (slurm) [inputs]: Add dependency.
[arguments]: Update configure flags.

Change-Id: I6544be5eb44980191d0788738ab960263c56c0ba
---
 gnu/packages/parallel.scm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index f173d1b75e..694968b727 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -229,6 +229,7 @@ (define-public slurm
                   `(,hwloc-2 "lib")
                   json-c
                   linux-pam
+                  openpmix
                   munge
                   numactl
                   readline))
@@ -245,6 +246,9 @@ (define-public slurm
                    (string-append "--with-json=" #$(this-package-input "json-c"))
                    (string-append "--with-munge=" #$(this-package-input "munge"))
 
+                   ;; Use PMIx bundled with Open MPI (this is required for Open MPI 5.x).
+                   (string-append "--with-pmix=" #$(this-package-input "openpmix"))
+
                    ;; 32-bit support is marked as deprecated and needs to be
                    ;; explicitly enabled.
                    #$@(if (target-64bit?) '() '("--enable-deprecated")))
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 11:54:04 GMT) Full text and rfc822 format available.

Message #44 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH v2 5/5] gnu: openmpi: Set default version to 4.x.
Date: Fri, 12 Jul 2024 13:47:06 +0200
* gnu/packages/mpi.scm (openmpi-4): New variable.
(openmpi): Redefine variable.

Change-Id: I899e6259c9bcc579622c57a1ad1e9665f0e5db7f
---
 gnu/packages/mpi.scm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 01f07a0f7c..08cfbc3062 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -185,7 +185,9 @@ (define-public hwloc
   ;; The latest stable series of hwloc.
   hwloc-2)
 
-(define-public openmpi
+(define-public openmpi openmpi-4)
+
+(define-public openmpi-4
   (package
     (name "openmpi")
     (version "4.1.6")
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 11:54:04 GMT) Full text and rfc822 format available.

Message #47 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH v2 4/5] gnu: Add openmpi-5.
Date: Fri, 12 Jul 2024 13:47:05 +0200
* gnu/packages/mpi.scm (openmpi-5): New variable.

Change-Id: I048692b2e928077c9cfa9fb8076ceb356251e1db
---
 gnu/packages/mpi.scm | 59 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 6270108b16..01f07a0f7c 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2018–2022 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2018 Paul Garlick <pgarlick <at> tourbillion-technology.com>
 ;;; Copyright © 2019, 2021 Ricardo Wurmus <rekado <at> elephly.net>
+;;; Copyright © 2024 Romain Garbage <romain.garbage <at> inria.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -49,6 +50,7 @@ (define-module (gnu packages mpi)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages parallel)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages valgrind)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match))
@@ -307,6 +309,63 @@ (define-public openmpi
     ;; See file://LICENSE
     (license license:bsd-2)))
 
+(define-public openmpi-5
+  (package
+    (inherit openmpi)
+    (version "5.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.open-mpi.org/software/ompi/v"
+                           (version-major+minor version)
+                           "/downloads/openmpi-" version ".tar.bz2"))
+       (sha256
+        (base32 "02x9xmpggw77mdpikjjx83j6i4v3gkqbncda73lk5axk0vr841cr"))))
+
+    (inputs (modify-inputs (package-inputs openmpi)
+              ;; As of Open MPI 5.0.X, PMIx is used to communicate
+              ;; with SLURM, so SLURM'S PMI is no longer needed.
+              (delete "slurm")
+              (append ucx)              ;for Infiniband support
+              (append openpmix)         ;for PMI support (launching via "srun")
+              (append prrte)))          ;for PMI support (launching via "srun")
+    (native-inputs (modify-inputs (package-native-inputs openmpi)
+                     (append python)))
+
+    (outputs '("out" "debug"))
+    (arguments
+     (substitute-keyword-arguments (package-arguments openmpi)
+       ((#:configure-flags _)
+        #~(list "--enable-mpi-ext=affinity" ;cr doesn't work
+                "--with-sge"
+
+                #$@(if (package? (this-package-input "valgrind"))
+                       #~("--enable-memchecker"
+                          "--with-valgrind")
+                       #~("--without-valgrind"))
+
+                "--with-hwloc=external"
+                "--with-libevent"
+
+                ;; This replaces --enable-mpirun-prefix-by-default wich is deprecated
+                ;; since 5.x.
+                "--enable-prte-prefix-by-default"
+
+                ;; Enable support for the 'Process Management Interface for Exascale'
+                ;; (PMIx) used e.g. by Slurm for the management communication and
+                ;; coordination of MPI processes.
+                (string-append "--with-pmix=" #$(this-package-input "openpmix"))
+                (string-append "--with-prrte=" #$(this-package-input "prrte"))
+
+                ;; Since 5.x, Infiniband support is provided by ucx.
+                ;; See https://docs.open-mpi.org/en/main/release-notes/networks.html#miscellaneous-network-notes
+                (string-append "--with-ucx=" #$(this-package-input "ucx"))))
+
+       ((#:phases phases)
+        #~(modify-phases #$phases
+            (delete 'remove-absolute)
+            (delete 'scrub-timestamps)))))))
+
 (define-public openmpi-c++
   (package/inherit openmpi
     (name "openmpi-c++")
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 12:02:02 GMT) Full text and rfc822 format available.

Message #50 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH v3 0/5] Add OpenMPI 5.x.
Date: Fri, 12 Jul 2024 14:00:00 +0200
Changes from v2->v3
* Moved the definition of openmpi below openmpi-4 (fixes build breakage).

Romain GARBAGE (5):
  gnu: Add openpmix.
  gnu: Add prrte.
  gnu: slurm: Add PMIx support.
  gnu: Add openmpi-5.
  gnu: openmpi: Set default version to 4.x.

 gnu/packages/mpi.scm      | 63 +++++++++++++++++++++++++++++++++++-
 gnu/packages/parallel.scm | 68 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 130 insertions(+), 1 deletion(-)


base-commit: 0663668507377a849317b0fff3d72f609c3139c2
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 12:02:02 GMT) Full text and rfc822 format available.

Message #53 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH v3 1/5] gnu: Add openpmix.
Date: Fri, 12 Jul 2024 14:00:01 +0200
* gnu/packages/parallel.scm (openpmix): New variable.

Change-Id: Id23bc710c9b61ede0aebf7e2a18863fbe5fb8304
---
 gnu/packages/parallel.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index a16a0d8689..4a57e85e6c 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2021 Stefan Reichör <stefan <at> xsteve.at>
 ;;; Copyright © 2024 Zheng Junjie <873216071 <at> qq.com>
 ;;; Copyright © 2024 David Elsing <david.elsing <at> posteo.net>
+;;; Copyright © 2024 Romain Garbage <romain.garbage <at> inria.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -51,6 +52,7 @@ (define-module (gnu packages parallel)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freeipmi)
+  #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
@@ -612,3 +614,33 @@ (define-public psimd
        "This header-only C++ library provides a portable interface to
 single-instruction multiple-data (SIMD) intrinsics.")
       (license license:expat))))
+
+(define-public openpmix
+  (package
+   (name "openpmix")
+   (version "4.2.8")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append
+                  "https://github.com/openpmix/openpmix/releases/download/v"
+                  version "/pmix-" version ".tar.bz2"))
+            (sha256
+             (base32
+              "1j9xlhqrrmgjdkwakamn78y5gj756adi53hn25zksgr3is3l5d09"))))
+   (build-system gnu-build-system)
+   (arguments
+    (list #:configure-flags #~(list (string-append "--with-hwloc="
+                                                   (ungexp (this-package-input "hwloc") "lib")))))
+   (inputs (list libevent
+                 `(,hwloc "lib")))
+   (native-inputs (list perl
+                        python))
+   (synopsis "PMIx library")
+   (description
+    "PMIx is an application programming interface standard that provides
+libraries and programming models with portable and well-defined access
+to commonly needed services in distributed and parallel computing
+systems.")
+   (home-page "https://pmix.org/")
+   ;; The provided license is kind of BSD-style but specific.
+   (license (license:fsf-free "https://github.com/openpmix/openpmix?tab=License-1-ov-file#License-1-ov-file"))))
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 12:02:03 GMT) Full text and rfc822 format available.

Message #56 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH v3 3/5] gnu: slurm: Add PMIx support.
Date: Fri, 12 Jul 2024 14:00:03 +0200
* gnu/packages/parallel.scm (slurm) [inputs]: Add dependency.
[arguments]: Update configure flags.

Change-Id: I6544be5eb44980191d0788738ab960263c56c0ba
---
 gnu/packages/parallel.scm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index f173d1b75e..694968b727 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -229,6 +229,7 @@ (define-public slurm
                   `(,hwloc-2 "lib")
                   json-c
                   linux-pam
+                  openpmix
                   munge
                   numactl
                   readline))
@@ -245,6 +246,9 @@ (define-public slurm
                    (string-append "--with-json=" #$(this-package-input "json-c"))
                    (string-append "--with-munge=" #$(this-package-input "munge"))
 
+                   ;; Use PMIx bundled with Open MPI (this is required for Open MPI 5.x).
+                   (string-append "--with-pmix=" #$(this-package-input "openpmix"))
+
                    ;; 32-bit support is marked as deprecated and needs to be
                    ;; explicitly enabled.
                    #$@(if (target-64bit?) '() '("--enable-deprecated")))
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 12:02:03 GMT) Full text and rfc822 format available.

Message #59 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH v3 4/5] gnu: Add openmpi-5.
Date: Fri, 12 Jul 2024 14:00:04 +0200
* gnu/packages/mpi.scm (openmpi-5): New variable.

Change-Id: I048692b2e928077c9cfa9fb8076ceb356251e1db
---
 gnu/packages/mpi.scm | 59 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 6270108b16..01f07a0f7c 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2018–2022 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2018 Paul Garlick <pgarlick <at> tourbillion-technology.com>
 ;;; Copyright © 2019, 2021 Ricardo Wurmus <rekado <at> elephly.net>
+;;; Copyright © 2024 Romain Garbage <romain.garbage <at> inria.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -49,6 +50,7 @@ (define-module (gnu packages mpi)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages parallel)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages valgrind)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match))
@@ -307,6 +309,63 @@ (define-public openmpi
     ;; See file://LICENSE
     (license license:bsd-2)))
 
+(define-public openmpi-5
+  (package
+    (inherit openmpi)
+    (version "5.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.open-mpi.org/software/ompi/v"
+                           (version-major+minor version)
+                           "/downloads/openmpi-" version ".tar.bz2"))
+       (sha256
+        (base32 "02x9xmpggw77mdpikjjx83j6i4v3gkqbncda73lk5axk0vr841cr"))))
+
+    (inputs (modify-inputs (package-inputs openmpi)
+              ;; As of Open MPI 5.0.X, PMIx is used to communicate
+              ;; with SLURM, so SLURM'S PMI is no longer needed.
+              (delete "slurm")
+              (append ucx)              ;for Infiniband support
+              (append openpmix)         ;for PMI support (launching via "srun")
+              (append prrte)))          ;for PMI support (launching via "srun")
+    (native-inputs (modify-inputs (package-native-inputs openmpi)
+                     (append python)))
+
+    (outputs '("out" "debug"))
+    (arguments
+     (substitute-keyword-arguments (package-arguments openmpi)
+       ((#:configure-flags _)
+        #~(list "--enable-mpi-ext=affinity" ;cr doesn't work
+                "--with-sge"
+
+                #$@(if (package? (this-package-input "valgrind"))
+                       #~("--enable-memchecker"
+                          "--with-valgrind")
+                       #~("--without-valgrind"))
+
+                "--with-hwloc=external"
+                "--with-libevent"
+
+                ;; This replaces --enable-mpirun-prefix-by-default wich is deprecated
+                ;; since 5.x.
+                "--enable-prte-prefix-by-default"
+
+                ;; Enable support for the 'Process Management Interface for Exascale'
+                ;; (PMIx) used e.g. by Slurm for the management communication and
+                ;; coordination of MPI processes.
+                (string-append "--with-pmix=" #$(this-package-input "openpmix"))
+                (string-append "--with-prrte=" #$(this-package-input "prrte"))
+
+                ;; Since 5.x, Infiniband support is provided by ucx.
+                ;; See https://docs.open-mpi.org/en/main/release-notes/networks.html#miscellaneous-network-notes
+                (string-append "--with-ucx=" #$(this-package-input "ucx"))))
+
+       ((#:phases phases)
+        #~(modify-phases #$phases
+            (delete 'remove-absolute)
+            (delete 'scrub-timestamps)))))))
+
 (define-public openmpi-c++
   (package/inherit openmpi
     (name "openmpi-c++")
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 12:02:04 GMT) Full text and rfc822 format available.

Message #62 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH v3 5/5] gnu: openmpi: Set default version to 4.x.
Date: Fri, 12 Jul 2024 14:00:05 +0200
* gnu/packages/mpi.scm (openmpi-4): New variable.
(openmpi): Redefine variable.

Change-Id: If5bb4429c935982ddaa1a5acbd728367ebbfd6fd
---
 gnu/packages/mpi.scm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 01f07a0f7c..7b639b9033 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -185,7 +185,7 @@ (define-public hwloc
   ;; The latest stable series of hwloc.
   hwloc-2)
 
-(define-public openmpi
+(define-public openmpi-4
   (package
     (name "openmpi")
     (version "4.1.6")
@@ -309,6 +309,8 @@ (define-public openmpi
     ;; See file://LICENSE
     (license license:bsd-2)))
 
+(define-public openmpi openmpi-4)
+
 (define-public openmpi-5
   (package
     (inherit openmpi)
-- 
2.45.1





Information forwarded to guix-patches <at> gnu.org:
bug#72062; Package guix-patches. (Fri, 12 Jul 2024 12:03:01 GMT) Full text and rfc822 format available.

Message #65 received at 72062 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 72062 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH v3 2/5] gnu: Add prrte.
Date: Fri, 12 Jul 2024 14:00:02 +0200
* gnu/packages/parallel.scm (prrte): New variable.

Change-Id: I4427eec1a5c7d94ed5f9cbceb55f9372834a8971
---
 gnu/packages/parallel.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 4a57e85e6c..f173d1b75e 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -644,3 +644,35 @@ (define-public openpmix
    (home-page "https://pmix.org/")
    ;; The provided license is kind of BSD-style but specific.
    (license (license:fsf-free "https://github.com/openpmix/openpmix?tab=License-1-ov-file#License-1-ov-file"))))
+
+(define-public prrte
+  (package
+   (name "prrte")
+   (version "3.0.6")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append
+                  "https://github.com/openpmix/prrte/releases/download/v"
+                  version "/prrte-" version ".tar.bz2"))
+            (sha256
+             (base32
+              "0wiy0vk37v4db1jgxza8bci0cczcvj34dalzsrlz05dk45zb7dl3"))))
+   (build-system gnu-build-system)
+   (arguments
+    (list #:configure-flags #~(list (string-append "--with-hwloc="
+                                                   (assoc-ref %build-inputs "hwloc"))
+                                    (string-append "--with-pmix=" #$(this-package-input "openpmix")))))
+   (inputs (list libevent
+                 `(,hwloc "lib")
+                 openpmix))
+   (native-inputs (list perl))
+   (synopsis "PMIx Reference RunTime Environment (PRRTE)")
+   (description
+    "The PMIx Reference RunTime Environment is a runtime environment
+containing the reference implementation and capable of operating
+within a host SMS. The reference RTE therefore provides an easy way of
+exploring PMIx capabilities and testing PMIx-based applications
+outside of a PMIx-enabled environment.")
+   (home-page "https://openpmix.github.io/")
+   ;; The provided license is kind of BSD-style but specific.
+   (license (license:fsf-free "https://github.com/openpmix/prrte?tab=License-1-ov-file#License-1-ov-file"))))
-- 
2.45.1





Reply sent to Ludovic Courtès <ludovic.courtes <at> inria.fr>:
You have taken responsibility. (Mon, 19 Aug 2024 14:11:01 GMT) Full text and rfc822 format available.

Notification sent to Romain GARBAGE <romain.garbage <at> inria.fr>:
bug acknowledged by developer. (Mon, 19 Aug 2024 14:11:01 GMT) Full text and rfc822 format available.

Message #70 received at 72062-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludovic.courtes <at> inria.fr>
To: Romain GARBAGE <romain.garbage <at> inria.fr>
Cc: 72062-done <at> debbugs.gnu.org
Subject: Re: [bug#72062] [PATCH v3 0/5] Add OpenMPI 5.x.
Date: Mon, 19 Aug 2024 16:09:42 +0200
[Message part 1 (text/plain, inline)]
Hello,

Romain GARBAGE <romain.garbage <at> inria.fr> skribis:

>   gnu: Add openpmix.
>   gnu: Add prrte.
>   gnu: slurm: Add PMIx support.
>   gnu: Add openmpi-5.
>   gnu: openmpi: Set default version to 4.x.

I made the change below to ensure that all the versions of the ‘slurm’
package would still build.  It took me a while :-) but in the end it’s
just about removing ‘openmpix’ from the inputs of older versions.

Will push shortly.

Thank you!

Ludo’.

[Message part 2 (text/x-patch, inline)]
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index c62402cf5c..440a808f68 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -247,7 +247,10 @@ (define-public slurm
                    (string-append "--with-munge=" #$(this-package-input "munge"))
 
                    ;; Use PMIx bundled with Open MPI (this is required for Open MPI 5.x).
-                   (string-append "--with-pmix=" #$(this-package-input "openpmix"))
+                   #$(let ((openmpix (this-package-input "openpmix")))
+                       (if openmpix
+                           #~(string-append "--with-pmix=" #$openmpix)
+                           "--without-pmix"))
 
                    ;; 32-bit support is marked as deprecated and needs to be
                    ;; explicitly enabled.
@@ -310,10 +313,10 @@ (define-public slurm-22.05
 
 (define-public slurm-21.08
   (package
-    (inherit slurm)
+    (inherit slurm-22.05)
     (version "21.08.8")
     (source (origin
-              (inherit (package-source slurm))
+              (inherit (package-source slurm-22.05))
               (method url-fetch)
               (uri (string-append
                     "https://download.schedmd.com/slurm/slurm-"
@@ -321,14 +324,19 @@ (define-public slurm-21.08
               (patches '())                       ;drop 'salloc' patch
               (sha256
                (base32
-                "1sjln54idc9rhg8f2nvm38sgs6fncncyzslas8ixy65pqz2hphbf"))))))
+                "1sjln54idc9rhg8f2nvm38sgs6fncncyzslas8ixy65pqz2hphbf"))))
+
+    ;; This and older versions of slurm have PMIx support but they seem to
+    ;; require an older version of openpmix.  Disable PMIx support.
+    (inputs (pk 'x (modify-inputs (package-inputs slurm-22.05)
+                (delete "openpmix"))))))
 
 (define-public slurm-20.11
   (package
-    (inherit slurm)
+    (inherit slurm-21.08)
     (version "20.11.9")
     (source (origin
-              (inherit (package-source slurm))
+              (inherit (package-source slurm-21.08))
               (method url-fetch)
               (uri (string-append
                     "https://download.schedmd.com/slurm/slurm-"
@@ -340,10 +348,10 @@ (define-public slurm-20.11
 
 (define-public slurm-20.02
   (package
-    (inherit slurm)
+    (inherit slurm-20.11)
     (version "20.02.6-1")
     (source (origin
-              (inherit (package-source slurm))
+              (inherit (package-source slurm-20.11))
               (method url-fetch)
               (uri (string-append
                     "https://download.schedmd.com/slurm/slurm-"
@@ -353,7 +361,7 @@ (define-public slurm-20.02
                (base32
                 "0qj4blfymrd2ry2qmb58l3jbr4jwygc3adcfw7my27rippcijlyc"))))
     (arguments
-     (substitute-keyword-arguments (package-arguments slurm)
+     (substitute-keyword-arguments (package-arguments slurm-20.11)
        ((#:configure-flags flags ''())
         #~(append '("CFLAGS=-O2 -g -fcommon" "LDFLAGS=-fcommon")
                   #$flags))))))
@@ -363,7 +371,7 @@ (define-public slurm-19.05
     (inherit slurm-20.02)
     (version "19.05.8")
     (source (origin
-              (inherit (package-source slurm))
+              (inherit (package-source slurm-20.02))
               (method url-fetch)
               (uri (string-append
                     "https://download.schedmd.com/slurm/slurm-"
@@ -376,11 +384,11 @@ (define-public slurm-19.05
 ;; Same as Debian 10
 (define-public slurm-18.08
   (package
-    (inherit slurm-20.02)
+    (inherit slurm-19.05)
     (version "18.08.9")
     (source
       (origin
-        (inherit (package-source slurm))
+        (inherit (package-source slurm-20.02))
         (uri (string-append
                "https://download.schedmd.com/slurm/slurm-"
                version ".tar.bz2"))

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 17 Sep 2024 11:24:11 GMT) Full text and rfc822 format available.

This bug report was last modified 312 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.