h5diff >= 1.8.7 is really slow

Hello,

I have noticed that starting HDF5 1.8.7, h5diff is really slow with my
input files.

Examples:

$ time ./hdf5-1.8.6-linux-x86_64-static/bin/h5diff file1.h5 file2.h5
real 0m0.314s
user 0m0.276s
sys 0m0.036s

$ time ./hdf5-1.8.7-linux-x86_64-static/bin/h5diff file1.h5 file2.h5
real 3m14.655s
user 3m14.404s
sys 0m0.084s

$ time ./hdf5-1.8.8-linux-x86_64-static/bin/h5diff file1.h5 file2.h5
real 2m57.035s
user 2m56.851s
sys 0m0.048s

$ time ./hdf5-1.8.9-linux-x86_64-static/bin/h5diff file1.h5 file2.h5
real 3m5.956s
user 3m5.488s
sys 0m0.152s

With these input files, it is about 500 times slower.
I have tried the --nan option but it does not change anything.

After recompiling the library, I have profiled the execution. The
gprof outputs are in attachment.
We can see that a large amount of time is spent in some functions like
H5I_find_id() and H5F_get_objects_cb(). These functions are also
called a huge number of times compared the 1.8.6 version.
So I think there is something wrong going on in the library.

I have checked my input files with h5check and it says they are valid.
In attachment is an input file with which I am able to reproduce the
bug (comparing this file to itself is enough to reproduce the bug).

Let me know if you need more information.
Thank you.

Regards,

Xavier

gprof_output_1.8.6.txt.bz2 (36.2 KB)

gprof_output_1.8.7.txt.bz2 (37 KB)

gprof_output_1.8.9.txt.bz2 (37.7 KB)

test.h5.bz2 (114 KB)

Xavier,

Thank you for reporting the problem. We will investigate.

Elena

···

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Elena Pourmal The HDF Group http://hdfgroup.org
1800 So. Oak St., Suite 203, Champaign IL 61820
217.531.6112
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

On Sep 3, 2012, at 4:11 PM, Xavier Besseron wrote:

Hello,

I have noticed that starting HDF5 1.8.7, h5diff is really slow with my
input files.

Examples:

$ time ./hdf5-1.8.6-linux-x86_64-static/bin/h5diff file1.h5 file2.h5
real 0m0.314s
user 0m0.276s
sys 0m0.036s

$ time ./hdf5-1.8.7-linux-x86_64-static/bin/h5diff file1.h5 file2.h5
real 3m14.655s
user 3m14.404s
sys 0m0.084s

$ time ./hdf5-1.8.8-linux-x86_64-static/bin/h5diff file1.h5 file2.h5
real 2m57.035s
user 2m56.851s
sys 0m0.048s

$ time ./hdf5-1.8.9-linux-x86_64-static/bin/h5diff file1.h5 file2.h5
real 3m5.956s
user 3m5.488s
sys 0m0.152s

With these input files, it is about 500 times slower.
I have tried the --nan option but it does not change anything.

After recompiling the library, I have profiled the execution. The
gprof outputs are in attachment.
We can see that a large amount of time is spent in some functions like
H5I_find_id() and H5F_get_objects_cb(). These functions are also
called a huge number of times compared the 1.8.6 version.
So I think there is something wrong going on in the library.

I have checked my input files with h5check and it says they are valid.
In attachment is an input file with which I am able to reproduce the
bug (comparing this file to itself is enough to reproduce the bug).

Let me know if you need more information.
Thank you.

Regards,

Xavier
<gprof_output_1.8.6.txt.bz2><gprof_output_1.8.7.txt.bz2><gprof_output_1.8.9.txt.bz2><test.h5.bz2>_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

We are also seeing this slowdown. I did a little looking and some of the issue seems to be in H5O_attr_find_opened_attr. There is a call to "num_open_attr = H5F_get_obj_count(loc->file, H5F_OBJ_ATTR | H5F_OBJ_LOCAL, FALSE);"

On hdf5 >= 1.8.7, the num_open_attr count keeps increasing on each call. For one particular problem I am running, it returns 21153 at the end of execution. However, in hdf5 < 1.8.7, the num_open_attr is always 0.

Hope this helps track down the issue; h5diff is unusable for us at the current time.

--Greg

Hi Gregory,

We've identified the issue and put it in the bug tracking system.
We will look into the issue.

If it's possible to send us your HDF5 file, we'd appreciate.

Thanks for your input!

Jonathan

···

On 10/16/2012 12:50 PM, Gregory Sjaardema wrote:

We are also seeing this slowdown. I did a little looking and some of the issue seems to be in H5O_attr_find_opened_attr. There is a call to "num_open_attr = H5F_get_obj_count(loc->file, H5F_OBJ_ATTR | H5F_OBJ_LOCAL, FALSE);"

On hdf5 >= 1.8.7, the num_open_attr count keeps increasing on each call. For one particular problem I am running, it returns 21153 at the end of execution. However, in hdf5 < 1.8.7, the num_open_attr is always 0.

Hope this helps track down the issue; h5diff is unusable for us at the current time.

--Greg

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Hello,

I would like to give a status update on the h5diff slowness issue.

Background: 1.8.6 and earlier versions of h5diff had a bug in the attributes comparison. In some cases attributes were not compared at all :wink: When the bug was removed in 1.8.7, a performance issue in HDF5 was exposed. The performance deficiencies in the h5diff code were also not ruled out.

We are actively working on the problem, but unfortunately will not be able to provide a fix in the upcoming 1.8.10 release. We will inform the FORUM as soon as the root(s) of the problem and the possible solutions are identified.

Thank you!

Elena

···

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Elena Pourmal The HDF Group http://hdfgroup.org
1800 So. Oak St., Suite 203, Champaign IL 61820
217.531.6112
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

On Oct 16, 2012, at 3:44 PM, Jonathan Kim wrote:

Hi Gregory,

We've identified the issue and put it in the bug tracking system.
We will look into the issue.

If it's possible to send us your HDF5 file, we'd appreciate.

Thanks for your input!

Jonathan

On 10/16/2012 12:50 PM, Gregory Sjaardema wrote:

We are also seeing this slowdown. I did a little looking and some of the issue seems to be in H5O_attr_find_opened_attr. There is a call to "num_open_attr = H5F_get_obj_count(loc->file, H5F_OBJ_ATTR | H5F_OBJ_LOCAL, FALSE);"

On hdf5 >= 1.8.7, the num_open_attr count keeps increasing on each call. For one particular problem I am running, it returns 21153 at the end of execution. However, in hdf5 < 1.8.7, the num_open_attr is always 0.

Hope this helps track down the issue; h5diff is unusable for us at the current time.

--Greg

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Hello Greg and Xavier,

We created a development snapshot with a fix for the h5diff
performance issue that you reported (described by Elena below).

You can get to the snapshot from either The HDF Group Downloads
page,
    http://www.hdfgroup.org/downloads/

or directly from here:
    http://www.hdfgroup.uiuc.edu/ftp/pub/outgoing/hdf5/snapshots/v18/

Scroll down and you will find the "hdf5-1.8.11-snap0" snapshot files
containing the fix:

- hdf5-1.8.11-snap0-RELEASE.txt
- hdf5-1.8.11-snap0.tar.bz2
- hdf5-1.8.11-snap0.tar.gz
- hdf5-1.8.11-snap0.tar.md5
- hdf5-1.8.11-snap0_docs.tar

Please let us know whether or not this resolves the issue for
you.

Thanks!
-Barbara
help@hdfgroup.org

Hello,

I would like to give a status update on the h5diff slowness issue.

Background: 1.8.6 and earlier versions of h5diff had a bug in the

attributes comparison. In some cases attributes were not compared at all
:wink: When the bug was removed in 1.8.7, a performance issue in HDF5 was
exposed. The performance deficiencies in the h5diff code were also not
ruled out.

We are actively working on the problem, but unfortunately will not be

able to provide a fix in the upcoming 1.8.10 release. We will inform the
FORUM as soon as the root(s) of the problem and the possible solutions
are identified.

···

On Thu, 18 Oct 2012, Elena Pourmal wrote:

Thank you!

Elena

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Elena Pourmal The HDF Group http://hdfgroup.org
1800 So. Oak St., Suite 203, Champaign IL 61820
217.531.6112
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

On Oct 16, 2012, at 3:44 PM, Jonathan Kim wrote:

Hi Gregory,

We've identified the issue and put it in the bug tracking system.
We will look into the issue.

If it's possible to send us your HDF5 file, we'd appreciate.

Thanks for your input!

Jonathan

On 10/16/2012 12:50 PM, Gregory Sjaardema wrote:

We are also seeing this slowdown. I did a little looking and some of the issue seems to be in H5O_attr_find_opened_attr. There is a call to "num_open_attr = H5F_get_obj_count(loc->file, H5F_OBJ_ATTR | H5F_OBJ_LOCAL, FALSE);"

On hdf5 >= 1.8.7, the num_open_attr count keeps increasing on each call. For one particular problem I am running, it returns 21153 at the end of execution. However, in hdf5 < 1.8.7, the num_open_attr is always 0.

Hope this helps track down the issue; h5diff is unusable for us at the current time.

--Greg

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

--
Barbara L. Jones
bljones@hdfgroup.org

Hello Barbara,

I have tried the development snapshot you provided. It works well and this
solves my issue.
Thanks for fixing this bug!

Can you tell us when a new version of HDF5 with this fix included will be
released?

Xavier

···

On Mon, Oct 29, 2012 at 5:29 PM, Barbara Jones <bljones@hdfgroup.org> wrote:

Hello Greg and Xavier,

We created a development snapshot with a fix for the h5diff
performance issue that you reported (described by Elena below).

You can get to the snapshot from either The HDF Group Downloads
page,
    http://www.hdfgroup.org/downloads/

or directly from here:
    http://www.hdfgroup.uiuc.edu/ftp/pub/outgoing/hdf5/snapshots/v18/

Scroll down and you will find the "hdf5-1.8.11-snap0" snapshot files
containing the fix:

- hdf5-1.8.11-snap0-RELEASE.txt
- hdf5-1.8.11-snap0.tar.bz2
- hdf5-1.8.11-snap0.tar.gz
- hdf5-1.8.11-snap0.tar.md5
- hdf5-1.8.11-snap0_docs.tar

Please let us know whether or not this resolves the issue for
you.

Thanks!
-Barbara
help@hdfgroup.org

On Thu, 18 Oct 2012, Elena Pourmal wrote:

> Hello,
>
> I would like to give a status update on the h5diff slowness issue.
>
> Background: 1.8.6 and earlier versions of h5diff had a bug in the
attributes comparison. In some cases attributes were not compared at all
:wink: When the bug was removed in 1.8.7, a performance issue in HDF5 was
exposed. The performance deficiencies in the h5diff code were also not
ruled out.
>
> We are actively working on the problem, but unfortunately will not be
able to provide a fix in the upcoming 1.8.10 release. We will inform the
FORUM as soon as the root(s) of the problem and the possible solutions
are identified.
>
> Thank you!
>
> Elena
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Elena Pourmal The HDF Group http://hdfgroup.org
> 1800 So. Oak St., Suite 203, Champaign IL 61820
> 217.531.6112
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
>
> On Oct 16, 2012, at 3:44 PM, Jonathan Kim wrote:
>
>> Hi Gregory,
>>
>> We've identified the issue and put it in the bug tracking system.
>> We will look into the issue.
>>
>> If it's possible to send us your HDF5 file, we'd appreciate.
>>
>> Thanks for your input!
>>
>> Jonathan
>>
>> On 10/16/2012 12:50 PM, Gregory Sjaardema wrote:
>>> We are also seeing this slowdown. I did a little looking and some of
the issue seems to be in H5O_attr_find_opened_attr. There is a call to
"num_open_attr = H5F_get_obj_count(loc->file, H5F_OBJ_ATTR | H5F_OBJ_LOCAL,
FALSE);"
>>>
>>> On hdf5 >= 1.8.7, the num_open_attr count keeps increasing on each
call. For one particular problem I am running, it returns 21153 at the end
of execution. However, in hdf5 < 1.8.7, the num_open_attr is always 0.
>>>
>>> Hope this helps track down the issue; h5diff is unusable for us at the
current time.
>>>
>>> --Greg
>>>
>>>
>>> _______________________________________________
>>> Hdf-forum is for HDF software users discussion.
>>> Hdf-forum@hdfgroup.org
>>> http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
>>
>> _______________________________________________
>> Hdf-forum is for HDF software users discussion.
>> Hdf-forum@hdfgroup.org
>> http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
>
>

--
Barbara L. Jones
bljones@hdfgroup.org

The snapshot h5diff fixes the slowness I reported.
Thanks,
--Greg

···

On 10/29/12 10:29 AM, Barbara Jones wrote:

Hello Greg and Xavier,

We created a development snapshot with a fix for the h5diff
performance issue that you reported (described by Elena below).

You can get to the snapshot from either The HDF Group Downloads
page,
   http://www.hdfgroup.org/downloads/

or directly from here:
http://www.hdfgroup.uiuc.edu/ftp/pub/outgoing/hdf5/snapshots/v18/

Scroll down and you will find the "hdf5-1.8.11-snap0" snapshot files
containing the fix:

- hdf5-1.8.11-snap0-RELEASE.txt
- hdf5-1.8.11-snap0.tar.bz2
- hdf5-1.8.11-snap0.tar.gz
- hdf5-1.8.11-snap0.tar.md5
- hdf5-1.8.11-snap0_docs.tar

Please let us know whether or not this resolves the issue for
you.

Thanks!
-Barbara
help@hdfgroup.org

On Thu, 18 Oct 2012, Elena Pourmal wrote:

Hello,

I would like to give a status update on the h5diff slowness issue.

Background: 1.8.6 and earlier versions of h5diff had a bug in the

attributes comparison. In some cases attributes were not compared at all
:wink: When the bug was removed in 1.8.7, a performance issue in HDF5 was
exposed. The performance deficiencies in the h5diff code were also not
ruled out.

We are actively working on the problem, but unfortunately will not be

able to provide a fix in the upcoming 1.8.10 release. We will inform the
FORUM as soon as the root(s) of the problem and the possible solutions
are identified.

Thank you!

Elena

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Elena Pourmal The HDF Group http://hdfgroup.org
1800 So. Oak St., Suite 203, Champaign IL 61820
217.531.6112
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

On Oct 16, 2012, at 3:44 PM, Jonathan Kim wrote:

Hi Gregory,

We've identified the issue and put it in the bug tracking system.
We will look into the issue.

If it's possible to send us your HDF5 file, we'd appreciate.

Thanks for your input!

Jonathan

On 10/16/2012 12:50 PM, Gregory Sjaardema wrote:

We are also seeing this slowdown. I did a little looking and some of the issue seems to be in H5O_attr_find_opened_attr. There is a call to "num_open_attr = H5F_get_obj_count(loc->file, H5F_OBJ_ATTR > H5F_OBJ_LOCAL, FALSE);"

On hdf5 >= 1.8.7, the num_open_attr count keeps increasing on each call. For one particular problem I am running, it returns 21153 at the end of execution. However, in hdf5 < 1.8.7, the num_open_attr is always 0.

Hope this helps track down the issue; h5diff is unusable for us at the current time.

--Greg

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Xavier and All,

From now on all hdf5-1.8.-11-snap* files will contain the fix for h5diff and the fix will be in 1.8.11 (May 2013)

We are planning to release a patch for 1.8.10 (1.8.10-patch1) by mid January 2013. It will include the fix for h5diff and a fix for a Mac OS X problem of performing single I/O operations that are bigger than 2GB.

Elena

···

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Elena Pourmal
Director of Technical Services and Operations
The HDF Group
1800 So. Oak St., Suite 203,
Champaign, IL 61820


(217)531-6112 (office)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

On Oct 30, 2012, at 10:14 AM, Xavier Besseron wrote:

Hello Barbara,

I have tried the development snapshot you provided. It works well and this solves my issue.
Thanks for fixing this bug!

Can you tell us when a new version of HDF5 with this fix included will be released?

Xavier

On Mon, Oct 29, 2012 at 5:29 PM, Barbara Jones <bljones@hdfgroup.org> wrote:

Hello Greg and Xavier,

We created a development snapshot with a fix for the h5diff
performance issue that you reported (described by Elena below).

You can get to the snapshot from either The HDF Group Downloads
page,
    http://www.hdfgroup.org/downloads/

or directly from here:
    http://www.hdfgroup.uiuc.edu/ftp/pub/outgoing/hdf5/snapshots/v18/

Scroll down and you will find the "hdf5-1.8.11-snap0" snapshot files
containing the fix:

- hdf5-1.8.11-snap0-RELEASE.txt
- hdf5-1.8.11-snap0.tar.bz2
- hdf5-1.8.11-snap0.tar.gz
- hdf5-1.8.11-snap0.tar.md5
- hdf5-1.8.11-snap0_docs.tar

Please let us know whether or not this resolves the issue for
you.

Thanks!
-Barbara
help@hdfgroup.org

On Thu, 18 Oct 2012, Elena Pourmal wrote:

> Hello,
>
> I would like to give a status update on the h5diff slowness issue.
>
> Background: 1.8.6 and earlier versions of h5diff had a bug in the
attributes comparison. In some cases attributes were not compared at all
:wink: When the bug was removed in 1.8.7, a performance issue in HDF5 was
exposed. The performance deficiencies in the h5diff code were also not
ruled out.
>
> We are actively working on the problem, but unfortunately will not be
able to provide a fix in the upcoming 1.8.10 release. We will inform the
FORUM as soon as the root(s) of the problem and the possible solutions
are identified.
>
> Thank you!
>
> Elena
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Elena Pourmal The HDF Group http://hdfgroup.org
> 1800 So. Oak St., Suite 203, Champaign IL 61820
> 217.531.6112
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
>
> On Oct 16, 2012, at 3:44 PM, Jonathan Kim wrote:
>
>> Hi Gregory,
>>
>> We've identified the issue and put it in the bug tracking system.
>> We will look into the issue.
>>
>> If it's possible to send us your HDF5 file, we'd appreciate.
>>
>> Thanks for your input!
>>
>> Jonathan
>>
>> On 10/16/2012 12:50 PM, Gregory Sjaardema wrote:
>>> We are also seeing this slowdown. I did a little looking and some of the issue seems to be in H5O_attr_find_opened_attr. There is a call to "num_open_attr = H5F_get_obj_count(loc->file, H5F_OBJ_ATTR | H5F_OBJ_LOCAL, FALSE);"
>>>
>>> On hdf5 >= 1.8.7, the num_open_attr count keeps increasing on each call. For one particular problem I am running, it returns 21153 at the end of execution. However, in hdf5 < 1.8.7, the num_open_attr is always 0.
>>>
>>> Hope this helps track down the issue; h5diff is unusable for us at the current time.
>>>
>>> --Greg
>>>
>>>
>>> _______________________________________________
>>> Hdf-forum is for HDF software users discussion.
>>> Hdf-forum@hdfgroup.org
>>> http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
>>
>> _______________________________________________
>> Hdf-forum is for HDF software users discussion.
>> Hdf-forum@hdfgroup.org
>> http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
>
>

--
Barbara L. Jones
bljones@hdfgroup.org

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org