我有一个用Fortran编写的应用程序,它使用并行HDF5进行输入/输出。
匹配的后处理代码用于以*.h5
文件的形式读取其输出,并对其进行处理。
但是,当我尝试使用valgrind来检查内存泄漏时,它在读取大型数据集时会停止。
更确切地说,对于大型数据集调用H5Dread_f
时会发生停顿,例如1069120加倍(其中双精度定义为H5kind_to_type(REAL64,H5_REAL_KIND)
),而对于较小的数据集则可以。{/ p >
我尝试使用--enable-using-memchecker
重新编译HDF5库,如here所述,但它没有帮助。
有没有人对此有更多经验?
答案 0 :(得分:0)
我找到原因/解决方案:由于我的错误,我在这些HDF5例程中使用的块大小通常只有1个字节,当然这太低了。
修复此问题也使得valgrind更加快速和可用。