On 23/11/2017 16:05, Andreas Beckmann wrote: > On 2017-11-23 16:28, Alastair McKinstry wrote: >> There are three _implementations_ of the Process Management Interface >> (PMI): the Slurm one, the OpenMPI ("PMix") and the MPICH one. They are >> all expected to have the same ABI. >> Unlike jpeg, the three implementations will converge on the SOVERSION(s) >> as they are in the agreed ABI. >> Hence we will have differing behaviours with libraries with the same name. > Which is *not* the case now, as they have different SOVERSIONs currently > (slurm:0, pmix:1, mpich:?nosharedlib?), so you shouldn't use > alternatives to mix them *now*. alternatives need not be implemented now (and so won't be, to mimimize code to debug), but file layout would be done to make alternatives trivial. That is, the prefix for pmix pmi libs and includes will be /usr/lib/${multiarch}/pmi/{include, lib} with a symlink for the library /usr/lib/${multiarch}/libpmi.so.2.1.3 -> /usr/lib/${multiarch}/pmi/lib/libpmi.so.2.1.3
>> Currently we have three possible 'users' of PMI: SLURM and the two MPI >> implementations, OpenMPI and MPICH. >> Each can be configured to use either its 'own' PMI or another; the >> libraries do the same thing but can have >> different implementation behaviours, (eg. MPICH calls its version >> 'simple' while PMIX from OpenMPI aims to scale well at ~10^6 processes). >> >> Its a realistic use case then to ship a simple PMI as default, but also >> allow another high-performance version to be available via alternatives, >> switchable at runtime. > In that case you would still only need one -dev package, that can be > used with the different implementations. Or does each one have different > "extensions" beyond the common API subset? We currently ship a static libpmi.a in the -dev package; this would be different in each implementation, so a different -dev is still needed. > BTW, how do you plan to do library alternatives in multiarch? Keep them > in sync? How? or Why not? See for example blas and lapack, which are in the same situation. The alternatives file in /etc/alternatives has the multiarch extension attached, eg.; liblapack.a-x86_64-linux-gnu > Andreas Alastair -- Alastair McKinstry, <alast...@sceal.ie>, <mckins...@debian.org>, https://diaspora.sceal.ie/u/amckinstry Commander Vimes didn’t like the phrase “The innocent have nothing to fear,” believing the innocent had everything to fear, mostly from the guilty but in the longer term even more from those who say things like “The innocent have nothing to fear.” - T. Pratchett, Snuff