-
Notifications
You must be signed in to change notification settings - Fork 2
Notes 2019 01 17
Marc-Andre Hermanns edited this page Jan 18, 2019
·
3 revisions
- Marc-André Hermanns
- Jithin Jose
- Pouya Kousha
- Kathryn Mohror
- Remove
MPI_T_CB_REQUIRE_MPI_RESTRICTED
- Higher safety levels may actually make it harder to support specific functions in a callback.
- Implementation is allowed to return an error code
- Implementation is allowed to support more if it wants to
- New hierarchy of safety requirement levels only contains:
MPI_T_CB_REQUIRE_NONE
MPI_T_CB_REQUIRE_THREAD_SAFE
MPI_T_CB_REQUIRE_ASYNC_SIGNAL_SAFE
- List of functions required to be supported in callbacks:
(P)MPI_T_EVENT_HANDLE_ALLOC
(P)MPI_T_EVENT_HANDLE_FREE
(P)MPI_T_EVENT_READ
(P)MPI_T_EVENT_COPY
(P)MPI_T_EVENT_GET_TIMESTAMP
(P)MPI_T_EVENT_GET_SOURCE
(P)MPI_T_PVAR_READ
(P)MPI_T_PVAR_READRESET
(P)MPI_T_PVAR_WRITE
(P)MPI_T_PVAR_START
(P)MPI_T_PVAR_STOP
(P)MPI_T_PVAR_RESET
(P)MPI_T_SOURCE_GET_NUM
(P)MPI_T_SOURCE_GET_TIMESTAMP
(P)MPI_T_SOURCE_GET_INFO
- Calls may still return an error code (e.g.,
MPI_T_ERR_NOT_ACCESSIBLE
), it just has to be safe to call them. - No MPI_T event calls should be allowed as macros
- Flexibility of interception weighs higher than speed gained from macro implementation
- Be explicit with how info objects are handled:
-
MPI_T_EVENT_GET_INFO
will returnMPI_INFO_NULL
before MPI initialization and after MPI finalization. -
MPI_T_EVENT_HANDLE_ALLOC
will not evaluateinfo_object
argument before MPI initialization and after MPI finalization.
-