On 12 Oct 2021, at 11:56, Hapla Vaclav <[email protected]<mailto:[email protected]>> wrote:
On 8 Oct 2021, at 00:48, Jed Brown <[email protected]<mailto:[email protected]>> wrote: Adrian Croucher <[email protected]<mailto:[email protected]>> writes: hi Jed, It looked to me like a call to h5f_flush() is all that is required. Some people said there would be a performance hit (maybe ~ 10% slower), which would be the trade-off for increased reliability. So if this were made available via PetscViewerFlush(), I'd probably make it optional in my code so the user could decide for themselves if it was worth it for them. Do you think flushing would be a better option than closing/opening the file between writes? Yes, less costly at scale (metadata like opening files can be expensive on parallel file systems), and simpler to manage from your code. I have just come across this a couple of days ago. I think PetscViewerFlush() [no-op for HDF5 currently] should call H5Fflush() for sure. I can do it now. https://gitlab.com/petsc/petsc/-/merge_requests/4445 I agree with Jed that closing/opening can have significant overhead on large number of processes due to metadata processing. Thanks, Vaclav
