OpenPMD
OpenPMD is an open meta-data schema that provides meaning and self-description for data sets in science and engineering.
The openPMD-api library provides a reference API for openPMD data handling. In the h5bench Benchmarking Suite we provide support for the write and read parallel benchmarks with HDF5 backend. You can find more information in OpenPMD documentation.
Configuration
You can configure the openPMD write HDF5 benchmark with the following options. Notice that if you use the configuration.json
approach to define the runs for h5bench
, we will automatically generate the final configuration file based on the options you provide in the JSON file. For standalone usage of this benchmark, you can check the input format at the end of this document and refer to its documentation.
Parameter |
Description |
---|---|
|
Operation: |
|
Directory where the file will be written to or read from |
When running with the write
operation, you have to define the following options:
dim
Number of dimensions (1
, 2
, or 3
)
balanced
Should it use a balanced load? (true
or false
)
ratio
Particle to mesh ratio
steps
Number of iteration steps
minBlock
Meshes are viewed as grid of mini blocks
grid
Grid based on the mini block
When running with the read
operation, you have to define the pattern:
pattern
Read access pattern
The minBlock
and grid
parameters must include the values for each of the dim
dimensions. For example, if "dim": "3"
(for a 3D mesh) minBlock
should contain three values, one for each dimension "16 32 32"
and grid
(which is based on the mini block) should also contain three values, one for each dimension "32 32 16"
.
For the pattern
attribute for read you can chose:
m
: metadata onlysx
: slice of the ‘rho’ mesh in the x-axis (eg.x=0
)sy
: slice of the ‘rho’ mesh in the y-axis (eg.y=0
)sz
: slice of the ‘rho’ mesh in the z-axis (eg.z=0
)fx
: slice of the 3D magnetic field in the x-axis (eg.x=0
)fy
: slice of the 3D magnetic field in the y-axis (eg.y=0
)fz
: slice of the 3D magnetic field in the z-axis (eg.z=0
)
JSON Configuration (recomended)
To run an instance of openPMD HDF5 benchmark you need to include the following in the benchmarks
property of your configuration.json
file:
{
"benchmark": "openpmd",
"configuration": {
"operation": "write",
"dim": "3",
"balanced": "true",
"ratio": "1",
"steps": "1",
"minBlock": "8 16 16",
"grid": "16 16 8"
}
},
{
"benchmark": "openpmd",
"configuration": {
"operation": "read",
"pattern": "sy"
}
}
Standalone Configuration
For standalone usage of this benchmark, this is the observed input configuration you should provide to the h5bench_openpmd_write
.
dim=3
balanced=true
ratio=1
steps=10
minBlock=16 32 32
grid=32 32 16
For the h5bench_openpmd_read
, you need to provide two arguments: the file prefix and the pattern.