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 v3 4/5] gnu: Add openmpi-5.
Date: Fri, 12 Jul 2024 14:00:04 +0200 [thread overview]
Message-ID: <20240712120140.20391-5-romain.garbage@inria.fr> (raw)
In-Reply-To: <20240712120140.20391-1-romain.garbage@inria.fr>
* 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@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,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
next prev parent reply other threads:[~2024-07-12 12:02 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 ` [bug#72062] [PATCH 3/4] gnu: Add openmpi-5 Romain GARBAGE
2024-07-12 8:40 ` 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 ` Romain GARBAGE [this message]
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=20240712120140.20391-5-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.