gnu: openmpi: Add separate variant with thread-multiple support.
authorDave Love <fx@gnu.org>
Thu, 27 Jul 2017 14:52:34 +0000 (15:52 +0100)
committerLudovic Courtès <ludo@gnu.org>
Mon, 21 Aug 2017 15:04:54 +0000 (17:04 +0200)
* gnu/packages/mpi.scm (openmpi)[arguments]: Remove
"--enable-mpi-thread-multiple".
(openmpi-thread-multiple): New variable.

Signed-off-by: Ludovic Courtès <ludovic.courtes@inria.fr>
gnu/packages/mpi.scm

index d6423aa..ac7b9b2 100644 (file)
@@ -135,7 +135,6 @@ bind processes, and much more.")
     (arguments
      `(#:configure-flags `("--enable-static"
 
-                           "--enable-mpi-thread-multiple"
                            "--enable-builtin-atomics"
 
                            "--enable-mpi-ext=all"
@@ -184,3 +183,17 @@ best MPI library available.  Open MPI offers advantages for system and
 software vendors, application developers and computer science researchers.")
     ;; See file://LICENSE
     (license bsd-2)))
+
+(define-public openmpi-thread-multiple
+  (package
+    (inherit openmpi)
+    (name "openmpi-thread-multiple")
+    (arguments
+     (substitute-keyword-arguments (package-arguments openmpi)
+       ((#:configure-flags flags)
+        `(cons "--enable-mpi-thread-multiple" ,flags))))
+    (description " This version of Open@tie{}MPI has an implementation of
+@code{MPI_Init_thread} that provides @code{MPI_THREAD_MULTIPLE}.  This won't
+work correctly with all transports (such as @code{openib}), and the
+performance is generally worse than the vanilla @code{openmpi} package, which
+only provides @code{MPI_THREAD_FUNNELED}.")))