mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-27 04:36:55 +01:00
gnu: openmpi: Add InfiniBand support.
* gnu/packages/mpi.scm (openmpi)[inputs]: Add opensm. [arguments]: Add openib configure flags; add build phase "find-opensm-headers".
This commit is contained in:
parent
f30d5f7f2d
commit
e9823f9ca3
1 changed files with 23 additions and 0 deletions
|
@ -7,6 +7,7 @@
|
||||||
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2018 Paul Garlick <pgarlick@tourbillion-technology.com>
|
;;; Copyright © 2018 Paul Garlick <pgarlick@tourbillion-technology.com>
|
||||||
|
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -32,6 +33,7 @@ (define-module (gnu packages mpi)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system python)
|
#:use-module (guix build-system python)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
|
#:use-module (gnu packages fabric-management)
|
||||||
#:use-module (gnu packages gcc)
|
#:use-module (gnu packages gcc)
|
||||||
#:use-module (gnu packages libevent)
|
#:use-module (gnu packages libevent)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
|
@ -174,6 +176,7 @@ (define-public openmpi
|
||||||
("gfortran" ,gfortran)
|
("gfortran" ,gfortran)
|
||||||
("libfabric" ,libfabric)
|
("libfabric" ,libfabric)
|
||||||
("libevent" ,libevent)
|
("libevent" ,libevent)
|
||||||
|
("opensm" ,opensm)
|
||||||
,@(if (and (not (%current-target-system))
|
,@(if (and (not (%current-target-system))
|
||||||
(member (%current-system) (package-supported-systems psm)))
|
(member (%current-system) (package-supported-systems psm)))
|
||||||
`(("psm" ,psm))
|
`(("psm" ,psm))
|
||||||
|
@ -198,11 +201,31 @@ (define-public openmpi
|
||||||
"--with-valgrind"
|
"--with-valgrind"
|
||||||
"--with-hwloc=external"
|
"--with-hwloc=external"
|
||||||
"--with-libevent"
|
"--with-libevent"
|
||||||
|
|
||||||
|
;; InfiniBand support
|
||||||
|
"--enable-openib-control-hdr-padding"
|
||||||
|
"--enable-openib-dynamic-sl"
|
||||||
|
"--enable-openib-udcm"
|
||||||
|
"--enable-openib-rdmacm"
|
||||||
|
"--enable-openib-rdmacm-ibaddr"
|
||||||
|
|
||||||
;; Enable support for SLURM's Process Manager
|
;; Enable support for SLURM's Process Manager
|
||||||
;; Interface (PMI).
|
;; Interface (PMI).
|
||||||
,(string-append "--with-pmi="
|
,(string-append "--with-pmi="
|
||||||
(assoc-ref %build-inputs "slurm")))
|
(assoc-ref %build-inputs "slurm")))
|
||||||
#:phases (modify-phases %standard-phases
|
#:phases (modify-phases %standard-phases
|
||||||
|
;; opensm is needed for InfiniBand support.
|
||||||
|
(add-after 'unpack 'find-opensm-headers
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(setenv "C_INCLUDE_PATH"
|
||||||
|
(string-append (assoc-ref inputs "opensm")
|
||||||
|
"/include/infiniband/:"
|
||||||
|
(getenv "C_INCLUDE_PATH")))
|
||||||
|
(setenv "CPLUS_INCLUDE_PATH"
|
||||||
|
(string-append (assoc-ref inputs "opensm")
|
||||||
|
"/include/infiniband/:"
|
||||||
|
(getenv "CPLUS_INCLUDE_PATH")))
|
||||||
|
#t))
|
||||||
(add-before 'build 'remove-absolute
|
(add-before 'build 'remove-absolute
|
||||||
(lambda _
|
(lambda _
|
||||||
;; Remove compiler absolute file names (OPAL_FC_ABSOLUTE
|
;; Remove compiler absolute file names (OPAL_FC_ABSOLUTE
|
||||||
|
|
Loading…
Reference in a new issue