Hyper IO库是一类提供系统软件和应用软件之间连接的软件,提供科学数据的存储描述格式定义和文件操作,在高性能计算应用以及大量后处理、可视化及分析框架中广泛应用,同时考虑兼容其他应用,提供文件格式转换能力。
已安装Hyper IO库,已安装应用运行所需第三方库(如MPI、PnetCDF、NetCDF、HDF5)。
使用Hyper IO库时不支持同时叠加Hyper IO中的AdhocFS或IO转发特性。
应用名称 |
加速库 |
JSON配置文件 |
---|---|---|
WRF |
libock_shore_pnetcdf.so |
wrf.json |
NEMO |
libock_shore_netcdf.so |
nemo.json |
Grapes |
libock_shore_mpiio.so |
grapes.json |
LAMMPS |
libock_shore_hdf5.so/libock_shore_pnetcdf.so |
lammps.json |
QE |
libock_shore_hdf5.so |
qe.json |
export OCK_IO_CONFIG=/opt/IO_Middleware/IO_Middleware_2.5.0_aarch64/conf/xxx.json
以Grapes为例,执行命令为export OCK_IO_CONFIG=/opt/IO_Middleware/IO_Middleware_2.5.0_aarch64/conf/grapes.json
JSON配置文件属主为当前用户,且要有读权限。
cp /opt/IO_Middleware/IO_Middleware_2.5.0_aarch64/conf/xxx.json /userpath/to/xxx.json
vi /userpath/to/xxx.json
名称 |
描述 |
类型 |
缺省值 |
|
---|---|---|---|---|
数据集整体通用信息(GENERAL) |
LOG_FLOW |
打印FlOW模块日志。 |
String
|
OFF |
LOG_PROCESSOR |
打印PROCESSOR模块日志。 |
String
|
OFF |
|
LOG_BRIDGE |
打印BRIDGE模块日志。 |
String
|
OFF |
|
LOG_INTERCEPTOR |
打印所有INTERCEPTOR模块日志。 |
String
|
OFF |
|
LOG_CONFIG |
打印CONFIG模块日志。 |
String
|
OFF |
|
TRANSCACHESIZE |
数据总量达到Cache聚合成一次写。取值范围为[0,128],单位MB,缺省值为0,表示不聚合。 |
Integer |
0 |
|
COMPRESSMETHOD |
数据压缩方法。 取值范围为[1,2],缺省值为1。 |
Integer
|
1 |
|
COMPRESSLEVEL |
数据压缩级别。 取值范围为[0,5],缺省值为0,表示不压缩。 数据压缩级别越高,数据压缩比越高。 |
Integer |
0 |
|
WITHOUTGROUP |
不配置group信息接入Hyper IO库。 |
String
|
OFF |
|
数据集访问模式信息(DATA_ACCESS_PATTERN) |
FIXED |
应用中所有Entity的写操作在每个step间是否保持不变。 |
Boolean
|
false |
RANDOM |
应对粒子型应用中不要求保证粒子顺序的场景。 |
Boolean
|
false |
|
WRITE_AGGREGATE_STEPS |
元数据多少个step聚合成一次写,避免IO出现频率高且数据量小的情况。 取值范围为[1,64]。 |
Integer |
1 |
|
WRITE_AGGREGATE_RANKS |
元数据多少个rank聚合成一个写。 取值范围为[1,64]。 |
Integer |
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | { "DATASET": { "GENERAL": { "LOG_FLOW" : "OFF", "LOG_PROCESSOR": "OFF", "LOG_BRIDGE" : "OFF", "LOG_INTERCEPTOR" : "OFF", "LOG_CONFIG" : "OFF", "TRANSCACHESIZE" : 0, "COMPRESSMETHOD" : 1, "COMPRESSLEVEL" : 0, "WITHOUTGROUP" : OFF, "DATA_ACCESS_PATTERN": { "FIXED": "false", "RANDOM": false, "WRITE_AGGREGATE_STEPS": 1, "WRITE_AGGREGATE_RANKS": 1 } }, "GROUPS": [ { "GROUPNAME": "xxxxx", "FILEWHITELIST" : "xxxxx", "ENTITIES": [ { "NAME": "xxxxx", "SHUFFLE": false } ] } ] } } |
以Grapes为例,执行命令为mpirun -N 80 -x LD_PRELOAD=/opt/IO_Middleware/IO_Middleware_2.5.0_aarch64/lib/libock_shore_mpiio.so -x OMP_NUM_THREADS=1 -mca pml ucx -mca btl ^vader,tcp,openib,uct -x UCX_TLS=self,sm,rc -x UCX_NET_DEVICES=mlx5_0:1 -x UCX_WARN_UNUSED_ENV_VARS=0 ./grapes_global.exe,执行完成后生成以shore结尾的目录和与原文件同名的文件。
/opt/IO_Middleware/IO_Middleware_2.5.0_aarch64/bin/ock_shore_convertor [--format <目标转换格式(当前仅支持netcdf)>] [-t <1~8>(设置线程数) ] [-d (无参数,设置是否开启数据集压缩,默认不开启)] 共享存储目录输入shore文件或文件所在目录 目标格式文件输出目录
mpirun -hostfile $HOSTFILE -np 进程数 /opt/IO_Middleware/IO_Middleware_2.5.0_aarch64/bin/ock_shore_convertor [--format <目标转换格式(当前仅netcdf)>] [-t <1~8>(设置线程数) ] [-d (无参数,设置是否开启数据集压缩,默认不开启)] 共享存储目录输入shore文件或文件所在目录 目标格式文件输出目录
unset OCK_IO_CONFIG
应用 |
版本 |
---|---|
WRF |
4.2.2版本 |
LAMMPS |
版本30Nov20 |
Grapes |
|
NEMO |
4.2版本 |
QE |
6.4.1版本 |