summaryrefslogtreecommitdiff
path: root/gnu/packages/mpi.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludovic.courtes@inria.fr>2019-11-08 18:19:39 +0100
committerLudovic Courtès <ludo@gnu.org>2019-11-15 17:52:44 +0100
commitc1ea4c07933e0814e7f422ff0177b671865a5811 (patch)
tree182d90df1071d456bf688693ccd5e6ddec7bac4d /gnu/packages/mpi.scm
parente68f954eb3c39366cb72dde0348d0c5348316dd6 (diff)
gnu: Add Intel MPI Benchmarks.
* gnu/packages/mpi.scm (intel-mpi-benchmarks): New variable.
Diffstat (limited to 'gnu/packages/mpi.scm')
-rw-r--r--gnu/packages/mpi.scm52
1 files changed, 52 insertions, 0 deletions
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 172fe9e306..a87194408f 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -29,6 +29,7 @@
#:use-module ((guix licenses)
#:hide (expat))
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
@@ -344,6 +345,57 @@ only provides @code{MPI_THREAD_FUNNELED}.")))
(setenv "OMPI_MCA_rmaps_base_mapping_policy" "core:OVERSUBSCRIBE")
#t))
+(define-public intel-mpi-benchmarks
+ (package
+ (name "intel-mpi-benchmarks")
+ (version "2019.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/intel/mpi-benchmarks.git")
+ (commit (string-append "IMB-v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0si5xi6ilhd3w0gbsg124589pvp094hvf366rvjjb9pi7pdk5p4i"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (define (benchmark? file stat)
+ (and (string-prefix? "IMB-" (basename file))
+ (executable-file? file)))
+
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (for-each (lambda (file)
+ (install-file file bin))
+ (find-files "." benchmark?))
+ #t))))
+
+ ;; The makefile doesn't express all the dependencies, it seems.
+ #:parallel-build? #t
+
+ #:make-flags (list (string-append "CC="
+ (assoc-ref %build-inputs "openmpi")
+ "/bin/mpicc")
+ (string-append "CXX="
+ (assoc-ref %build-inputs "openmpi")
+ "/bin/mpicxx"))))
+ (inputs
+ `(("openmpi" ,openmpi)))
+ (home-page "https://github.com/intel/mpi-benchmarks")
+ (synopsis "Benchmarks for the Message Passing Interface (MPI)")
+ (description
+ "Intel MPI Benchmarks (IMB) provides a set of elementary benchmarks that
+conform with versions 1, 2, and 3 of the Message Passing Interface (MPI).")
+ (license
+ (fsf-free "https://directory.fsf.org/wiki/License:CPL-1.0"
+ "https://www.gnu.org/licenses/license-list.html#CommonPublicLicense10"))))
+
(define-public python-mpi4py
(package
(name "python-mpi4py")