Retrieves local and global causes that broke collective I/O on the last parallel I/O call
H5P_GET_MPIO_NO_COLLECTIVE_CAUSE( dxpl_id, local_no_collective_cause, global_no_collective_cause )
herr_t H5Pget_mpio_no_collective_cause( hid_t dxpl_id, uint32_t * local_no_collective_cause, uint32_t * global_no_collective_cause)
|hid_t ||IN: Dataset transfer property list identifier|
|uint32_t *||OUT: An enumerated set value indicating the causes that prevented collective I/O in the local process|
|uint32_t *||OUT: An enumerated set value indicating the causes across all processes that prevented collective I/O|
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, there are conditions that can cause HDF5 to forgo collective I/O and perform independent I/O. Such causes can be different across the processes of a parallel application. This function allows the user to determine what caused the HDF5 library to skip collective I/O locally, that is in the local process, and globally, across all processes.
H5P_GET_MPIO_NO_COLLECTIVE_CAUSE serves two purposes. It can be used to determine whether collective I/O was used for the last preceding parallel I/O call. If collective I/O was not used, the function retrieves the local and global causes that broke collective I/O on that parallel I/O call. The properties retrieved by this function are set before I/O takes place and are retained even when I/O fails.
Valid values returned in
global_no_collective_cause are as follows or, if there are multiple causes, a bitwise OR of the relevant causes; the numbers in the center column are the bitmask values:
|Collective I/O was performed successfully (Default)|
|Collective I/O was not performed because independent I/O was requested|
|Collective I/O was not performed because datatype conversions were required|
|Collective I/O was not performed because data transforms needed to be applied|
|Collective I/O was not performed because the selected file driver was MPI-POSIX|
| ||Collective I/O was not performed because one of the dataspaces was neither simple nor scalar|
|Collective I/O was not performed because there were point selections in one of the dataspaces|
| ||Collective I/O was not performed because the dataset was neither contiguous nor chunked|
|Collective I/O was not performed because filters needed to be applied|
The above name/value pairs are members of HDF5’s
Each process determines whether it can perform collective I/O and broadcasts the result. Those results are combined to make a collective decision; collective I/O will be performed only if all processes can perform collective I/O.
If collective I/O was not used, the causes that prevented it are reported by individual process by means of an enumerated set. The causes may differ among processes, so H5P_GET_MPIO_NO_COLLECTIVE_CAUSE returns two property values. The first value is the one produced by the local process to report local causes. This local information is encoded in an enumeration, the
H5D_mpio_no_collective_cause_t described above, with all individual causes combined into a single enumeration value by means of a bitwise OR operation. The second value reports global causes; this global value is the result of a bitwise-OR operation across the values returned by all the processes.
Returns a non-negative value if successful; otherwise returns a negative value.
Include Bitbucket Server for Confluence: An error occuredConnection to Bitbucket Server could not be established. Verify that you have properly configured the Bitbucket Server application link for your Confluence space and that your Bitbucket Server instance is up and running. Error details: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
|1.8.10||C function introduced in this release.|