-
Notifications
You must be signed in to change notification settings - Fork 2
Handle Debugging:Bootstrapping
Joachim edited this page Apr 14, 2023
·
6 revisions
Should we provide size informantion for the different handles?
-> Provide a list of handle type names for all opaque handles to the debugger. The debugger will use this information to automatically detect handle variables and show their content
-> Provide a way to identify internal MPI implementation threads. The debugger might use this information to possibly hide the thread or group it separately.
-> Identify the main thread (thread that executed MPI_Init*)
-> How to deal with process-in-process (https://github.com/procinproc) implementations? Identify the different threads as MPI processes?
Copy/adapt from the OpenMP document:
- 20.2 Activating a Third-Party Tool
- 20.5.1 Per OMPD Library Initialization and Finalization
- 20.5.2 Per OpenMP Process Initialization and Finalization
- 20.5.2.1 ompd_process_initialize
- 20.5.2.3 ompd_rel_address_space_handle
- 20.5.3 Thread and Signal Safety
- 20.5.4 Address Space Information
- MPI process information (there might be multiple mpi processes within an OS process)
ompd_rc_t mpidbg_process_initialize(
mpidbg_address_space_context_t *context,
mpidbg_mpi_process_handle_t **array_of_mpi_process_handles, // callee allocated list using the alloc callback. caller will free this memory
int *num_mpi_processes // number of mpi processes within the given address space
);-
- Add query to identify the threads connected to an MPI-processes
- 20.5.5 Thread Handles
- 20.5.5.2 ompd_get_thread_handle (needed, if implementations might store relevant information in TLS)
- 20.5.5.3 ompd_rel_thread_handle