>From b860f75ed48c6d15e8f19b80ceede315df4db1fe Mon Sep 17 00:00:00 2001 From: Dave Love Date: Thu, 27 Jul 2017 15:52:34 +0100 Subject: [PATCH] gnu: mpi: openmpi: Don't enable thread-multiple. gnu: mpi: openmpi-thread-multiple: Version with thread-multiple enabled. * gnu/packages/mpi.scm (openmpi): Don't enable thread-multiple. The support affects performance significantly. (openmpi-thread-multiple): New package. --- gnu/packages/mpi.scm | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 54fdd35ad..678d7dd88 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -130,10 +130,10 @@ bind processes, and much more.") (native-inputs `(("pkg-config" ,pkg-config) ("perl" ,perl))) + (outputs '("out" "lib" "debug")) (arguments `(#:configure-flags `("--enable-static" - "--enable-mpi-thread-multiple" "--enable-builtin-atomics" "--enable-mpi-ext=all" @@ -182,3 +182,19 @@ 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 (string-append (package-description openmpi) + "\ + +This version of openmpi has an implementation of MPI_Init_thread that provides +MPI_THREAD_MULTIPLE. This won't work correctly with all transports (such as +openib), and the performance is generally worse than the vanilla openmpi +package, which only provides MPI_THREAD_FUNNELED.")))) -- 2.11.0