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