-
Notifications
You must be signed in to change notification settings - Fork 2
Notes 2016 03 01
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
- "async signal safe" - who defines this? POSIX? We need to look it up
- 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