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



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

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

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

更确切地说,对于大型数据集,例如1069120个doubles(其中doubles被定义为H5kind_to_type(REAL64,H5_REAL_KIND)(,在调用H5Dread_f时会发生停滞,而对于较小的数据集,这是可以的。

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

有人对此更有经验吗?

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

修复这一点也使valgrind变得更快、更实用。

最新更新