-
Notifications
You must be signed in to change notification settings - Fork 2
Notes 2020 10 08
Marc-Andre Hermanns edited this page Nov 5, 2020
·
2 revisions
- Marc-Andre Hermanns
- Bengisu Elis
- Pouy Kousha
- Joachim Protze
- Bill Williams
- Michael Knobloch
- Sudheer Chunduri
- Wesley Bland
- Chris Chambreau
-
void*
context added every function call - Replacing/Deprecating
MPI_Pcontrol
with QMPI? - How does the MPI library communicator
- QMPI Context Handle
- Could be storage of MPI internal information (e.g., return address to user code)
- Could the layer in the stack be communicated through this?
- When would such an object be allocated?
- We might need a fresh one for each (concurrent) call into MPI
- One for each thread in thread-local storage?
- We might need a fresh one for each (concurrent) call into MPI
- Skipping elements of the tool stack
- Tool Registration
- See Joachim's proposal
- What is the difference between tool context and instance context?
- Which is provided to the QMPI Wrapper?
- Couldn't the instance context be part of the tool context (latter has a pointer to the former)
- Why is context provided at tool registration and tool initialization?
- What is the difference between tool context and instance context?
- Proposal:
- Tool registers (with name & pointer to init function)
- Only the tool registration needs to be in an
__attribute__((constructor))
function
- Only the tool registration needs to be in an
- MPI library calls tool init function for each registered tool in the order specified in an environment variable
- MPI library provides level in the stack to the tool
- Should a tool instance have a unique ID as well?
- Could be used/queried inside a wrapper to distinguish which instance a call is for
- Tools provides
- Tool registers (with name & pointer to init function)
- See Joachim's proposal
- Should we allow tools to be "bad citizens" by skipping other tools in the stack?
- It could be a feature?
- Where is the difference between skipping and branching?