Notes 2021 01 07
Marc-Andre Hermanns edited this page Jan 14, 2021
·
1 revision
- Marc-Andre Hermanns
- Bill Williams
- Joachim Protze
- Wesley Bland
- Martin Schulz
-
Argonne customer wants an interface to communicate different phases of an applications
- Caliper (LLNL Tool) should be the solution to that
-
Existing
MPI_Pcontrol
semantics are terrible to begin with -
Maybe a key-value store (
MPI_Info
?, binary values?) could solve this- Binary keys and values could be a valuable
-
MPI_Info_key_create("name", &index)
to create an integer ID for a string key?
-
QMPI_Pcontrol
could also be used for user instrumentation- Extraction of information from "info" objects needs to be fast (for small code regions)
- Using hashes would only solve part of the problem
- Add setter/getter with
void*
and - Could this be done via CVARs?
- Some API needed to query the specific object a CVAR is bound to
- One might bind a CVAR to an Info object
- Requires multiple Info objects to identify as different instrumentation points.
- Distinct CVARs might be needed to indicate begin/end
- Extraction of information from "info" objects needs to be fast (for small code regions)
-
Would a new handle type
MPI_Tool
coming from QMPI registration work better to convey information -
Non-blocking version?
- How to make sure completion can be handled by the library?
- Something along the lines of the
MPI_Pready
call to indicate that a tool that interceptsQcontrol
is done manipulating the info object
- Something along the lines of the
- How to make sure completion can be handled by the library?
-
Should a tool be required to pass on to next layer?
- Is this info for me?
- Exclusively?
- Is this info for me?