官方文档:https://h5bench.readthedocs.io/en/latest/buildinstructions.html
¶ 编译安装 HDFS
截至发文,这里最新版本只有1.12.1:https://www.hdfgroup.org/downloads/hdf5/
要下载1.13,需要到这里下载:https://portal.hdfgroup.org/display/support/Downloads
要按照这里面的提示安装启用了parallel的HDF5:release_docs/INSTALL_parallel
如果没有启用parallel的话,之后编译h5bench的时候会报MPI_COMM_WORLD undeclared
的错误。
其他选项是根据vol-async的文档加上的。
./configure --prefix=$(pwd)/install --enable-parallel --enable-threadsafe --enable-unsupported |
¶ 编译安装 argobots
https://github.com/pmodels/argobots
./configure --prefix=$(pwd)/install |
¶ 编译安装 VOL (Virtual Object Layer)
所有可用的VOL: https://portal.hdfgroup.org/display/support/Registered+VOL+Connectors
这里用vol-async: https://github.com/hpc-io/vol-async
cd src |
然后把Makefile里的HDF5_DIR
和ABT_DIR
分别改成HDFS和argobots的安装目录。
然后就可以编译了:
make -j$(nproc) |
注意,vol-async v1.1与 HDF5 v1.12.1不兼容。
¶ 编译 h5bench
https://github.com/hpc-io/h5bench
sudo apt install libpnetcdf-dev |
不知道为啥,就算没有-DH5BENCH_ALL=ON
,也要依赖AMReX和openPMD。
mkdir build |
如果提示mpi.h
找不到的话,就把mpi的include路径放到CPATH
环境变量中。
不需要跑sudo make install
。而且跑了之后,安装在系统目录下的h5bench
的权限位是700,所以普通用户没法执行。
注意,一定要把build目录加入到PATH
里,不然后面跑实验的时候会报这个错:
execvp error on file h5bench_write (No such file or directory) |
¶ 运行 h5bench
官方文档
https://h5bench.readthedocs.io/en/latest/running.html
https://h5bench.readthedocs.io/en/latest/vpic.html
配置文件的一些坑:
不能有多余的逗号,不然log里会报错:CRITICAL - Unable to find and parse the input configuration file
。
benchmarks
下面的每个benchmark
里的configuration
都要加上"MODE": "SYNC"
或者"MODE": "ASYNC"
,并且把"ASYNC_MODE": "NON",
去掉。不然会报这个错:h5bench - ERROR - Unable to run the benchmark: 'MODE'
。
mpi
的configuration
要去掉--oversubscribe
。
我的配置文件:
{ |
其中DIM_1
乘上1300
差不多就是生成的文件的字节数了。
我保存为了write.json
。然后运行测试:
./h5bench write.json |