Skip to content
Marc-Andre Hermanns edited this page Mar 29, 2016 · 1 revision

These are the "cleaned up" notes from the Tools WG meet discussing the design for an event interface in MPI_T.

  • Buffer context
    • Tool can create multiple buffers
    • Can register different events for different buffer contexts
    • Each buffer context can have different behavior
      • Polling, callback, immediate notification, buffered events bulk notification
    • When does notification occur?
      • Best effort immediately
      • Buffer until N events (about N to prevent buffer overflow, or allocate bigger buffer than N)
        • MPI provides buffer, tool can potentially determine size
        • Tool does not read buffer directly, uses a decoder function
  • MPI_T_EVENTS
    • Name
    • Immediate //can notification be iimmediate or not (or "best effort")
    • Timer - not all hardware can figure out wtime(), so it may be hardware-specific timer
      • How do we convert hardware time to wtime?
      • Valid or not valid (maybe not valid before MPI_Init)
  • In MPI_T way, we will
    • Query for number of events
    • Iterate over events, get info
    • Events can be classified into categories
  • Event struct{
    • Event_id
    • Sequence_id //do we need this? Ask Marc-Andre
    • Timestamp //could be hardware time, could be _T_Wtime
    • Thread_id //what does this mean? Tool provides function "whoami()" returns void * to tid TODO
    • MPI Object bound
    • Void * data? //who allocates this memory? Where is it defined? Who frees it?
      •     //could be an MPI Datatype
        
    • }
  • What can you do in a callback?
    • "async signal safe" - who defines this? POSIX? We need to look it up
      • OMPT uses this
      • What about MS Windows. They don't have signals
        • Anh says we can probably use this language, because there are signals (albeit few), the language implies
  • Time conversion idea
    • How to convert hardware time stamp into Wtime?
    • There could be an MPIT call that returns now() in hardware time along with current Wtime, so tool can convert
  • Can events be dropped?
    • Yes, maybe buffer is full, or maybe it just can't be kept for some reason by implementation
    • What if an MPI Ojbect is freed, is the buffer still valid?
      • Yes, because MPI implementaiton can keep it around until it is no longer needed
      • You may want to decode events in that buffer even after it is freed

These are pictures of the white board from the meeting. Picture 1 Picture 2

Clone this wiki locally