PPL Logo

TraceCounter Class Reference
[Charm++ Trace Module]

For each processor, TraceCounter calculates mean, stdev, etc of CPU performance counters for each entry point. More...

#include <trace-counter.h>

Inheritance diagram for TraceCounter:

Inheritance graph
[legend]
Collaboration diagram for TraceCounter:

Collaboration graph
[legend]

Public Member Functions

 TraceCounter ()
 constructor
 ~TraceCounter ()
 destructor
void traceInit (char **argv)
 process command line arguments!
void traceBegin ()
 turn trace on/off, note that charm will automatically call traceBegin() at the beginning of every run unless the command line option "+traceoff" is specified
void traceEnd ()
 turn trace on/off, note that charm will automatically call traceBegin() at the beginning of every run unless the command line option "+traceoff" is specified
int traceRegisterUserEvent (const char *userEvent)
 registers user event trace module returns int identifier
void userEvent (int e)
 a user event has just occured
void creation (envelope *e, int epIdx, int num=1)
 creation of message(s)
void messageRecv (char *env, int pe)
 ???
void beginExecute (envelope *e)
 begin/end execution of a Charm++ entry point NOTE: begin/endPack and begin/endUnpack can be called in between a beginExecute and its corresponding endExecute.
void beginExecute (int event, int msgType, int ep, int srcPe, int ml=0, CmiObjId *idx=0)
 begin/end execution of a Charm++ entry point NOTE: begin/endPack and begin/endUnpack can be called in between a beginExecute and its corresponding endExecute.
void endExecute ()
 array idx
void beginIdle (double curWallTime)
 begin/end idle time for this pe
void endIdle (double curWallTime)
 begin/end idle time for this pe
void beginPack ()
 begin/end the process of packing a message (to send)
void endPack ()
 begin/end the process of packing a message (to send)
void beginUnpack ()
 begin/end the process of unpacking a message (can occur before calling a entry point or during an entry point when
void endUnpack ()
 begin/end the process of unpacking a message (can occur before calling a entry point or during an entry point when
void enqueue (envelope *e)
 ???
void dequeue (envelope *e)
void beginComputation ()
 begin/end of execution
void endComputation ()
 end computation, do a reduction here in hopes that it finishes before traceClose called and the program exits
void traceClearEps ()
 clear all data collected for entry points
void traceWriteSts ()
 write the summary sts file for this trace
void traceClose ()
 do any clean-up necessary for tracing

Private Types

enum  TC_Status { IDLE, WORKING }

Private Member Functions

void beginOverview ()
 start/stop the overall counting ov eps (don't write to logCount, just print to screen
void endOverview ()
void switchCounters ()
 switch counters by whatever switching strategy
void registerArg (CounterArg *arg)
 add the argument parameters to the linked list of args choices
bool matchArg (CounterArg *arg)
 see if the arg (str or code) matches any in the linked list of choices and sets arg->code to the SGI code return true if arg matches, false otherwise
void usage ()
 print out usage argument
void printHelp ()
 print out all arguments in the linked-list of choices

Private Attributes

int cancel_beginIdle
int cancel_endIdle
int argStrSize_
int commandLineSz_
int counter1Sz_
int counter2Sz_
CounterArgfirstArg_
CounterArglastArg_
CounterArgcommandLine_
CounterArgcounter1_
CounterArgcounter2_
bool overview_
bool switchRandom_
bool switchByPhase_
bool noLog_
bool writeByPhase_
int execEP_
int genStart_
double startEP_
double startIdle_
double idleTime_
int phase_
int reductionPhase_
TC_Status status_
bool traceOn_
bool dirty_

Data Structures

struct  CounterArg
 CounterArg is a linked list of strings that allows processing of command line args. More...

Detailed Description

For each processor, TraceCounter calculates mean, stdev, etc of CPU performance counters for each entry point.

Definition at line 91 of file trace-counter.h.


Member Enumeration Documentation

enum TraceCounter::TC_Status [private]

Enumerator:
IDLE 
WORKING 

Definition at line 169 of file trace-counter.h.


Member Function Documentation

int TraceCounter::traceRegisterUserEvent ( const char *  userEvent  )  [inline]

registers user event trace module returns int identifier

Definition at line 103 of file trace-counter.h.

void TraceCounter::userEvent ( int  e  )  [inline, virtual]

a user event has just occured

Reimplemented from Trace.

Definition at line 109 of file trace-counter.h.

void TraceCounter::creation ( envelope e,
int  epIdx,
int  num = 1 
) [inline, virtual]

creation of message(s)

Reimplemented from Trace.

Definition at line 113 of file trace-counter.h.

void TraceCounter::messageRecv ( char *  env,
int  pe 
) [inline]

???

Definition at line 115 of file trace-counter.h.

void TraceCounter::enqueue ( envelope e  )  [inline, virtual]

???

Reimplemented from Trace.

Definition at line 139 of file trace-counter.h.

void TraceCounter::dequeue ( envelope e  )  [inline, virtual]

Reimplemented from Trace.

Definition at line 140 of file trace-counter.h.


Field Documentation

Definition at line 170 of file trace-counter.h.

Definition at line 170 of file trace-counter.h.

Definition at line 173 of file trace-counter.h.

Referenced by printHelp(), and registerArg().

Definition at line 174 of file trace-counter.h.

Referenced by traceInit().

Definition at line 175 of file trace-counter.h.

Referenced by switchCounters(), and traceInit().

Definition at line 176 of file trace-counter.h.

Referenced by switchCounters(), and traceInit().

Definition at line 177 of file trace-counter.h.

Referenced by matchArg(), printHelp(), and registerArg().

Definition at line 178 of file trace-counter.h.

Referenced by registerArg().

Definition at line 179 of file trace-counter.h.

Referenced by traceInit(), and ~TraceCounter().

Definition at line 184 of file trace-counter.h.

Referenced by beginExecute(), endExecute(), traceBegin(), traceClose(), traceEnd(), and traceInit().

Definition at line 185 of file trace-counter.h.

Referenced by switchCounters(), and traceInit().

Definition at line 186 of file trace-counter.h.

Referenced by endExecute(), traceEnd(), and traceInit().

Definition at line 187 of file trace-counter.h.

Referenced by traceClose(), traceEnd(), traceInit(), and traceWriteSts().

Definition at line 188 of file trace-counter.h.

Referenced by traceBegin(), traceEnd(), and traceInit().

Definition at line 191 of file trace-counter.h.

Referenced by beginExecute(), and endExecute().

Definition at line 192 of file trace-counter.h.

Referenced by beginExecute(), beginOverview(), endExecute(), and endOverview().

double TraceCounter::startEP_ [private]

Definition at line 193 of file trace-counter.h.

Referenced by beginExecute(), beginOverview(), endExecute(), and endOverview().

double TraceCounter::startIdle_ [private]

Definition at line 194 of file trace-counter.h.

Referenced by beginIdle(), and endIdle().

double TraceCounter::idleTime_ [private]

Definition at line 197 of file trace-counter.h.

Referenced by endComputation(), endIdle(), endOverview(), traceBegin(), and traceEnd().

Definition at line 198 of file trace-counter.h.

Referenced by endOverview(), traceBegin(), and traceEnd().

Definition at line 199 of file trace-counter.h.

Referenced by traceEnd().

Definition at line 200 of file trace-counter.h.

Referenced by beginExecute(), and endExecute().

Definition at line 202 of file trace-counter.h.

Referenced by beginOverview(), endExecute(), endOverview(), traceClose(), and traceEnd().


The documentation for this class was generated from the following files:

Generated on Mon Sep 21 08:31:14 2020 for Charm++ by  doxygen 1.5.5