summary refs log tree commit diff
diff options
context:
space:
mode:
authorEric Bavier <bavier@member.fsf.org>2016-03-17 09:35:38 -0500
committerEric Bavier <bavier@member.fsf.org>2016-05-12 19:59:52 +0000
commitc8378eea10fa57c207550978dcf2998f3fc6b81c (patch)
tree5978ffae3bfe46dfb5de0d5a957e66f6659ffa40
parentb8d9c93bde155af13e633f8b84b56372c2044c43 (diff)
downloadguix-c8378eea10fa57c207550978dcf2998f3fc6b81c.tar.gz
gnu: Add hdf5-openmpi.
* gnu/packages/maths.scm (hdf5-openmpi): New variable.
-rw-r--r--gnu/packages/maths.scm28
1 files changed, 27 insertions, 1 deletions
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index df21d5ea5b..fce03ac5b8 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -442,6 +442,33 @@ extremely large and complex data collections.")
     (license (license:x11-style
               "http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING"))))
 
+(define-public hdf5-parallel-openmpi
+  (package (inherit hdf5)
+    (name "hdf5-parallel-openmpi")
+    (inputs
+     `(("mpi" ,openmpi)
+       ,@(package-inputs hdf5)))
+    (arguments
+     (substitute-keyword-arguments `(#:configure-flags '("--enable-parallel")
+                                     ,@(package-arguments hdf5))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-before 'check 'patch-tests
+             (lambda _
+               ;; OpenMPI's mpirun will exit with non-zero status if it
+               ;; detects an "abnormal termination", i.e. any process not
+               ;; calling MPI_Finalize().  Since the test is explicitely
+               ;; avoiding MPI_Finalize so as not to have at_exit and thus
+               ;; H5C_flush_cache from being called, mpirun will always
+               ;; complain, so turn this test off.
+               (substitute* "testpar/Makefile"
+                 (("(^TEST_PROG_PARA.*)t_pflush1(.*)" front back)
+                  (string-append front back "\n")))
+               (substitute* "tools/h5diff/testph5diff.sh"
+                 (("/bin/sh") (which "sh")))
+               #t))))))
+    (synopsis "Management suite for data with parallel IO support")))
+
 (define-public nlopt
   (package
     (name "nlopt")
@@ -480,7 +507,6 @@ common interface for a number of different free optimization routines available
 online as well as original implementations of various other algorithms.")
     (license license:lgpl2.1+)))
 
-
 ;; For a fully featured Octave, users  are strongly recommended also to install
 ;; the following packages: texinfo, less, ghostscript, gnuplot.
 (define-public octave