Skip to content
Marc-Andre Hermanns edited this page Nov 5, 2020 · 2 revisions

MPI Forum Tools WG Meeting 2020-10-08

Participants

  • Marc-Andre Hermanns
  • Bengisu Elis
  • Pouy Kousha
  • Joachim Protze
  • Bill Williams
  • Michael Knobloch
  • Sudheer Chunduri
  • Wesley Bland
  • Chris Chambreau

Topics

  • 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?
  • 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?
    • Proposal:
      1. Tool registers (with name & pointer to init function)
        • Only the tool registration needs to be in an __attribute__((constructor)) function
      2. 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
      3. Tools provides
  • 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?
Clone this wiki locally