Bug#944192: python3-h5py: 'import h5py' produces Open MPI message to stderr

Jameson Graef Rollins jrollins at caltech.edu
Wed Nov 6 18:15:02 GMT 2019


On Wed, Nov 06 2019, Thibaut Paumard <thibaut at debian.org> wrote:
> I believe:
>   - the issue is not very serious, as it will not prevent your code from
> running fine and efficiently (it's only an informative message).

It's true that it does not make it completely unusable, but it's
certainly not usable in any command line application without hacking the
import to suppress this message, which is actually quite problematic.
So I don't think we can simply dismiss this issue...

>   - it is not in python3-h5py but somewhere in the MPI stack (I have no
> time right now for investigating, but I have seen this recently in
> another MPI code: gyoto).

It sounds like this issue should then be forwarded to whichever
underlying library is producing the message.  It's not ok for libraries
to print warnings to stderr/out, unless they can be easily suppressed by
the caller.  But this message can only be suppressed from python with
some very undstandard redirection of stderr at import time.

>   - downgrading only solves your issue because version 2.8.0 was not
> linked with MPI (and therefore may be less efficient, depending on
> hardware).

Well, in fact, importing the MPI version (2.10.0) is about x7 slower
than the non-MPI version (2.8.0), taking almost a full second for just
the import, so not really a clear performance improvement at all:


servo:~ 0$ python3 -c 'import h5py; print(h5py.__version__)'
--------------------------------------------------------------------------
[[4525,1],0]: A high-performance Open MPI point-to-point messaging module
was unable to find any relevant network interfaces:

Module: OpenFabrics (openib)
  Host: servo

Another transport will be used instead, although this may result in
lower performance.

NOTE: You can disable this warning by setting the MCA parameter
btl_base_warn_component_unused to 0.
--------------------------------------------------------------------------
2.10.0
servo:~ 0$ multitime -qq -n 10 python3 -c 'import h5py'
===> multitime results
1: -qq python3 -c "import h5py"
            Mean        Std.Dev.    Min         Median      Max
real        0.973       0.027       0.932       0.967       1.022       
user        0.200       0.017       0.159       0.201       0.221       
sys         0.068       0.014       0.034       0.069       0.093
servo:~ 0$ 


servo:~ 0$ python3 -c 'import h5py; print(h5py.__version__)'
2.8.0
servo:~ 0$ multitime -qq -n 10 python3 -c 'import h5py'
===> multitime results
1: -qq python3 -c "import h5py"
            Mean        Std.Dev.    Min         Median      Max
real        0.146       0.012       0.118       0.151       0.156       
user        0.119       0.010       0.103       0.121       0.134       
sys         0.027       0.008       0.016       0.027       0.044       
servo:~ 0$ 



More information about the debian-science-maintainers mailing list