Skip to content
Marc-Andre Hermanns edited this page Jan 18, 2019 · 3 revisions

Participants

  • Marc-André Hermanns
  • Jithin Jose
  • Pouya Kousha
  • Kathryn Mohror

Topics

MPI_T Events

Callback safety

  • 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

MPI_Info integration

  • Be explicit with how info objects are handled:
    • MPI_T_EVENT_GET_INFO will return MPI_INFO_NULL before MPI initialization and after MPI finalization.
    • MPI_T_EVENT_HANDLE_ALLOC will not evaluate info_object argument before MPI initialization and after MPI finalization.
Clone this wiki locally