Skip to content

Handle Debugging:Session queries

Joachim edited this page Oct 14, 2021 · 8 revisions

Session queries

int mpidbg_session_query(mqs_process *process,
                      mqs_taddr_t session,
                      struct mpidbg_session_handle_t **handle);
int mpidbg_get_num_sessions(mqs_process *process,
                      int *num_sessions);
int mpidbg_get_nth_session(mqs_process *process,
                      int nth_session,
                      struct mpidbg_session_handle_t **handle);
int mpidbg_session_query_num_psets(struct mpidbg_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 mpidbg_session_query_nth_pset(struct mpidbg_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 mpidbg_session_query_group_for_pset(struct mpidbg_session_handle_t *handle,
                      const char *pset,
                      struct mpidbg_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 mpidbg_process_t

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

int mpidbg_session_handle_free(struct mpidbg_session_handle_t *handle);

Handles unique to a session:

  • group
  • comm
  • request
Clone this wiki locally