Notes 2015 09 25 - mpiwg-tools/tools-issues GitHub Wiki

Attendees

  • Jean-Baptiste Besnard
  • Wesley Bland
  • Brice Goglin
  • Marc-Andre Hermanns
  • Kathryn Mohror
  • Soren Rasmussen
  • Jeff Squyres
  • Martin Schulz

Notes

  • Jean-Baptiste from ParaTools presented work on MPC

    • Multi-Threaded MPI+OpenMP runtime
    • Ranks may be implemented as threads
    • Not using MPIR yet, but complications may arise due to Process/Thread context issues
  • Paper on MPI Advisor raises problem with MPI_T exposing variables in multi-rail scenarios

  • MPIR Document does not have a release date

    • Create an issue once Github is up and running
  • MPIR_being_debugged

    • Changes made to explicitly allow the symbol to be present only to a subset
    • Changes made to explicitly state the only times changes to the variable are made and which values are valid
  • Should we merge the MPIR and MQD documents into a single document?

    • In the new workflow each document would have its own repository
  • QMPI (slides 1 to 18)

    • QMPI_Tool_register() called before MPI_Init
    • To avoid symbol clash, tools vendors should use a naming scheme similar to Java (e.g., org_toolprovider_toolname)
    • tool_registration_structure() shared between tool and runtime.
      • runtime sets API version
      • rest is set by tool
    • There may be a problem with visibility of startup/MPI symbols (Jeff called it the "Python problem")
    • A handful of startup calls needs to have a standardized ABI
      • How does the ABI call know which library to dlopen?
    • The concept of families needs to be discussed further
      • We should get sysadmins and tools supporters on the call to discuss core ideas
    • How should function lists be defined?
      • Opaque handles (better abstraction, but additional indirections)
      • Well-known format (no abstraction, but fast direct/random access
    • We may need function lists of every function for every tool; how to avoid scalability issues?
    • Functions have different prototypes; how to store them properly?
      • Using void* looses type safety
      • Type safety can only be done with a big struct with C99 initialization
      • API version number should be first entry.
    • Provide a QMPI_Funcname_to_offset() to convert a function name to a pointer to the right position in the struct
    • Should we use a separate struct for extensions?