Open jshafner opened 1 year ago
I am afraid there is no API to retrieve the individual values stored in the BP format for a Global Value.
You can change Iteration to be a Local Value, so that it is listed as a 1D array with the size of the number of cores). See examples/basics/values/values_write.cpp
.
// 4. Local value, varying across processes, varying over time
adios2::Variable<unsigned int> varNparts =
io.DefineVariable<unsigned int>("Nparts", {adios2::LocalValueDim});
After you build adios2 from source, in the build directory:
$ mpirun -n 4 ./bin/values_write_mpi
$ ./bin/bpls -l values.bp/ -D Nparts
uint32_t Nparts 5*{4} = 5 / 10
step 0:
block 0: [0:0] = 6 / 6
block 1: [1:1] = 10 / 10
block 2: [2:2] = 5 / 5
block 3: [3:3] = 10 / 10
step 1:
block 0: [0:0] = 9 / 9
block 1: [1:1] = 6 / 6
block 2: [2:2] = 10 / 10
block 3: [3:3] = 7 / 7
step 2:
block 0: [0:0] = 8 / 8
block 1: [1:1] = 7 / 7
block 2: [2:2] = 6 / 6
block 3: [3:3] = 7 / 7
step 3:
block 0: [0:0] = 6 / 6
block 1: [1:1] = 7 / 7
block 2: [2:2] = 7 / 7
block 3: [3:3] = 5 / 5
step 4:
block 0: [0:0] = 10 / 10
block 1: [1:1] = 5 / 5
block 2: [2:2] = 7 / 7
block 3: [3:3] = 10 / 10
I am attempting to debug an Adios issue where regions of a volume are offset by a step. I have a periodic boundary such that point j = 0 is the same as j = jmax.
When I use
bpls file.bp -d variable -s "step, i, 0, k"
and compare tobpls file.bp -d variable -s "step, i, jmax, k"
the jmax data is perfectly offset by 1 step from the 0 data. However, 1000 numerical iterations occur between steps so it must be I/O related. I am trying to debug this.To help debug the above, I tried to look at the scalar variable "Iteration" to see if perhaps I am not ending steps properly. When I do
bpls file.bp Iteration -D
I getstep 0: #coresrun instances available
Is there a way to list or inspect the various values of these instances? I could not find such way in the ReadTheDocs.