All functions defined as part of the MPI tool information interface return an integer error code (see Table Return Codes for the MPI Tool Information Interface ) to indicate whether the function was completed successfully or was aborted. In the latter case the error code indicates the reason for not completing the routine. Such errors neither impact the execution of the MPI process nor invoke MPI error handlers. The MPI process continues executing regardless of the return code from the call. The MPI implementation is not required to check all user-provided parameters; if a user passes invalid parameter values to any routine the behavior of the implementation is undefined.
All error codes with the prefix MPI_T_ must be unique values and cannot overlap with any other error codes or error classes returned by the MPI implementation. Further, they shall be treated as MPI error classes as defined in Section Error Codes and Classes and follow the same rules and restrictions. In particular, they must satisfy:
0 = constMPI_SUCCESS < constMPI_T_ERR_XXX/ leq constMPI_ERR_LASTCODE.
Rationale.
All MPI tool information interface functions must return error classes,
because applications cannot portably call MPI_ERROR_CLASS before
MPI_INIT or MPI_INIT_THREAD to map an arbitrary error code to an error
class.
( End of rationale.)
Return Code | Description | |
Return Codes for All Functions in the MPI Tool Information Interface | ||
MPI_SUCCESS | Call completed successfully | |
MPI_T_ERR_INVALID | Invalid use of the interface or bad parameter | |
values(s) | ||
MPI_T_ERR_MEMORY | Out of memory | |
MPI_T_ERR_NOT_INITIALIZED | Interface not initialized | |
MPI_T_ERR_CANNOT_INIT | Interface not in the state to be initialized | |
Return Codes for Datatype Functions: MPI_T_ENUM_* | ||
MPI_T_ERR_INVALID_INDEX | The enumeration index is invalid | |
MPI_T_ERR_INVALID_ITEM | The item index queried is out of range | |
(for MPI_T_ENUM_GET_ITEM only) | ||
Return Codes for Variable and Category Query Functions: MPI_T_*_GET_* | ||
MPI_T_ERR_INVALID_INDEX | The variable or category index is invalid | |
MPI_T_ERR_INVALID_NAME | The variable or category name is invalid | |
| Return Codes for Handle Functions: MPI_T_*_ {ALLOC|FREE } | |
MPI_T_ERR_INVALID_INDEX | The variable index is invalid | |
MPI_T_ERR_INVALID_HANDLE | The handle is invalid | |
MPI_T_ERR_OUT_OF_HANDLES | No more handles available | |
Return Codes for Session Functions: MPI_T_PVAR_SESSION_* | ||
MPI_T_ERR_OUT_OF_SESSIONS | No more sessions available | |
MPI_T_ERR_INVALID_SESSION | Session argument is not a valid session | |
Return Codes for Control Variable Access Functions: | ||
MPI_T_CVAR_READ, WRITE | ||
MPI_T_ERR_CVAR_SET_NOT_NOW | Variable cannot be set at this moment | |
MPI_T_ERR_CVAR_SET_NEVER | Variable cannot be set until end of execution | |
MPI_T_ERR_INVALID_HANDLE | The handle is invalid | |
Return Codes for Performance Variable Access and Control: | ||
| MPI_T_PVAR_ {START|STOP|READ|WRITE|RESET|READREST } | |
MPI_T_ERR_INVALID_HANDLE | The handle is invalid | |
MPI_T_ERR_INVALID_SESSION | Session argument is not a valid session | |
MPI_T_ERR_PVAR_NO_STARTSTOP | Variable cannot be started or stopped | |
(for MPI_T_PVAR_START and | ||
MPI_T_PVAR_STOP) | ||
MPI_T_ERR_PVAR_NO_WRITE | Variable cannot be written or reset | |
(for MPI_T_PVAR_WRITE and | ||
MPI_T_PVAR_RESET) | ||
MPI_T_ERR_PVAR_NO_ATOMIC | Variable cannot be read and written atomically | |
(for MPI_T_PVAR_READRESET) | ||
| Return Codes for Category Functions: MPI_T_CATEGORY_* | |
MPI_T_ERR_INVALID_INDEX | The category index is invalid | |