Skip to content

Handle Debugging:Session queries

Marc-Andre edited this page Apr 8, 2025 · 9 revisions

Session queries

int mpid_session_query(mpid_process_handle_t*process,
                       mpid_address_t  session,
                       mpid_session_handle_t **handle);
int mpid_get_num_sessions(mpid_process_handle_t*process,
                          int *num_sessions);
int mpid_get_nth_session(mpid_process_handle_t*process,
                         int nth_session,
                         mpid_session_handle_t **handle);
int mpid_session_query_num_psets(mpid_session_handle_t *handle,
                                 int *num_psets);

pset is allocated using the alloc callback, caller must free the buffer.

Example for pset: "mpi://WORLD"

int mpid_session_query_nth_pset(mpid_session_handle_t *handle,
                                int nth_pset,
                                const char **pset);

pset argument is callee allocated (using the callback). Tool (caller) is responsible to free the memory.

int mpid_session_query_group_for_pset(mpid_session_handle_t *handle,
                                      const char *pset,
                                      mpid_group_handle_t *group_handle);
  • How can one process talk about / identify other MPI processes?
  • Provide MPIR equivalent information for each session?
  • Alternatively use PMIX to get process information?
  • -> For now we assume the row in a session-specific (MPIR-like) table is sufficient for mpid_process_t

Free a handle returned by the mpid_session_query() function or any other query function.

int mpid_session_handle_free(mpid_session_handle_t *handle);

Handles unique to a session:

  • group
  • comm
  • request

Clone this wiki locally