Skip to content

Handle Debugging:Group queries

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

Group queries

int mpid_group_query(mpid_process_handle_t *process,
                     mpid_address_t group,
                     mpid_group_handle_t **handle);

Intra-communicator: only local group, remote group is NULL Inter-communicator: local and remote group

int mpid_comm_query_group(const mpid_comm_handle_t *comm_handle,
                          mpid_group_handle_t **local_group_handle,
                          mpid_group_handle_t **remote_group_handle);

TODO: Are MPI groups really namespaced into sessions? Could two sessions hand out the same group handle to represent the same p-set? I.e, does a query "from which session is a group handle derived?" make sense?

mpid_process_t might need to include information about session, rank/id to identify process with help of MPIR/PMIX

int mpid_comm_query_procs(const mpid_group_handle_t *handle,
                          int *group_num_procs,
                          mpid_process_t **comm_procs);
  • Queries about constructed groups / "implicit" groups

Query a handle returned by mpid_group_query() or other functions and, if found and valid, return the session this group was derived from

int mpid_group_query_session(mpid_group_handle_t *handle,
                             mpid_session_handle_t **comm_session);
Clone this wiki locally