guix-glicid/glicid/packages/mpi.scm

130 lines
4.9 KiB
Scheme
Raw Normal View History

2021-10-25 09:08:28 +02:00
(define-module (glicid packages mpi)
#: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:)
#: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)
2023-01-02 11:18:12 +01:00
#:use-module (gnu packages))
2021-10-25 09:38:43 +02: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
(name "openmpi-glicid-unpatched")
(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
(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
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
))))
(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 13:43:40 +01:00
2025-02-18 16:02:45 +01:00
))
(define-public openmpi-unpatched-glicid-pmixv4
2025-02-20 12:32:27 +01:00
(package/inherit openmpi-unpatched-glicid
(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)
#~(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.
(string-append "--with-pmix="
#$(this-package-input
"openpmix")))
2025-02-20 12:32:27 +01:00
))))
(inputs (modify-inputs (package-inputs openmpi-unpatched-glicid)
(append openpmix) ; because we use pmix4 now, openpmi-4 defaults to internal pmix3
(append prrte) ;idem
))
))
openmpi-unpatched-glicid-pmixv4