guix-glicid/glicid/packages/mpi.scm

135 lines
5.2 KiB
Scheme
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(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 linux)
#:use-module (gnu packages linux)
#:use-module (ice-9 pretty-print)
#: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-unpatched-glicid")
(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.
"--without-openib"
(string-append "--with-pmix="
#$(this-package-input
"openpmix")))
))))
(inputs (modify-inputs (package-inputs openmpi-unpatched-glicid)
(delete "libfabric") ;; openib won't be here…
(append openpmix) ; because we use pmix4 now, openpmi-4 defaults to internal pmix3
; (append prrte) ;idem
))
))
;(pretty-print (package-inputs openmpi-unpatched-glicid-pmixv4))