Page tree









Retrieves the type of I/O that HDF5 actually performed on the last parallel I/O call (not necessarily the type requested)


H5P_GET_MPIO_ACTUAL_IO_MODE ( dxpl_id, actual_io_mode )


herr_t H5Pget_mpio_actual_io_mode(
            hid_t dxpl_id,
            H5D_mpio_actual_io_mode_t *actual_io_mode)

Fortran90 Interface: h5pget_mpio_actual_io_mode_f
  SUBROUTINE h5pget_mpio_actual_io_mode_f(dxpl_id, actual_io_mode, hdferr)
    INTEGER(HID_T), INTENT(IN)  :: dxpl_id
    INTEGER       , INTENT(OUT) :: actual_io_mode
    INTEGER       , INTENT(OUT) :: hdferr

  dxpl_id        - Dataset transfer property list identifier.

  actual_io_mode - The type of I/O performed by this process.
  hdferr         - Returns 0 if successful and -1 if fails.

hid_t dxpl_idIN: Dataset transfer property list identifier
H5D_mpio_actual_io_mode_t * actual_io_modeOUT: The type of I/O performed by this process


A user can request collective I/O via a data transfer property list (DXPL) that has been suitably modified with H5P_SET_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 H5P_GET_MPIO_ACTUAL_CHUNK_OPT_MODE, this property allows the user to determine exactly HDF5 did when attempting collective I/O.


H5P_GET_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_COLLECTIVENo collective I/O was performed. Collective I/O was not requested or collective I/O isn't possible on this dataset
H5D_MPIO_CHUNK_INDEPENDENTHDF5 performed one the chunk collective optimization schemes and each chunk was accessed independently
H5D_MPIO_CHUNK_COLLECTIVEHDF5 performed one the chunk collective optimization schemes and each chunk was accessed collectively
H5D_MPIO_CHUNK_MIXEDHDF5 performed one the chunk collective optimization schemes and some chunks were accessed independently, some collectively.
H5D_MPIO_CONTIGUOUS_COLLECTIVECollective I/O was performed on a contiguous dataset

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.

See Also:

H5P_GET_MPIO_NO_COLLECTIVE_CAUSE - Reports whether collective I/O was performed on a call and, if not, the causes that broke collective I/O

H5P_GET_MPIO_ACTUAL_CHUNK_OPT_MODE - Reports type of optimization HDF5 actually attempted


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


testpar / t_dset.c [3291:3291]
 1.10/master  HDFFV/hdf5  Copy
    ret = H5Pget_mpio_actual_io_mode(dxpl_write, &actual_io_mode_write);

fortran / testpar / hyper.f90 [236:237]
 1.10/master  HDFFV/hdf5  Copy
  ! Check h5pget_mpio_actual_io_mode_f function
  CALL h5pget_mpio_actual_io_mode_f(dxpl_id, actual_io_mode, hdferror)

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

--- Last Modified: August 09, 2019 | 12:42 PM