Data Structures | |
class | PathHistoryEnvelope |
A class that is used to track the entry points and other information about a critical path as a charm++ program executes. More... | |
class | pathHistoryMain |
A mainchare that is used just to create a group at startup. More... | |
class | pathHistoryManager |
class | MergeablePathHistory |
Augments the PathHistory in the envelope with the other necessary information from the envelope. More... | |
class | PathHistoryTableEntry |
Stores information about the critical path in the table on each PE. More... | |
class | pathInformationMsg |
A message containing information about a path of entry method invocations. This contains an array of PathHistoryTableEntry objects. More... | |
Typedefs | |
typedef std::map< int, PathHistoryTableEntry > | PathHistoryTableType |
A table to store all the local nodes in the parallel dependency graph. | |
Functions | |
CkpvDeclare (int, traceLastHop) | |
CkpvDeclare (MergeablePathHistory, currentlyExecutingPath) | |
CkpvDeclare (double, timeEntryMethodStarted) | |
CkpvDeclare (PathHistoryTableType, pathHistoryTable) | |
A table to store all the local nodes in the parallel dependency graph. | |
CkpvDeclare (int, pathHistoryTableLastIdx) | |
A counter that defines the new keys for the entries in the pathHistoryTable. | |
void | useThisCriticalPathForPriorities () |
An interface callable by the application. | |
void | automaticallySetMessagePriority (envelope *env) |
Callable from inside charm++ delivery mechanisms (after envelope contains epIdx):. | |
void | initializeCriticalPath (void) |
void | resetThisEntryPath (void) |
void | saveCurrentPathAsUserEvent (const char *prefix) |
A debugging routine that outputs critical path info as user events. | |
void | setCurrentlyExecutingPathTo100 (void) |
A debugging helper routine that sets the values in the currently executing message's path to 100. | |
void | traceCriticalPathBack (CkCallback cb, bool saveToProjectionsTraces) |
Acquire the critical path and deliver it to the user supplied callback. | |
void | printEPInfo () |
A debugging routine that prints the number of EPs for the program, and the size of the envelope's path fields. | |
void | criticalPath_setep (int epIdx) |
void | criticalPath_start (envelope *env) |
Save information about the critical path contained in the message that is about to execute. | |
void | criticalPath_send (envelope *sendingEnv) |
Modify the envelope of a message that is being sent for critical path detection and store an entry in a table on this PE. | |
void | criticalPath_end () |
Handle the end of the entry method in the critical path detection processes. This should create a forward dependency for the object. | |
void | criticalPath_split () |
Split an entry method invocation into multiple logical tasks for the critical path analysis. | |
MergeablePathHistory * | saveCurrentPath () |
void | mergePathHistory (MergeablePathHistory *tmp) |
void | printPathInMsg (void *msg) |
A debugging routine that outputs critical path info as Projections user events. | |
CkpvExtern (MergeablePathHistory, currentlyExecutingPath) | |
CkpvExtern (double, timeEntryMethodStarted) | |
CkpvExtern (PathHistoryTableType, pathHistoryTable) | |
CkpvExtern (int, pathHistoryTableLastIdx) | |
A counter that defines the new keys for the entries in the pathHistoryTable. | |
pathHistoryManager::pathHistoryManager () | |
void | pathHistoryManager::traceCriticalPathBackStepByStep (pathInformationMsg *msg) |
Trace perform a traversal backwards over the critical path specified as a table index for the processor upon which this is called. | |
void | pathHistoryManager::broadcastCriticalPathProjections (pathInformationMsg *msg) |
void | pathHistoryManager::criticalPathProjectionsDone (CkReductionMsg *msg) |
void | pathHistoryManager::useCriticalPathForPriories () |
Traverse back and aquire the critical path to be used for automatic message prioritization. | |
void | pathHistoryManager::saveCriticalPathForPriorities (pathInformationMsg *msg) |
int | PathHistoryTableEntry::addToTableAndEnvelope (envelope *env) |
Add an entry for this path history into the table, and write the corresponding information into the provided header. | |
int | PathHistoryTableEntry::addToTable () |
Add an entry for this path history into the table. Returns the new index in the table. | |
Variables | |
CProxy_pathHistoryManager | pathHistoryManagerProxy |
The information regarding the entry methods that executed along the path to this one.
This is the main converse-level handler used by all of Charm++.
typedef std::map<int, PathHistoryTableEntry> PathHistoryTableType |
A table to store all the local nodes in the parallel dependency graph.
Definition at line 301 of file pathHistory.h.
CkpvDeclare | ( | int | , | |
traceLastHop | ||||
) |
CkpvDeclare | ( | MergeablePathHistory | , | |
currentlyExecutingPath | ||||
) |
CkpvDeclare | ( | double | , | |
timeEntryMethodStarted | ||||
) |
CkpvDeclare | ( | PathHistoryTableType | , | |
pathHistoryTable | ||||
) |
A table to store all the local nodes in the parallel dependency graph.
CkpvDeclare | ( | int | , | |
pathHistoryTableLastIdx | ||||
) |
A counter that defines the new keys for the entries in the pathHistoryTable.
void useThisCriticalPathForPriorities | ( | ) |
An interface callable by the application.
Definition at line 179 of file pathHistory.C.
References pathHistoryManagerProxy.
void automaticallySetMessagePriority | ( | envelope * | env | ) |
Callable from inside charm++ delivery mechanisms (after envelope contains epIdx):.
Definition at line 185 of file pathHistory.C.
References _entryTable, ArrayEltInitMsg, Converse::CkMyPe(), count, pathHistoryManager::criticalPathForPriorityCounts, ForArrayEltMsg, ForBocMsg, ForChareMsg, ForIDedObjMsg, ForNodeBocMsg, envelope::getArrayMgrIdx(), envelope::getEpIdx(), envelope::getMsgtype(), envelope::getPriobits(), envelope::getPrioPtr(), envelope::getsetArrayBcastEp(), int, name, and pathHistoryManagerProxy.
Referenced by criticalPath_send(), msg_prepareSend(), and msg_prepareSend_noinline().
void initializeCriticalPath | ( | void | ) |
void resetThisEntryPath | ( | void | ) |
Definition at line 336 of file pathHistory.C.
void saveCurrentPathAsUserEvent | ( | const char * | prefix | ) |
A debugging routine that outputs critical path info as user events.
A debugging routine that outputs critical path info as Projections user events.
Definition at line 342 of file pathHistory.C.
References PathHistoryTableEntry::getTotalTime(), traceUserEvent(), and traceUserSuppliedNote().
Referenced by criticalPath_end(), criticalPath_split(), and criticalPath_start().
void setCurrentlyExecutingPathTo100 | ( | void | ) |
A debugging helper routine that sets the values in the currently executing message's path to 100.
Definition at line 363 of file pathHistory.C.
void traceCriticalPathBack | ( | CkCallback | cb, | |
bool | saveToProjectionsTraces | |||
) |
Acquire the critical path and deliver it to the user supplied callback.
Definition at line 368 of file pathHistory.C.
References pathInformationMsg::cb, Converse::CkNumPes(), pathInformationMsg::historySize, pathInformationMsg::hops, pathHistoryManagerProxy, pathInformationMsg::saveAsProjectionsUserEvents, and pathInformationMsg::table_idx.
Referenced by pathHistoryManager::useCriticalPathForPriories().
void printEPInfo | ( | ) |
A debugging routine that prints the number of EPs for the program, and the size of the envelope's path fields.
A debugging routine that outputs critical path info as Projections user events.
Definition at line 383 of file pathHistory.C.
References _entryTable, and name.
void criticalPath_setep | ( | int | epIdx | ) |
void criticalPath_start | ( | envelope * | env | ) |
Save information about the critical path contained in the message that is about to execute.
Definition at line 402 of file pathHistory.C.
References _entryTable, ArrayEltInitMsg, CmiWallTimer(), ForArrayEltMsg, ForBocMsg, ForChareMsg, ForNodeBocMsg, PathHistoryEnvelope::get_sender_history_table_idx(), envelope::getEpIdx(), envelope::getMsgtype(), envelope::getsetArrayBcastEp(), envelope::getsetArrayEp(), envelope::getSrcPe(), PathHistoryEnvelope::getTotalTime(), PathHistoryTableEntry::local_ep, envelope::pathHistory, saveCurrentPathAsUserEvent(), and timeEntryMethodStarted.
void criticalPath_send | ( | envelope * | sendingEnv | ) |
Modify the envelope of a message that is being sent for critical path detection and store an entry in a table on this PE.
Definition at line 453 of file pathHistory.C.
References PathHistoryTableEntry::addToTableAndEnvelope(), automaticallySetMessagePriority(), CmiWallTimer(), envelope::pathHistory, and timeEntryMethodStarted.
Referenced by msg_prepareSend(), and msg_prepareSend_noinline().
void criticalPath_end | ( | ) |
Handle the end of the entry method in the critical path detection processes. This should create a forward dependency for the object.
Definition at line 465 of file pathHistory.C.
References saveCurrentPathAsUserEvent().
void criticalPath_split | ( | ) |
Split an entry method invocation into multiple logical tasks for the critical path analysis.
SDAG doen's break up the code in useful ways, so I'll make it add calls to this in the generated code.
Definition at line 479 of file pathHistory.C.
References PathHistoryTableEntry::addToTable(), Converse::CkMyPe(), CmiWallTimer(), PathHistoryTableEntry::getTotalTime(), saveCurrentPathAsUserEvent(), and timeEntryMethodStarted.
MergeablePathHistory * saveCurrentPath | ( | ) |
Definition at line 495 of file pathHistory.C.
void mergePathHistory | ( | MergeablePathHistory * | tmp | ) |
Definition at line 502 of file pathHistory.C.
void printPathInMsg | ( | void * | msg | ) |
A debugging routine that outputs critical path info as Projections user events.
CkpvExtern | ( | MergeablePathHistory | , | |
currentlyExecutingPath | ||||
) |
CkpvExtern | ( | double | , | |
timeEntryMethodStarted | ||||
) |
CkpvExtern | ( | PathHistoryTableType | , | |
pathHistoryTable | ||||
) |
CkpvExtern | ( | int | , | |
pathHistoryTableLastIdx | ||||
) |
A counter that defines the new keys for the entries in the pathHistoryTable.
pathHistoryManager::pathHistoryManager | ( | ) | [inherited] |
Definition at line 49 of file pathHistory.C.
void pathHistoryManager::traceCriticalPathBackStepByStep | ( | pathInformationMsg * | msg | ) | [inherited] |
Trace perform a traversal backwards over the critical path specified as a table index for the processor upon which this is called.
Trace perform a traversal backwards over the critical path specified as a table index for the processor upon which this is called.
* If msg->saveAsProjectionsUserEvents is true then the resulting path will be broadcast to broadcastCriticalPathProjections() which will then call a reduction to criticalPathProjectionsDone() which will call the user supplied callback.
Otherwise, the callback cb will be called with the resulting msg after the path has been traversed to its origin.
The callback cb will be called with the resulting msg after the path has been traversed to its origin.
Definition at line 58 of file pathHistory.C.
References pathInformationMsg::cb, Converse::CkMyPe(), Converse::CkNumPes(), count, pathInformationMsg::history, pathInformationMsg::historySize, pathInformationMsg::hops, idx, pathHistoryManager::pathForUser, pathInformationMsg::saveAsProjectionsUserEvents, CkCallback::send(), PathHistoryTableEntry::sender_history_table_idx, PathHistoryTableEntry::sender_pe, and pathInformationMsg::table_idx.
void pathHistoryManager::broadcastCriticalPathProjections | ( | pathInformationMsg * | msg | ) | [inherited] |
Definition at line 120 of file pathHistory.C.
References cb, Converse::CkMyPe(), data, disableTraceLogOutput(), enableTraceLogOutput(), PathHistoryTableEntry::get_local_path_time(), PathHistoryTableEntry::get_start_time(), pathInformationMsg::history, pathInformationMsg::historySize, PathHistoryTableEntry::local_pe, startTime, CkReduction::sum_int, traceRegisterUserEvent(), and traceUserBracketEvent().
void pathHistoryManager::criticalPathProjectionsDone | ( | CkReductionMsg * | msg | ) | [inherited] |
Definition at line 172 of file pathHistory.C.
References pathInformationMsg::cb, Converse::CkMyPe(), pathHistoryManager::pathForUser, and CkCallback::send().
void pathHistoryManager::useCriticalPathForPriories | ( | ) | [inherited] |
Traverse back and aquire the critical path to be used for automatic message prioritization.
Definition at line 243 of file pathHistory.C.
References cb, and traceCriticalPathBack().
void pathHistoryManager::saveCriticalPathForPriorities | ( | pathInformationMsg * | msg | ) | [inherited] |
Definition at line 250 of file pathHistory.C.
References _entryTable, c, Converse::CkMyPe(), pathHistoryManager::criticalPathForPriorityCounts, PathHistoryTableEntry::get_local_path_time(), PathHistoryTableEntry::get_preceding_path_time(), PathHistoryTableEntry::get_start_time(), pathInformationMsg::history, pathInformationMsg::historySize, PathHistoryTableEntry::local_ep, PathHistoryTableEntry::local_pe, and name.
Add an entry for this path history into the table, and write the corresponding information into the provided header.
Add an entry for this path history into the table, and write the corresponding information into the outgoing envelope.
Definition at line 296 of file pathHistory.C.
References PathHistoryTableEntry::addToTable(), Converse::CkMyPe(), PathHistoryTableEntry::local_path_time, envelope::pathHistory, PathHistoryTableEntry::preceding_path_time, PathHistoryEnvelope::set_sender_history_table_idx(), and PathHistoryEnvelope::setTime().
Referenced by criticalPath_send().
int PathHistoryTableEntry::addToTable | ( | ) | [inherited] |
Add an entry for this path history into the table. Returns the new index in the table.
Add an entry for this path history into the table. Returns the index in the table for it.
Definition at line 315 of file pathHistory.C.
References PathHistoryTableEntry::local_ep, PathHistoryTableEntry::local_pe, and PathHistoryTableEntry::sender_history_table_idx.
Referenced by PathHistoryTableEntry::addToTableAndEnvelope(), and criticalPath_split().
CProxy_pathHistoryManager pathHistoryManagerProxy |
Definition at line 24 of file pathHistory.C.
Referenced by automaticallySetMessagePriority(), pathHistoryMain::pathHistoryMain(), traceCriticalPathBack(), and useThisCriticalPathForPriorities().