Skip to content
Marc-Andre Hermanns edited this page Jan 14, 2021 · 1 revision

Notes 2020-11-05

Participants

  • Marc-Andre Hermanns
  • Wesley Bland
  • Atul Kulkarni
  • Bill Williams
  • Martin Schulz
  • Michael Knobloch
  • Joachim Protze
  • Bengisu Elis

Topics

  • Stackwalking

    • Expensive to do "every time"
    • Only walk the stack when needed (on-demand)
    • Matter of "quality of implementation"
  • MPI should provide the return address

  • Using the context object

  • What kind of performance expectations do we have

    • Current prototype is OK
    • But on-demand stackwalking is extremely expensive (better ways need to be explored)
  • No tool registration after MPI_(Session_)Init

    • Needs a branch in all functions that may be callable before MPI_Init (e.g., Info calls)
    • What about MPI_T?
      • MPI_T_init_thread will start up QMPI.
    • Tools need to be aware that in the sessions model multiple calls can initialize MPI
      • The first time any call with MPI_ prefix
    • Tools cannot do anything but registration inside of bootstrap mechanisms
      • Order of these may compiler/OS dependent (and MPI might not be initialized yet)
        • External library that performs MPI_Session_init before main may break other tools that want to register
          • This is a problem that already exists with PMPI
          • Solution could be a general concept (outside of tools)
  • Maybe three-phase system is better

    1. "I am a tool, here is my name, and callbacks for interception setup and initialization"
    2. "Setup all the interceptions"
    3. "Now it's safe to make MPI calls"
Clone this wiki locally