mirror of
https://gitlab.univ-nantes.fr/glicid-public/guix-glicid.git
synced 2025-04-29 21:58:36 +02:00
129 lines
4.9 KiB
Scheme
129 lines
4.9 KiB
Scheme
(define-module (glicid packages mpi)
|
||
#:use-module (srfi srfi-1) ; lset-difference
|
||
#:use-module (guix packages)
|
||
#:use-module (guix download)
|
||
#:use-module ((gnu packages mpi)
|
||
#:prefix gnu:)
|
||
#:use-module (glicid utils)
|
||
#:use-module (guix utils)
|
||
#:use-module (glicid packages parallel)
|
||
#:use-module (gnu packages parallel)
|
||
#:use-module (guix gexp)
|
||
#:use-module (gnu packages))
|
||
|
||
|
||
;(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)))
|
||
;
|
||
; )
|
||
;)
|
||
|
||
(define openmpi-upstream-4.1.8
|
||
(package
|
||
(inherit gnu:openmpi-4)
|
||
(name "openmpi-upstream-4")
|
||
(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"))))))
|
||
|
||
(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"))))))
|
||
|
||
|
||
|
||
(define openmpi-4-latest
|
||
(latest-version openmpi-upstream-4.1.8 gnu:openmpi-4))
|
||
|
||
(define-public openmpi-glicid
|
||
(package/inherit openmpi-4-latest
|
||
(name "openmpi-glicid")
|
||
(inputs (modify-inputs (package-inputs openmpi-4-latest)
|
||
(replace "slurm" slurm-glicid)))
|
||
|
||
))
|
||
|
||
(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)))
|
||
|
||
))
|
||
|
||
|
||
|
||
|
||
|
||
(define-public openmpi-glicid-pmixv4
|
||
(package/inherit openmpi-glicid
|
||
(name "openmpi-glicid-pmixv4")
|
||
(arguments (substitute-keyword-arguments (package-arguments
|
||
openmpi-glicid)
|
||
((#: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)
|
||
(append openpmix) ; because we use pmix4 now, openpmi-4 defaults to internal pmix3
|
||
(append prrte) ;idem
|
||
))
|
||
|
||
))
|
||
|
||
(define-public openmpi-unpatched-glicid-pmixv4
|
||
(package/inherit openmpi-unpatched-glicid
|
||
(name "openmpi-unpatched-glicid-pmixv4")
|
||
(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))))))
|
||
(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")))
|
||
))))
|
||
(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
|