>From b4807fe0ea923d9a92675a063384cfb397096f26 Mon Sep 17 00:00:00 2001 From: Dave Love Date: Tue, 1 Aug 2017 17:56:03 +0100 Subject: [PATCH 1/4] gnu: Add imb-openmpi. * mpi.scm (gnu, imb): New function. (imb-openmpi): New package. --- gnu/packages/mpi.scm | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 031bce035..6120b990c 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -199,3 +199,60 @@ This version has an implementation of `MPI_Init_thread' that provides ‘MPI_THREAD_MULTIPLE’. This won't work correctly with all transports (e.g. openib), and the performance is generally worse than the vanilla openmpi package, which only provides ‘MPI_THREAD_FUNNELED’.")))) + +;; Parameterized in anticipation of m(va)pich +(define (imb mpi) + (package + (name (string-append "imb-" (package-name mpi))) + (version "2017.2") + (source + (origin + (method url-fetch) + (uri (let* ((parts (string-split version #\.) ) + (major (car parts)) + (minor (cadr parts))) + (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 + `((,(package-name mpi) ,mpi))) + (propagated-inputs + `((,(package-name mpi) ,mpi))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'check) + (replace 'build + (lambda* _ + (let ((mpi-home (dirname (dirname (which "mpicc"))))) + (zero? + ;; Not safe for parallel build + (system + (format #f "make -C imb/src -f make_mpich SHELL=sh MPI_HOME=~a" + mpi-home)))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (mkdir-p bin) + (zero? + (system + (string-append + "cd imb/src && install -m755 IMB-IO IMB-EXT IMB-MPI1 IMB-NBC IMB-RMA " + bin))))))))) + (home-page "https://software.intel.com/en-us/articles/intel-mpi-benchmarks") + (synopsis (format #f "Intel MPI Benchmarks, ~a version" (package-name mpi))) + (description (format #f "\ +A set of 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: + * Performance of a cluster system, including node performance, + network latency, and throughput; + * Efficiency of the MPI implementation. + +This is the ~a version" (package-name mpi))) + (license cpl1.0))) + +(define-public imb-openmpi (imb openmpi)) -- 2.11.0