-
Notifications
You must be signed in to change notification settings - Fork 2
Notes 2020 05 14
Marc-Andre Hermanns edited this page May 14, 2020
·
1 revision
- John DelSignore
- Bengisu Elis
- Marc-Andre Hermanns
- Joachim Protze
- Martin Schulz
- Discussion based on Wiki page here
- Started by copy-pasting Jeff S.'s interface present in OMPI
- Each debugging handle has a constructor and free function
- Debugging handle is only valid until the execution continues
- I.e., only while the application is stopped
- Constructor takes a address of MPI handle
- Debugging handle is only valid until the execution continues
- How does the debugger know that a handle is a request
- Purely by convention (checking the name of the type)
- What if some non-MPI application uses the name
MPI_Request
for a type
- What if some non-MPI application uses the name
- It's an opaque handle and it is required to be comparable in the base language (need to look up the text)
- Can only be a scalar
- Purely by convention (checking the name of the type)
- Should the input the handle query be the opaque handle value or a pointer to the opaque handle?
- Which queries are possible?
- Communicators
- Basic query
- Printable name
- John discourages to use a string argument type like
char name[MPI_MAX_OBJECT_NAME]
- Cannot be an implementation dependent size
- Alternative would be library allocates and user frees memory
- Not used in the 1st-party MPI API
- Used by some
libc
calls
- John discourages to use a string argument type like
- Rank & size
- Fortran handle
- Extra info as key-value pair
- Similar to ICV in OpenMP
- Printable name
- Procs
- List of Processes that are part of the communicator
- Basic query
- Communicators
- What is
mpidbg_process_t
?- ID of current process
- in OMPI the world rank
- ID of current process
- How does the (multi-process) debugger communicate which MPI process is to be queried for a specific UNIX process
- Where does a debugger get the context of the process