You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#else /* only set cache for non-parallel. */
if (H5Pset_cache(fapl_id, 0, nc4_chunk_cache_nelems, nc4_chunk_cache_size,
nc4_chunk_cache_preemption) < 0)
BAIL(NC_EHDFERR);
LOG((4, "%s: set HDF raw chunk cache to size %d nelems %d preemption %f",
__func__, nc4_chunk_cache_size, nc4_chunk_cache_nelems,
nc4_chunk_cache_preemption));
#endif /* USE_PARALLEL4 */
This is only setting the cache for non-parallel I/O builds.
It's true that the cache should not be used with parallel I/O, but parallel I/O builds can also do sequential opens. So cache should be applied as long as the file was not opened parallel, even if parallel I/O was built in. This should not be an ifdef, but an if statement.
I will address this after I finish with the fortran issue.
The text was updated successfully, but these errors were encountered:
The issue was preventing HPC systems from benefiting from higher cache settings (see #1541).
Since the netCDF cache settings were not being used for parallel builds, HPC users will not see the benefits of the increased cache sizes, which is a bummer.
While working on a fortran issue (Unidata/netcdf-fortran#253) I noticed this code in hdf5open.c:
This is only setting the cache for non-parallel I/O builds.
It's true that the cache should not be used with parallel I/O, but parallel I/O builds can also do sequential opens. So cache should be applied as long as the file was not opened parallel, even if parallel I/O was built in. This should not be an ifdef, but an if statement.
I will address this after I finish with the fortran issue.
The text was updated successfully, but these errors were encountered: