Bug#886644: openmpi: alternatives for libmpi*.so are not multiarch-safe

Alastair McKinstry mckinstry at debian.org
Wed Jan 24 09:51:56 UTC 2018


Hi,

So, an update on status:

Both openmpi and mpich have been updated (in experimental) so that "the
usual files" are multi-arch aware:

- Libraries and .so files: in /usr/lib/$(ARCH)/openmpi/lib with symlinks
in /usr/lib/$(ARCH)

- Include files: similar, /usr/lib/$(ARCH)/openmpi/include, symlinks in
/usr/lib/$(ARCH)

- pkg-config files in /usr/lib/$(ARCH)/pkgconfig

There are now alternatives working for mpi, alternatives set
mpi-$(TRIPLET), that sets mpi to point to either openmpi or mpich.

The packages are _NOT_ multiarch aware yet, because both libopenmpi-dev
and libmpich-dev ship other files, in particular mpicc, mpifort, etc.
wrapper scripts that people use for compiling. These are switched using 
an alternatives set 'mpi'.

I request that people test these out from experimental. In particular,
I'm testing openmpi3 ahead of a planned transition.

Now, both openmpi and mpich have other binary packages, openmpi-bin and
mpich respectively, that contain binaries such as mpirun / mpiexec.  I
propose that the wrapper binaries mpicc /mpifort, etc. be moved to
these. If that is done, then these binaries can be labelled M-A: foreign
and the -dev packages as M-A: same.

Then the mpi dev files are co-installable, and everything continues to
work as before but it also becomes possible to cross-compile using the
dev files using pkg-config, avoiding the wrapper scripts (a good thing
anyway, IMO).

This should be useful for systems with accelerators (Xeon Phi, GPUs,
etc.) building mpi libraries (and mpi-using libraries) on these archs.

Comments, please.


Best regards

Alastair McKinstry



On 08/01/2018 12:01, Alastair McKinstry wrote:
> Package: openmpi
> Severity: important
>
> openmpi installs links via alternatives for libmpi.so, as does mpich and lam.
> Unfortunately its implementation is not multi-arch safe: there can be multiple multiarch implementations of libmpi.so present, but only one libmpi.so in /etc/alternatives.
>
> The best practice (see lapack, etc.) is /etc/alternatives/libmpi.so.${ARCH}.
>
> This needs to be fixed in both openmpi and mpich.
>
> lam needs to be updated to be multi-arch aware too, as it uses /etc/alternatives/libmpi.so -> a non-m-a aware location.
>
-- 
Alastair McKinstry, <alastair at sceal.ie>, <mckinstry at debian.org>, https://diaspora.sceal.ie/u/amckinstry
Misentropy: doubting that the Universe is becoming more disordered. 




More information about the debian-science-maintainers mailing list