Subject: Re: [bug#27905] changes for openmpi

From: [email-masked] (Ludovic Courtès)
Date: Mon, 21 Aug 2017 17:12:06 +0200

Hi!

I’ve applied most of the patches.  I have a few remaining questions:

Dave Love <[email-masked]> skribis:

>>>From 67a59e734dd451d1e64d450dcebeb23d60996f3e Mon Sep 17 00:00:00 2001
> From: Dave Love <[email-masked]>
> Date: Mon, 31 Jul 2017 14:58:39 +0100
> Subject: [PATCH] gnu: hwloc: Replace "lib" output with "nogui", containing 
>  all but lstopo.
>
> A compute node typically wants the non-GUI programs available, which still
> have a small closure.
>
> * mpi.scm (hwloc)[outputs]: Replace lib with nogui.
> (hwloc)[arguments]: Change configure --prefix; use "nogui" output,
> not "lib"; populate "all" output.
> (openmpi)[inputs]: Use hwloc-nogui.

The downside of this is that the “nogui” output is less discoverable
(and it’s another user-visible breakage.)

Also, it shouldn’t make any difference to the closure size of openmpi
anyway, no?

>>>From 1772aa47c3bc71521340d7f569d4d906ab7f53e9 Mon Sep 17 00:00:00 2001
> From: Dave Love <[email-masked]>
> Date: Mon, 31 Jul 2017 15:01:59 +0100
> Subject: [PATCH] gnu: valgrind: Add "doc" and "openmpi" outputs.
>
> Also don't configure openmpi with valgrind; rely on the wrapper
> library from the valgrind package, like Fedora and Debian.
>
> * gnu/packages/valgrind.scm (valgrind)[outputs]: New field.
> [arguments]: Add install-doc and install-openmpi phases.
> [description]: Mention openmpi output.
> * gnu/packages/mpi.scm (openmpi)[arguments]: Don't configure with
> valgrind.

I’ve installed the doc-output-for-valgrind part, as a separate patch.

Regarding the rest:

> +         (add-after 'install 'install-openmpi
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let ((dest (format #f "~a/lib/valgrind"
> +                                 (assoc-ref outputs "openmpi"))))
> +               (mkdir-p dest)
> +               (zero?
> +                (system (format #f "mv ~a/lib/valgrind/libmpiwrap* ~a"
> +                                (assoc-ref outputs "out") dest)))))))))

Why move it to a separate output?  After all, we can keep it in “out”
since all it costs is the size of libmpiwrap.so, right?

Also, I assume that this is functionally equivalent to Open MPI’s
built-in Valgrind support, is it?

>>>From ec65c9d847c30d51bf83b49b397bc1ca20b7ca11 Mon Sep 17 00:00:00 2001
> From: Dave Love <[email-masked]>
> Date: Mon, 31 Jul 2017 17:15:19 +0100
> Subject: [PATCH 8/8] gnu: openmpi: Remove references to compiler pathnames in
>  "_info" programs.
>
> This reduces the closure greatly, but note that the Fortran .mod files are
> gfortran version-specific, so there should probably be development packages
> for each incompatible version.  (The runtime is supposed to be more-or-less
> version-independent unless the libgfortran soname changes.)  There may still
> be a case for a separate runtime output.
>
> * gnu/packages/mpi.scm (openmpi)[arguments]: Add "remove-absolute" phase.

Great, I added the URL of previous discussions on this topic.

With the changes I pushed the closure size is already at 378.5 instead
of 700.8 MiB, pretty cool!

Thank you,
Ludo’.