all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Romain GARBAGE <romain.garbage@inria.fr>
To: 72062@debbugs.gnu.org
Cc: ludovic.courtes@inria.fr, Romain GARBAGE <romain.garbage@inria.fr>
Subject: [bug#72062] [PATCH 3/4] gnu: Add openmpi-5.
Date: Thu, 11 Jul 2024 16:35:24 +0200	[thread overview]
Message-ID: <20240711143540.25601-3-romain.garbage@inria.fr> (raw)
In-Reply-To: <20240711143540.25601-1-romain.garbage@inria.fr>

* 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@tobias.gr>
 ;;; Copyright © 2018 Paul Garlick <pgarlick@tourbillion-technology.com>
 ;;; Copyright © 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2024 Romain Garbage <romain.garbage@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





  parent reply	other threads:[~2024-07-11 14:37 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-11 14:25 [bug#72062] [PATCH 0/4] Add OpenMPI 5.x Romain GARBAGE
2024-07-11 14:35 ` [bug#72062] [PATCH 1/4] gnu: Add openpmix Romain GARBAGE
2024-07-11 14:35   ` [bug#72062] [PATCH 2/4] gnu: Add prrte Romain GARBAGE
2024-07-11 14:35   ` Romain GARBAGE [this message]
2024-07-12  8:40     ` [bug#72062] [PATCH 3/4] gnu: Add openmpi-5 Ludovic Courtès
2024-07-12  8:42     ` Ludovic Courtès
2024-07-11 14:35   ` [bug#72062] [PATCH 4/4] gnu: slurm: Add PMIx support Romain GARBAGE
2024-07-12  7:27 ` [bug#72062] [PATCH 0/4] Add OpenMPI 5.x Romain GARBAGE
2024-07-12  8:44 ` Ludovic Courtès
2024-07-12 11:47 ` [bug#72062] [PATCH v2 0/5] " Romain GARBAGE
2024-07-12 11:47   ` [bug#72062] [PATCH v2 1/5] gnu: Add openpmix Romain GARBAGE
2024-07-12 11:47   ` [bug#72062] [PATCH v2 2/5] gnu: Add prrte Romain GARBAGE
2024-07-12 11:47   ` [bug#72062] [PATCH v2 3/5] gnu: slurm: Add PMIx support Romain GARBAGE
2024-07-12 11:47   ` [bug#72062] [PATCH v2 4/5] gnu: Add openmpi-5 Romain GARBAGE
2024-07-12 11:47   ` [bug#72062] [PATCH v2 5/5] gnu: openmpi: Set default version to 4.x Romain GARBAGE
2024-07-12 12:00 ` [bug#72062] [PATCH v3 0/5] Add OpenMPI 5.x Romain GARBAGE
2024-07-12 12:00   ` [bug#72062] [PATCH v3 1/5] gnu: Add openpmix Romain GARBAGE
2024-07-12 12:00   ` [bug#72062] [PATCH v3 2/5] gnu: Add prrte Romain GARBAGE
2024-07-12 12:00   ` [bug#72062] [PATCH v3 3/5] gnu: slurm: Add PMIx support Romain GARBAGE
2024-07-12 12:00   ` [bug#72062] [PATCH v3 4/5] gnu: Add openmpi-5 Romain GARBAGE
2024-07-12 12:00   ` [bug#72062] [PATCH v3 5/5] gnu: openmpi: Set default version to 4.x Romain GARBAGE
2024-08-19 14:09   ` bug#72062: [PATCH v3 0/5] Add OpenMPI 5.x Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240711143540.25601-3-romain.garbage@inria.fr \
    --to=romain.garbage@inria.fr \
    --cc=72062@debbugs.gnu.org \
    --cc=ludovic.courtes@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.