diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2019-02-17 09:58:42 +0100 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2019-02-17 09:59:46 +0100 |
commit | e9823f9ca347b396b6eae0f61b1ab84cec800684 (patch) | |
tree | d4fb59710975a8527d01deba2a02377e7b5a85b9 | |
parent | f30d5f7f2dac5b02d5d71486a501bb0381ae034b (diff) | |
download | gnu-guix-e9823f9ca347b396b6eae0f61b1ab84cec800684.tar gnu-guix-e9823f9ca347b396b6eae0f61b1ab84cec800684.tar.gz |
gnu: openmpi: Add InfiniBand support.
* gnu/packages/mpi.scm (openmpi)[inputs]: Add opensm.
[arguments]: Add openib configure flags; add build phase
"find-opensm-headers".
-rw-r--r-- | gnu/packages/mpi.scm | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 0a43c55b7a..e4c17d41c2 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Paul Garlick <pgarlick@tourbillion-technology.com> +;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,6 +33,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (gnu packages) + #:use-module (gnu packages fabric-management) #:use-module (gnu packages gcc) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) @@ -174,6 +176,7 @@ bind processes, and much more.") ("gfortran" ,gfortran) ("libfabric" ,libfabric) ("libevent" ,libevent) + ("opensm" ,opensm) ,@(if (and (not (%current-target-system)) (member (%current-system) (package-supported-systems psm))) `(("psm" ,psm)) @@ -198,11 +201,31 @@ bind processes, and much more.") "--with-valgrind" "--with-hwloc=external" "--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 ;; Interface (PMI). ,(string-append "--with-pmi=" (assoc-ref %build-inputs "slurm"))) #: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 (lambda _ ;; Remove compiler absolute file names (OPAL_FC_ABSOLUTE |