[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
04/04: gnu: Add imb-openmpi.
From: |
Ludovic Courtès |
Subject: |
04/04: gnu: Add imb-openmpi. |
Date: |
Thu, 5 Oct 2017 06:10:59 -0400 (EDT) |
civodul pushed a commit to branch master
in repository guix.
commit 04717e9406f3b5171ad28ed67d926ce0e25da94d
Author: Dave Love <address@hidden>
Date: Tue Oct 3 19:14:50 2017 +0100
gnu: Add imb-openmpi.
* gnu/packages/benchmark.scm (imb): New procedure.
(imb-openmpi): New variable.
Signed-off-by: Ludovic Courtès <address@hidden>
---
gnu/packages/benchmark.scm | 67 +++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 66 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index 136f141..feed7b5 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Marius Bakke <address@hidden>
+;;; Copyright © 2017 Dave Love <address@hidden>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,8 +25,10 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages linux)
#:use-module (gnu packages maths)
+ #:use-module (gnu packages mpi)
#:use-module (gnu packages python)
- #:use-module (gnu packages storage))
+ #:use-module (gnu packages storage)
+ #:use-module (ice-9 match))
(define-public fio
(package
@@ -103,3 +106,65 @@ is to write a job file matching the I/O load one wants to
simulate.")
;; are covered by other licenses.
(license (list license:gpl2 license:gpl2+ license:bsd-2
license:public-domain))))
+
+;; Parameterized in anticipation of m(va)pich support
+(define (imb mpi)
+ (package
+ (name (string-append "imb-" (package-name mpi)))
+ (version "2017.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (match (string-split version #\.)
+ ((major minor)
+ (string-append
+
"https://software.intel.com/sites/default/files/managed/76/6c/IMB_"
+ major "_Update" minor ".tgz"))))
+ (sha256 (base32
"11nczxm686rsppmw9gjc2p2sxc0jniv5kv18yxm1lzp5qfh5rqyb"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("mpi" ,mpi)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check)
+ (replace 'build
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((mpi-home (assoc-ref inputs "mpi")))
+ (zero?
+ ;; Not safe for parallel build
+ (system* "make" "-C" "imb/src" "-f" "make_mpich" "SHELL=sh"
+ (string-append "MPI_HOME=" mpi-home))))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (string-append out "/share/doc/" ,name))
+ (bin (string-append out "/bin")))
+ (with-directory-excursion "imb/src"
+ (for-each
+ (lambda (file)
+ (install-file file bin))
+ '("IMB-IO" "IMB-EXT" "IMB-MPI1" "IMB-NBC" "IMB-RMA")))
+ (mkdir-p doc)
+ (with-directory-excursion "imb"
+ (copy-recursively "license" doc)))
+ #t)))))
+ (home-page
"https://software.intel.com/en-us/articles/intel-mpi-benchmarks")
+ (synopsis "Intel MPI Benchmarks")
+ (description
+ "This package provides benchmarks for implementations of the @dfn{Message
+Passing Interface} (MPI). It contains MPI performance measurements for
+point-to-point and global communication, and file, operations for a range of
+message sizes. The generated benchmark data fully characterize:
+
address@hidden
address@hidden
+Performance of a cluster system, including node performance, network latency,
+and throughput;
address@hidden
+Efficiency of the MPI implementation.
address@hidden itemize")
+ (license license:cpl1.0)))
+
+(define-public imb-openmpi (imb openmpi))