I found that the dataset fill mode is always on for parallel compression, even when the fill mode is turned off explicitly by users. Below are the properties used when creating a new dataset.
- call H5Pget_fill_time with H5D_FILL_TIME_NEVER
- call H5Pset_deflate to enable compression
- the file and dataset are created in parallel mode
Adding a printf statement in function H5D__chunk_collective_fill in file H5Dchunk.c will always show this function is called on screen.
My question is why the fill mode is enforced?
This fill mode enforcement can be expensive.
Is it safe to skip it if the fill mode is turn off by users?