-
Notifications
You must be signed in to change notification settings - Fork 2
Notes 2020 10 01
Marc-Andre Hermanns edited this page Oct 1, 2020
·
2 revisions
- Marc-Andre Hermanns
- Bengisu Elis
- Bill Williams
- Christ Chambreau
- Michael Knobloch
- Joachim Protze
-
Open Questions on QMPI
- Do we want to allow PMPI and QMPI Applications to be used at the same time?
- We have to (for the implementation -> QMPI tools will take long to be released)
- We will loose the return address to the application
- Could we portably stack walk to this address?
- Hard, because we don't know how many indirections we have
- Could we portably stack walk to this address?
- The PMPI symbols will act as shim layer to distinguish between calls to PMPI (from a PMPI tool) and the last layer in the QMPI stack
- QMPI layer has context point pre-pended
- Pre-pended because of
MPI_Pcontrol()
- Replace it with something more reasonable?
- Does it make sense in a QMPI context?
- Pre-pended because of
- QMPI layer has context point pre-pended
- How to handle the context?
- The Tool context is a
void *
- Opaque handle?
- Address of the calling function (at least)
- If you have getter/setter functions it's easier to add more stuff later
- How would a tool generated on of these?
- The Tool context is a
- When trying to call the next func
- Ask: What is the next func
- Ask: What is the next context
- Maybe tool can query context itself by using its known tool registration ID
- How would a wrapper (i.e. send) which instance (i.e. ID) it is called from
- Function could be: "here is my tool ID, give me the next func and context"
- Maybe tool can query context itself by using its known tool registration ID
- Then: call func with context
- Could we hide some of this manual query work behind some magic MPI call?
- Do we want to allow PMPI and QMPI Applications to be used at the same time?
-
Tool Registration
-
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?