[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#27850] gnu: mpi: openmpi: Don't enable thread-multiple
From: |
Ludovic Courtès |
Subject: |
[bug#27850] gnu: mpi: openmpi: Don't enable thread-multiple |
Date: |
Mon, 31 Jul 2017 17:16:15 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Hi Dave,
Dave Love <address@hidden> skribis:
> The performance penalty for thread-multiple is supposed to be mitigated
> in the most recent openmpi, but not in this version, and most
> applications are happy with MPI_THREAD_FUNNELED.
>
>>From b860f75ed48c6d15e8f19b80ceede315df4db1fe Mon Sep 17 00:00:00 2001
> From: Dave Love <address@hidden>
> 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"))
This should go to a separate patch. Also please check the relative size
of each output and the “typical” closure size of openmpi users, to
motivate the need for a separate “lib” output (the “debug” output is
OK.)
I suspect some of the packages that depend on openmpi need to be changed
to have a dependency on both the “out” and the “lib” outputs, no?
> (arguments
> `(#:configure-flags `("--enable-static"
>
> - "--enable-mpi-thread-multiple"
Should we upgrade our openmpi package instead of doing this?
> + (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."))))
Nitpick: we use literal strings in ‘description’ and ‘strings’ so that
they are picked up by xgettext for translation.
Thanks for looking into this!
Ludo’.