Client Desires to Efficiently Write Overlapping Differently-Sized Data Selections from Each Process:
Pre-conditions:
- File is opened by client.
- Dataset is opened by client.
Scenario:
- Client gets file dataspace for dataset.
- Client defines a differently-sized hyperslab selection for the dataspace
in each process. Ideally, these align exactly with one chunk in the
dataset.
- Client defines memory dataspace for I/O operation.
- Client defines a selection in the memory dataspace.
- Client creates a dataset transfer property list (DXPL).
- Each client sets the "target chunk" for its data in DXPL.
- Client writes data to dataset, using the DXPL and selections in the
file and memory dataspaces defined above.
Notes:
- A "target chunk" is the chunk that all the data for the I/O operation
should be written into. A target chunk's value must be one of the
following values:
- The ID of a valid chunk.
- If a target chunk is a chunk ID,
then the elements of the file selection must be a subset of
the elements in the chunk, or the I/O operation with fail.
- The value "H5P_TARGET_CHUNK_LOWEST"
- If a target chunk is set to the value "H5P_TARGET_CHUNK_LOWEST",
then each
element is written to the chunk with the lowest chunk ID that
contains that element.
- The value "H5P_TARGET_CHUNK_HIGHEST"
- If a target chunk is set to the value
"H5P_TARGET_CHUNK_HIGHEST", then each
element is written to the chunk with the highest chunk ID that
contains that element.
- See this page for a description of
how this scenario efficiently transfers variable-sized chunks.