Name: H5Pset_hyper_cache
Signature:
herr_t H5Pset_hyper_cache(hid_t plist, unsigned cache, unsigned limit )
Purpose:
Indicates whether to cache hyperslab blocks during I/O.
Description:
[NOTE: This function is deprecated in HDF5 Release 1.6 and will eventually be removed from the HDF5 distribution. It is provided in this release only to enable backward compatibility with HDF5 Releases 1.4.x and is enabled only if the HDF5 library is configured with the flag H5_WANT_H5_V1_4_COMPAT; the function is not enabled in the binaries distributed by NCSA. ]

Given a dataset transfer property list, H5Pset_hyper_cache indicates whether to cache hyperslab blocks during I/O, a process which can significantly increase I/O speeds.

When working with hyperslab selections, it is possible to significantly speed up I/O operations by retrieving an entire hyperslab from the file in one operation and caching it in memory. The cache parameter specifies whether to turn caching on for hyperslab I/O operations. If cache is set to 1, caching is turned on; if set to 0, caching is turned off.

The parameter limit sets the maximum size of the hyperslab block to cache. If a block is smaller than that limit, it may still not be cached if no memory is available. Setting limit to 0 (zero) indicates no limitation on the size of block to attempt to cache.

The default is to cache blocks with no limit on block size for serial I/O and to not cache blocks for parallel I/O.

Parameters:
hid_t plist
IN: Dataset transfer property list identifier.
unsigned cache
IN: A flag indicating whether caching is to be set to on (1) or off (0).
unsigned limit
IN: Maximum size of the hyperslab block to cache. 0 (zero) indicates no limit.
Returns:
Returns a non-negative value if successful; otherwise returns a negative value.
Fortran90 Interface: h5pset_hyper_cache_f
SUBROUTINE h5pset_hyper_cache_f(prp_id, cache, limit, hdferr)
  IMPLICIT NONE
  INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
  INTEGER, INTENT(IN) :: cache         !
  INTEGER, INTENT(IN) :: limit         ! Maximum size of the hyperslab 
                                       ! block to cache 
                                       ! 0 (zero) indicates no limit
  INTEGER, INTENT(OUT) :: hdferr       ! Error code
                                       ! 0 on success and -1 on failure
END SUBROUTINE h5pset_hyper_cache_f