Last modified: 15 October 2012
Name: H5Pget_mpio_actual_io_mode
Signature:
  herr_t `H5Pget_mpio_actual_io_mode`( hid_t `dxpl_id`, H5D_mpio_actual_io_mode_t * `actual_io_mode`)

Purpose: Retrieves the type of I/O that HDF5 actually performed on the last parallel I/O call. This is not necessarily the type of I/O 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`. However, HDF5 will sometimes ignore this request and perform independent I/O instead. This property allows the user to see what kind of I/O HDF5 actually performed. Used in conjunction with `H5Pget_mpio_actual_chunk_opt_mode`, this property allows the user to determine exactly HDF5 did when attempting collective I/O.

Description:
  `H5Pget_mpio_actual_io_mode` retrieves the type of I/O performed on the selection of the current process. This property is set after all I/O is completed; if I/O fails, it will not be set.

  Valid values returned in `actual_io_mode`:

  | `H5D_MPIO_NO_COLLECTIVE` |  | No collective I/O was performed. Collective I/O was not requested or collective I/O isn't possible on this dataset. (Default)
  | `H5D_MPIO_CHUNK_INDEPENDENT` |  | HDF5 performed one the chunk collective optimization schemes and each chunk was accessed independently.
  | `H5D_MPIO_CHUNK_COLLECTIVE` |  | HDF5 performed one the chunk collective optimization schemes and each chunk was accessed collectively.
  | `H5D_MPIO_CHUNK_MIXED` |  | HDF5 performed one the chunk collective optimization schemes and some chunks were accessed independently, some collectively.
  | `H5D_MPIO_CONTIGUOUS_COLLECTIVE` |  | Collective I/O was performed on a contiguous dataset.

Note:
  All processes do not need to have the same value. For example, if I/O is being performed using the multi chunk optimization scheme, one process's selection may include only chunks accessed collectively, while another may include chunks accessed independently. In this case, the first process will report `H5D_MPIO_CHUNK_COLLECTIVE` while the second will report `H5D_MPIO_CHUNK_INDEPENDENT`.

Parameters:

  hid_t `dxpl_id` |  | IN: Dataset transfer property list identifier
  H5D_mpio_actual_io_mode_t * `actual_io_mode` |  | OUT: The type of I/O performed by this process.

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_chunk_opt_mode``` | Reports type of optimization HDF5 actually attempted.

Fortran90 Interface: h5pget_mpio_actual_io_mode_f

History:

  Release | Change
  1.8.10 | Fortran subroutine introduced in this release.
  1.8.8 | C function introduced in this release.