Last modified: 24 September 2012
Name: H5Pget_mpio_actual_chunk_opt_mode
Signature:
  herr_t `H5Pget_mpio_actual_chunk_opt_mode`( hid_t `dxpl_id`, H5D_mpio_actual_chunk_opt_mode_t * `actual_chunk_opt_mode`)

Purpose: Retrieves the type of chunk optimization that HDF5 actually performed on the last parallel I/O call. This is not necessarily the type of optimization requested.

Motivation:
  A user can request collective I/O via a data transfer property list (DXPL) that has been suitably modified with `H5Pset_dxpl_mpio`. The operation can be optimized in several different ways, some of which also can be requested by the user. However, HDF5 may not be able to satisfy requests for specific optimizations and may choose a different optimization scheme. This property allows the user to track which optimization was actually used. Used in conjunction with `H5Pget_mpio_actual_io_mode`, this property allows the user to determine exactly what HDF5 did when attempting collective chunked I/O.

Description:
  `H5Pget_mpio_actual_chunk_opt_mode` retrieves the type of chunk optimization performed when collective I/O was requested. This property is set before I/O takes place, and will be set even if I/O fails.

  Valid values returned in `actual_chunk_opt_mode`:

  | `H5D_MPIO_NO_CHUNK_OPTIMIZATION` |  | No chunk optimization was performed. Either no collective I/O was attempted or the dataset wasn't chunked. (Default)
  | `H5D_MPIO_MULTI_CHUNK` |  | Each chunk was individually assigned collective or independent I/O based on what fraction of processes access the chunk. If the fraction is greater than the multi chunk ratio threshold, collective I/O is performed on that chunk. The multi chunk ratio threshold can be set using `H5Pset_dxpl_mpio_chunk_opt_ratio`. The default value is 60%.
  | `H5D_MPIO_MULTI_CHUNK_NO_OPT` |  | Each chunk is assigned collective or independent I/O based on how many chunks were accessed before it. Collective I/O is performed on the the first chunk in each selection, then the second, and so on until one process finishes, then the remaining processes perform independent I/O on the rest of their selections.
  | `H5D_MPIO_LINK_CHUNK` |  | Collective I/O is performed on all chunks simultaneously.

Parameters:

  hid_t `dxpl_id` |  | IN: Dataset transfer property list identifier
  H5D_mpio_actual_chunk_opt_mode_t * `actual_chunk_opt_mode` |  | OUT: The type of chunk optimization performed by HDF5.

Returns:
  Returns a non-negative value if successful; otherwise returns a negative value.

See Also:

  `H5Pget_mpio_no_collective_cause``` | Reports whether collective I/O was performed on a particular call and, if not, the causes that broke collective I/O.
  `H5Pget_mpio_actual_io_mode` | Reports type of I/O HDF5 actually performed.
  The following functions request optimizations or change values that HDF5 uses to choose an optimization scheme: `H5Pset_dxpl_mpio_chunk_opt` `H5Pset_dxpl_mpio_chunk_opt_num` `H5Pset_dxpl_mpio_chunk_opt_ratio` `H5Pset_dxpl_mpio_collective_opt`

History:

  Release | Change
  1.8.8 | C function introduced in this release.