【发布时间】:2013-08-14 17:15:14
【问题描述】:
我有很多与时间相关的科学数据要写,这意味着数据应该每隔几秒写入一次 hdf5 文件。我的hdf5文件结构设计如下:
- 创建多个时间组,例如 time-1-group、time-2-group、time-3-group 等...
- 在时间组中,创建了许多数据集,如DataSetA、DataSetB、DataSetC等......
- 将数据写入上述数据集。
使用的 API:HDF5-Fortran
运行这个程序,一切正常,但是速度慢,如何提高hdf5写动作效率?非常感谢。
【问题讨论】:
-
速度慢? 1B/s 慢还是 10GB/s 慢?您获得的文件系统最大写入速率的百分比是多少?你有并行文件系统吗?您的代码是否以任何方式并行化?在调用 HDF5 写入例程之前,您的程序以写入缓冲的方式做什么?这么多问题,这么少的数据......
-
@HighPerformanceMark 嗨,我不使用并行 API,只使用 h5ltmake_dataset_int() API。大部分科学数据都是二维实数据数组。
-
我倾向于同意@HighPerformanceMark - I/O 总是很慢。这个输出比什么慢?与仅将数组写入未格式化的 fortran 二进制文件相比,HDF5 输出要慢多少? (不作为推荐的文件 I/O 策略,仅作为简单的基准测试)