在Fortran中阅读大型HDF5数据集时,Valgrind挂起

时间:2015-07-02 16:39:59

标签: linux fortran mpi valgrind hdf5

我有一个用Fortran编写的应用程序,它使用并行HDF5进行输入/输出。

匹配的后处理代码用于以*.h5文件的形式读取其输出,并对其进行处理。

但是,当我尝试使用valgrind来检查内存泄漏时,它在读取大型数据集时会停止。

更确切地说,对于大型数据集调用H5Dread_f时会发生停顿,例如1069120加倍(其中双精度定义为H5kind_to_type(REAL64,H5_REAL_KIND)),而对于较小的数据集则可以。{/ p >

我尝试使用--enable-using-memchecker重新编译HDF5库,如here所述,但它没有帮助。

有没有人对此有更多经验?

1 个答案:

答案 0 :(得分:0)

我找到原因/解决方案:由于我的错误,我在这些HDF5例程中使用的块大小通常只有1个字节,当然这太低了。

修复此问题也使得valgrind更加快速和可用。