#1053: CarpetIOHDF5: it doesn't honor out3D_every parameter ----------------------+----------------------------------------------------- Reporter: bmundim | Owner: eschnett Type: defect | Status: new Priority: major | Milestone: Component: Carpet | Version: Resolution: | Keywords: CarpetIOHDF5 out3D_every ----------------------+-----------------------------------------------------
Comment (by bmundim):
The simulation stops by runtime, that it is set to 0.1min or 6.0s. Whenever I rerun the test I end up with a slightly different iteration number for when the checkpoint happens. I suspect that my job competition for resources in my machine leads to this small differences for such a short run.
In any case I reran the test. I got the following:
{{{ 000/CarpetWaveToyCheckpointTest:
h5ls wavetoy::scalarevolve.xyz.h5 Parameters\ and\ Global\ Attributes Group WAVETOY::phi\ it=0\ tl=0\ rl=0 Dataset {43, 43, 43} WAVETOY::phi\ it=0\ tl=0\ rl=1 Dataset {41, 41, 41} WAVETOY::phi\ it=0\ tl=0\ rl=2 Dataset {33, 33, 33} WAVETOY::phi\ it=0\ tl=0\ rl=3 Dataset {33, 33, 33} WAVETOY::phi\ it=0\ tl=0\ rl=4 Dataset {33, 33, 33} WAVETOY::phi\ it=0\ tl=0\ rl=5 Dataset {33, 33, 33} WAVETOY::phi\ it=0\ tl=0\ rl=6 Dataset {33, 33, 33} WAVETOY::phi\ it=0\ tl=0\ rl=7 Dataset {33, 33, 33} WAVETOY::phi\ it=0\ tl=0\ rl=8 Dataset {33, 33, 33} WAVETOY::phi\ it=128\ tl=0\ rl=1 Dataset {41, 41, 41} WAVETOY::phi\ it=128\ tl=0\ rl=2 Dataset {33, 33, 33} WAVETOY::phi\ it=128\ tl=0\ rl=3 Dataset {33, 33, 33} WAVETOY::phi\ it=128\ tl=0\ rl=4 Dataset {33, 33, 33} WAVETOY::phi\ it=128\ tl=0\ rl=5 Dataset {33, 33, 33} WAVETOY::phi\ it=128\ tl=0\ rl=6 Dataset {33, 33, 33} WAVETOY::phi\ it=128\ tl=0\ rl=7 Dataset {33, 33, 33} WAVETOY::phi\ it=128\ tl=0\ rl=8 Dataset {33, 33, 33}
}}}
the first simulation dumped the last 3d iteration at it=128, as asked in the par file.
{{{ CheckPoints: ls checkpoint.chkpt.it_252.h5 checkpoint.chkpt.it_506.h5
h5ls checkpoint.chkpt.it_252.h5
... CARPETIOHDF5::last_output_iteration_slice[0]\ it=252\ tl=0 Dataset {1} CARPETIOHDF5::last_output_iteration_slice[1]\ it=252\ tl=0 Dataset {1} CARPETIOHDF5::last_output_iteration_slice[2]\ it=252\ tl=0 Dataset {1} CARPETIOHDF5::last_output_time_slice[0]\ it=252\ tl=0 Dataset {1} CARPETIOHDF5::last_output_time_slice[1]\ it=252\ tl=0 Dataset {1} CARPETIOHDF5::last_output_time_slice[2]\ it=252\ tl=0 Dataset {1} CARPETIOHDF5::next_output_iteration\ it=252\ tl=0 Dataset {1} CARPETIOHDF5::next_output_time\ it=252\ tl=0 Dataset {1} CARPETIOHDF5::this_iteration\ it=252\ tl=0 Dataset {1} CARPETIOHDF5::this_iteration_slice[0]\ it=252\ tl=0 Dataset {1} CARPETIOHDF5::this_iteration_slice[1]\ it=252\ tl=0 Dataset {1} CARPETIOHDF5::this_iteration_slice[2]\ it=252\ tl=0 Dataset {1} ... }}}
and
{{{ h5dump checkpoint.chkpt.it_252.h5 | grep -A 80 'CARPETIOHDF5::this_iteration_slice' DATASET "CARPETIOHDF5::this_iteration_slice[0] it=252 tl=0" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } ATTRIBUTE "carpet_mglevel" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "group_timelevel" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "ioffset" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } } ATTRIBUTE "ioffsetdenom" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 1 } } ATTRIBUTE "iorigin" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } } ATTRIBUTE "level" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "name" { DATATYPE H5T_STRING { STRSIZE 37; STRPAD H5T_STR_NULLTERM; CSET H5T_CSET_ASCII; CTYPE H5T_C_S1; } DATASPACE SCALAR DATA { (0): "CARPETIOHDF5::this_iteration_slice[0]" } } ATTRIBUTE "time" { DATATYPE H5T_IEEE_F64LE DATASPACE SCALAR DATA { (0): 0.125 } } ATTRIBUTE "timestep" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 252 } } } DATASET "CARPETIOHDF5::this_iteration_slice[1] it=252 tl=0" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } ATTRIBUTE "carpet_mglevel" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "group_timelevel" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "ioffset" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } } ATTRIBUTE "ioffsetdenom" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 1 } } ATTRIBUTE "iorigin" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } } ATTRIBUTE "level" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "name" { DATATYPE H5T_STRING { STRSIZE 37; STRPAD H5T_STR_NULLTERM; CSET H5T_CSET_ASCII; CTYPE H5T_C_S1; } DATASPACE SCALAR DATA { (0): "CARPETIOHDF5::this_iteration_slice[1]" } } ATTRIBUTE "time" { DATATYPE H5T_IEEE_F64LE DATASPACE SCALAR DATA { (0): 0.125 } } ATTRIBUTE "timestep" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 252 } } } DATASET "CARPETIOHDF5::this_iteration_slice[2] it=252 tl=0" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 128 } ATTRIBUTE "carpet_mglevel" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "group_timelevel" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "ioffset" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } } ATTRIBUTE "ioffsetdenom" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 1 } } ATTRIBUTE "iorigin" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } } ATTRIBUTE "level" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "name" { DATATYPE H5T_STRING { STRSIZE 37; STRPAD H5T_STR_NULLTERM; CSET H5T_CSET_ASCII; CTYPE H5T_C_S1; } DATASPACE SCALAR DATA { (0): "CARPETIOHDF5::this_iteration_slice[2]" } } ATTRIBUTE "time" { DATATYPE H5T_IEEE_F64LE DATASPACE SCALAR DATA { (0): 0.125 } } ATTRIBUTE "timestep" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 252 } } }
}}} from this checkpoint data I can see that this_iteration_slice is set to 0, 0 and 128 for 1D, 2D and 3D, respectively. The last_output_iteration_slice seems to have the same values as this_iteration_slice:
{{{ h5dump checkpoint.chkpt.it_252.h5 | grep -A 80 'CARPETIOHDF5::last_output_iteration_slice' DATASET "CARPETIOHDF5::last_output_iteration_slice[0] it=252 tl=0" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } ATTRIBUTE "carpet_mglevel" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "group_timelevel" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "ioffset" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } } ATTRIBUTE "ioffsetdenom" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 1 } } ATTRIBUTE "iorigin" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } } ATTRIBUTE "level" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "name" { DATATYPE H5T_STRING { STRSIZE 44; STRPAD H5T_STR_NULLTERM; CSET H5T_CSET_ASCII; CTYPE H5T_C_S1; } DATASPACE SCALAR DATA { (0): "CARPETIOHDF5::last_output_iteration_slice[0]" } } ATTRIBUTE "time" { DATATYPE H5T_IEEE_F64LE DATASPACE SCALAR DATA { (0): 0.125 } } ATTRIBUTE "timestep" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 252 } } } DATASET "CARPETIOHDF5::last_output_iteration_slice[1] it=252 tl=0" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } ATTRIBUTE "carpet_mglevel" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "group_timelevel" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "ioffset" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } } ATTRIBUTE "ioffsetdenom" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 1 } } ATTRIBUTE "iorigin" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } } ATTRIBUTE "level" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "name" { DATATYPE H5T_STRING { STRSIZE 44; STRPAD H5T_STR_NULLTERM; CSET H5T_CSET_ASCII; CTYPE H5T_C_S1; } DATASPACE SCALAR DATA { (0): "CARPETIOHDF5::last_output_iteration_slice[1]" } } ATTRIBUTE "time" { DATATYPE H5T_IEEE_F64LE DATASPACE SCALAR DATA { (0): 0.125 } } ATTRIBUTE "timestep" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 252 } } } DATASET "CARPETIOHDF5::last_output_iteration_slice[2] it=252 tl=0" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 128 } ATTRIBUTE "carpet_mglevel" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "group_timelevel" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "ioffset" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } } ATTRIBUTE "ioffsetdenom" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 1 } } ATTRIBUTE "iorigin" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 1 ) / ( 1 ) } DATA { (0): 0 } } ATTRIBUTE "level" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 0 } } ATTRIBUTE "name" { DATATYPE H5T_STRING { STRSIZE 44; STRPAD H5T_STR_NULLTERM; CSET H5T_CSET_ASCII; CTYPE H5T_C_S1; } DATASPACE SCALAR DATA { (0): "CARPETIOHDF5::last_output_iteration_slice[2]" } } ATTRIBUTE "time" { DATATYPE H5T_IEEE_F64LE DATASPACE SCALAR DATA { (0): 0.125 } } ATTRIBUTE "timestep" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR DATA { (0): 252 } } }
}}}
which is odd. In any case, at least the 3d slice seems to correctly indicate its last output (while 2d and 1d don't). Now if we move to directory 001 output we have:
{{{ 001/CarpetWaveToyCheckpointTest:
h5ls wavetoy::scalarevolve.xyz.h5 Parameters\ and\ Global\ Attributes Group WAVETOY::phi\ it=252\ tl=0\ rl=6 Dataset {33, 33, 33} WAVETOY::phi\ it=252\ tl=0\ rl=7 Dataset {33, 33, 33} WAVETOY::phi\ it=252\ tl=0\ rl=8 Dataset {33, 33, 33} WAVETOY::phi\ it=380\ tl=0\ rl=6 Dataset {33, 33, 33} WAVETOY::phi\ it=380\ tl=0\ rl=7 Dataset {33, 33, 33} WAVETOY::phi\ it=380\ tl=0\ rl=8 Dataset {33, 33, 33}
h5ls wavetoy::scalarevolve.xy.h5 Parameters\ and\ Global\ Attributes Group WAVETOY::phi\ it=256\ tl=0\ rl=0 Dataset {43, 43} WAVETOY::phi\ it=256\ tl=0\ rl=1 Dataset {41, 41} WAVETOY::phi\ it=256\ tl=0\ rl=2 Dataset {33, 33} WAVETOY::phi\ it=256\ tl=0\ rl=3 Dataset {33, 33} WAVETOY::phi\ it=256\ tl=0\ rl=4 Dataset {33, 33} WAVETOY::phi\ it=256\ tl=0\ rl=5 Dataset {33, 33} WAVETOY::phi\ it=256\ tl=0\ rl=6 Dataset {33, 33} WAVETOY::phi\ it=256\ tl=0\ rl=7 Dataset {33, 33} WAVETOY::phi\ it=256\ tl=0\ rl=8 Dataset {33, 33} WAVETOY::phi\ it=384\ tl=0\ rl=1 Dataset {41, 41} WAVETOY::phi\ it=384\ tl=0\ rl=2 Dataset {33, 33} WAVETOY::phi\ it=384\ tl=0\ rl=3 Dataset {33, 33} WAVETOY::phi\ it=384\ tl=0\ rl=4 Dataset {33, 33} WAVETOY::phi\ it=384\ tl=0\ rl=5 Dataset {33, 33} WAVETOY::phi\ it=384\ tl=0\ rl=6 Dataset {33, 33} WAVETOY::phi\ it=384\ tl=0\ rl=7 Dataset {33, 33} WAVETOY::phi\ it=384\ tl=0\ rl=8 Dataset {33, 33}
}}} that is: the file containing 2d slices starts correctly at it=256 while the one with 3d slices starts at the same iteration as the checkpoint iteration, it=252, which is clearly wrong. I hope it is clearer now.
Thanks a lot!