2021-10-25 09:08:28 +02:00
|
|
|
|
(define-module (glicid packages mpi)
|
2025-02-20 16:06:02 +01:00
|
|
|
|
#:use-module (srfi srfi-1) ; lset-difference
|
2021-10-25 09:08:28 +02:00
|
|
|
|
#:use-module (guix packages)
|
|
|
|
|
#:use-module (guix download)
|
2023-01-02 11:18:12 +01:00
|
|
|
|
#:use-module ((gnu packages mpi)
|
|
|
|
|
#:prefix gnu:)
|
2022-05-10 10:00:46 +02:00
|
|
|
|
#:use-module (glicid utils)
|
|
|
|
|
#:use-module (guix utils)
|
|
|
|
|
#:use-module (glicid packages parallel)
|
2025-02-18 13:43:40 +01:00
|
|
|
|
#:use-module (gnu packages parallel)
|
|
|
|
|
#:use-module (guix gexp)
|
2025-02-20 16:46:26 +01:00
|
|
|
|
#:use-module (gnu packages linux)
|
|
|
|
|
#:use-module (gnu packages linux)
|
|
|
|
|
#:use-module (ice-9 pretty-print)
|
2023-01-02 11:18:12 +01:00
|
|
|
|
#:use-module (gnu packages))
|
2021-10-25 09:38:43 +02:00
|
|
|
|
|
2025-02-20 16:06:02 +01:00
|
|
|
|
|
2025-02-18 14:52:17 +01:00
|
|
|
|
;(define-public openmpi-glicid-internal-pmix
|
|
|
|
|
; (package/inherit gnu:openmpi-4
|
|
|
|
|
; (name "openmpi-glicid")
|
|
|
|
|
; (inputs (modify-inputs (package-inputs gnu:openmpi-4)
|
|
|
|
|
; (append openpmix) ;; because we use pmix4 now, openpmi-4 defaults to internal pmix3
|
|
|
|
|
; (replace "slurm" slurm-glicid)))
|
|
|
|
|
;
|
|
|
|
|
; )
|
|
|
|
|
;)
|
2025-02-18 13:43:40 +01:00
|
|
|
|
|
2025-02-20 12:32:27 +01:00
|
|
|
|
(define openmpi-upstream-4.1.8
|
2025-02-18 16:02:45 +01:00
|
|
|
|
(package
|
|
|
|
|
(inherit gnu:openmpi-4)
|
2025-02-20 12:32:27 +01:00
|
|
|
|
(name "openmpi-upstream-4")
|
2025-02-18 16:02:45 +01:00
|
|
|
|
(version "4.1.8")
|
|
|
|
|
(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 "1a8jkxqxbkyx9np2vyjrhgckd0zdzkx1286c20kw079a2ginhvs6"))
|
|
|
|
|
(patches (search-patches "openmpi-mtl-priorities.patch"))))))
|
|
|
|
|
|
2025-02-20 12:32:27 +01:00
|
|
|
|
(define openmpi-upstream-unpatched-4.1.8
|
|
|
|
|
(package
|
|
|
|
|
(inherit gnu:openmpi-4)
|
|
|
|
|
(name "openmpi-upstream")
|
|
|
|
|
(version "4.1.8")
|
|
|
|
|
(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 "1a8jkxqxbkyx9np2vyjrhgckd0zdzkx1286c20kw079a2ginhvs6"))))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-18 16:02:45 +01:00
|
|
|
|
(define openmpi-4-latest
|
|
|
|
|
(latest-version openmpi-upstream-4.1.8 gnu:openmpi-4))
|
2025-02-18 13:43:40 +01:00
|
|
|
|
|
2025-02-18 14:57:53 +01:00
|
|
|
|
(define-public openmpi-glicid
|
2025-02-18 16:02:45 +01:00
|
|
|
|
(package/inherit openmpi-4-latest
|
2025-02-18 14:52:17 +01:00
|
|
|
|
(name "openmpi-glicid")
|
2025-02-18 16:02:45 +01:00
|
|
|
|
(inputs (modify-inputs (package-inputs openmpi-4-latest)
|
|
|
|
|
(replace "slurm" slurm-glicid)))
|
|
|
|
|
|
|
|
|
|
))
|
|
|
|
|
|
2025-02-20 12:32:27 +01:00
|
|
|
|
(define-public openmpi-unpatched-glicid
|
|
|
|
|
(package/inherit openmpi-upstream-unpatched-4.1.8
|
2025-02-20 16:46:26 +01:00
|
|
|
|
(name "openmpi-unpatched-glicid")
|
2025-02-20 12:32:27 +01:00
|
|
|
|
(inputs (modify-inputs (package-inputs openmpi-upstream-unpatched-4.1.8)
|
|
|
|
|
(replace "slurm" slurm-glicid)))
|
|
|
|
|
|
|
|
|
|
))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-02-18 16:02:45 +01:00
|
|
|
|
|
|
|
|
|
|
2025-02-18 16:15:40 +01:00
|
|
|
|
(define-public openmpi-glicid-pmixv4
|
2025-02-18 16:41:28 +01:00
|
|
|
|
(package/inherit openmpi-glicid
|
2025-02-18 16:15:40 +01:00
|
|
|
|
(name "openmpi-glicid-pmixv4")
|
2025-02-18 16:02:45 +01:00
|
|
|
|
(arguments (substitute-keyword-arguments (package-arguments
|
2025-02-18 16:41:28 +01:00
|
|
|
|
openmpi-glicid)
|
2025-02-18 16:02:45 +01:00
|
|
|
|
((#:configure-flags flags)
|
|
|
|
|
#~(append #$flags
|
|
|
|
|
(list ;original flags has --with-pmix=internal, we should remove it but last --with-pmix is the one taken into account.
|
|
|
|
|
(string-append "--with-pmix="
|
|
|
|
|
#$(this-package-input
|
|
|
|
|
"openpmix"))
|
|
|
|
|
(string-append "--with-prrte="
|
|
|
|
|
#$(this-package-input "prrte"))) ;#$flags
|
|
|
|
|
))))
|
2025-02-18 16:41:28 +01:00
|
|
|
|
(inputs (modify-inputs (package-inputs openmpi-glicid)
|
2025-02-18 16:02:45 +01:00
|
|
|
|
(append openpmix) ; because we use pmix4 now, openpmi-4 defaults to internal pmix3
|
|
|
|
|
(append prrte) ;idem
|
2025-02-18 16:41:28 +01:00
|
|
|
|
))
|
2025-02-18 13:43:40 +01:00
|
|
|
|
|
2025-02-18 16:02:45 +01:00
|
|
|
|
))
|
|
|
|
|
|
2025-02-20 16:06:02 +01:00
|
|
|
|
(define-public openmpi-unpatched-glicid-pmixv4
|
2025-02-20 12:32:27 +01:00
|
|
|
|
(package/inherit openmpi-unpatched-glicid
|
2025-02-20 16:06:02 +01:00
|
|
|
|
(name "openmpi-unpatched-glicid-pmixv4")
|
2025-02-20 12:32:27 +01:00
|
|
|
|
(arguments (substitute-keyword-arguments (package-arguments
|
|
|
|
|
openmpi-unpatched-glicid)
|
|
|
|
|
((#:configure-flags flags)
|
2025-02-20 16:06:02 +01:00
|
|
|
|
#~(append
|
|
|
|
|
; (`lset-difference `eq? #$flags (list "--with-pmix=internal"))
|
|
|
|
|
; (delete "--with-pmix=internal" (delete "--enable-openib-control-hdr-padding" #$flags))
|
|
|
|
|
; (lset-difference eq? (list "-with-pmix=internal" "--enable-openib-control-hdr-padding") #$flags)
|
|
|
|
|
; #$flags
|
|
|
|
|
(delete "--with-pmix=internal"
|
|
|
|
|
(delete "--enable-openib-dynamic-sl"
|
|
|
|
|
(delete "--enable-openib-udcm"
|
|
|
|
|
(delete "--enable-openib-rdmacm"
|
|
|
|
|
(delete "--enable-openib-rdmacm-ibaddr"
|
|
|
|
|
(delete "--enable-openib-control-hdr-padding" #$flags))))))
|
2025-02-20 12:32:27 +01:00
|
|
|
|
(list ;original flags has --with-pmix=internal, we should remove it but last --with-pmix is the one taken into account.
|
2025-02-20 16:46:26 +01:00
|
|
|
|
"--without-openib"
|
2025-02-20 12:32:27 +01:00
|
|
|
|
(string-append "--with-pmix="
|
|
|
|
|
#$(this-package-input
|
2025-02-20 16:06:02 +01:00
|
|
|
|
"openpmix")))
|
2025-02-20 12:32:27 +01:00
|
|
|
|
))))
|
|
|
|
|
(inputs (modify-inputs (package-inputs openmpi-unpatched-glicid)
|
2025-02-20 16:46:26 +01:00
|
|
|
|
(delete "libfabric") ;; openib won't be here…
|
2025-02-20 12:32:27 +01:00
|
|
|
|
(append openpmix) ; because we use pmix4 now, openpmi-4 defaults to internal pmix3
|
2025-02-20 16:46:26 +01:00
|
|
|
|
; (append prrte) ;idem
|
2025-02-20 12:32:27 +01:00
|
|
|
|
))
|
|
|
|
|
|
|
|
|
|
))
|
|
|
|
|
|
2025-02-20 16:46:26 +01:00
|
|
|
|
;(pretty-print (package-inputs openmpi-unpatched-glicid-pmixv4))
|
|
|
|
|
|