On Sonntag, 9. Dezember 2018 11:02:19 CET Chris Coutinho wrote:
For what it's worth, I use `mpi-selector` to set a system-wide MPI implementation and then switch between them. This keeps MPI libraries from clashing when I build software from source.
I'm not sure if the openSUSE packages use this method, but it works for packages I build myself really well. Are you building hdf5 and/or netcdf yourself?
Cheers, Chris
Sorry, but you have not understood the problem at hand: Currently, e.g. boost is build with openmpi2, and references the openmpi2 soname (libmpi.so.20). HDF5 is built with openmpi1, and references the openmpi1 soname(libmpi.so.12). After building, the soname are fixed in the libraries, and while you can switch e.g. between mvapich2 and openmpi1 (both use libmpi.so.12 for the soname) at runtime, you can *not* switch between openmpi1 and openmpi2. When a program uses both hdf5 and boost, it indirectly links *both* libmpi.so. 12 and libmpi.so.20. Both libraries export the same symbols, and how the dynamic linker resolves these symbols is unspecified. This is not about mpi-selector or similar mechanisms. This is about building packages which are part of the distribution. Kind regards, Stefan -- Stefan Brüns / Bergstraße 21 / 52062 Aachen home: +49 241 53809034 mobile: +49 151 50412019