[ HDF5 Tutorial Top ] [ Parallel HDF5 Topics Top ] [ Next ] [ Prev ]

Writing and Reading Hyperslabs

The programming model for writing and reading hyperslabs is:
  1. Each process defines the memory and file hyperslabs.
  2. Each process executes a partial write/read call which is either collective or independent.
The memory and file hyperslabs in the first step are defined with the H5Sselect_hyperslab (C) / h5sselect_hyperslab_f call (F90):
C:  herr_t H5Sselect_hyperslab ( hid_t space_id (IN), 
                                 H5S_seloper_t operator (IN),
                                 const hssize_t *start (IN), 
                                 const hsize_t *stride (IN),
                                 const hsize_t *count (IN), 
                                 const hsize_t *block (IN) )

FORTRAN90: h5sselect_hyperslab_f ( space_id, operator, start, count, &
                                   hdferr, stride, block )

            space_id    IN: INTEGER(HID_T)
            operator    IN: INTEGER
            start       IN: INTEGER(HSSIZE_T), DIMENSION(*)
            count       IN: INTEGER(HSIZE_T), DIMENSION(*)
            hdferr      OUT: INTEGER
            stride      IN: INTEGER(HSIZE_T), DIMENSION(*), OPTIONAL
            block       IN: INTEGER(HSIZE_T), DIMENSION(*), OPTIONAL

The start (or offset), count, stride, and block parameters define the portion of the dataset to write to. By changing the values of these parameters you can write hyperslabs with Parallel HDF5 by contiguous hyperslab, by regularly spaced data in a column/row, by patterns, and by chunks:

The National Center for Supercomputing Applications

University of Illinois at Urbana-Champaign


Last Modified: December 6, 2001