[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Plea to fix the [ parallel | serial ] HDF5 problem



> Following Alastair's proposal I've adapted my previous try on this
> topic. Here is a summary of the proposed changes from my local git log:
>     Make serial and $mpi flavors co-installable
>
>     * Patch autotools configuration to add option --with-flavor which
>       append _<flavor-name> to the libraries' names
>     * Configure $mpi builds with flavor-name=$mpi
>     * link $mpi flavor development libs to
>       /usr/lib/$MULTIARCH/$mpi/libhdf5-<legacy-names> (so that existing
>       makefiles still work using -L/usr/lib/$MULTIARCH/$mpi)
>     * install $mpi flavor include files into /usr/include/$mpi (so
>       that existing makefiles still work using -I/usr/include/$mpi)
>     * Use alternatives to choose default h5p{cf}c
>     * Deactivate patch skip_cxx_inclusion.diff
>     * Remove related Conflicts / Provides from debian/control*
>
> I've successfully tested the co-installation with all packages and the
> build of an example using each flavor.
>
> All this work was done against upstream release 1.8.13. I've had to bump
> the soname to 8 because of the MPI-POSIX driver removal [1].
>
> Of course this will require a transition.
>
> Any comments before I upload to experimental?
>
> Thanks in advance,
>
> [1] <http://www.hdfgroup.org/HDF5/doc/ADGuide/Changes.html>
>
> _g.
>

Are you using ELF symbol versioning, etc. to enable multiple HDF5 libs
to be linked simultaneously?
Otherwise if two lib chains use conflicting HDF5 versions, there will be
conflicts.
e.g. XDMF uses parallel HDF5, netcdf (currently) uses serial HDF5, both
are (to be) linked
into visit. 

I'm still thinking through some details of the design, especially how to
test and how we handle
upgrades. I think we can do the following:
(1) Use HDF5_$(MPI)_$(VER) as a symbol prefix. [2]
(2) Add aliases for HDF5_$(VER) to these for the general case.
(3) Use weak symbols for the non-threadsafe (ie. parallel) versions [3]

I need to test this, though.

The test cases are that existing programs need to work, so symbols for
hdf5_* need to resolve, and
upgrades need to work, with three cases to test, serial, parallel and
both installed.

[2] http://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_25.html
[3] http://en.wikipedia.org/wiki/Weak_symbols


A.

-- 
Alastair McKinstry, <alastair@sceal.ie>, <mckinstry@debian.org>, https://diaspora.sceal.ie/u/amckinstry
A decent provision for the poor is the true test of civilization.
~Samuel Johnson, Boswell: Life of Johnson


Reply to: