vtf-logo

AdlibTiming Class Reference

#include <AdlibTiming.h>

List of all members.


Detailed Description

A timing and profiling class for Adlib. The times are added to accounts. Use start() to enter a new frame and stop(account) to leave it, adding spent time to the account and go back to the previous frame (therefore recursion is allowed). The MISC account is used starting and stopping the overall timing process and WHOLE is used for storing the summed up total runtime.


Public Types

 WHOLE
 MISC
 INITIALIZATION
 INTEGRATION
 ASSEMBLE
 OUTPUT
 EXAMINE1
 EXAMINE2
 EXAMINE3
 EXAMINE4
 ELC_SNDBND_RCVPRS
 CPL_SEND_OVERHEAD
 CPL_RECEIVE_OVERHEAD
 _ACMAX
enum  TimingAccounts {
  WHOLE, MISC, INITIALIZATION, INTEGRATION,
  ASSEMBLE, OUTPUT, EXAMINE1, EXAMINE2,
  EXAMINE3, EXAMINE4, ELC_SNDBND_RCVPRS, CPL_SEND_OVERHEAD,
  CPL_RECEIVE_OVERHEAD, _ACMAX
}

Public Member Functions

void start_timing ()
void start ()
void stop (enum TimingAccounts account)
void collect_timing (MPI_Comm Comm, enum TimingAccounts ac, double *stat_times)
void collect_timing (MPI_Comm Comm)
void print_timing (std::ostream &os)
 AdlibTiming ()

Static Public Member Functions

static void collect (MPI_Comm Comm)
static void print (std::ostream &os)
static void print_local (std::ostream &os)

Protected Types

 MAXRECURSIONS = 300
enum  { MAXRECURSIONS = 300 }

Protected Member Functions

void add_time ()
template<typename T>
calcsum (typename std::vector< T > &data, int start, int end, T sum)
void pl (std::ostream &OS, char *name, enum TimingAccounts ac, bool opt=false)

Protected Attributes

std::vector< double > times
std::vector< unsigned int > calls
std::vector< double > timestack
double * tos
bool print_local_times
std::vector< double > stat_times_max
std::vector< double > stat_times_min
std::vector< double > stat_times_avg
double start_time


Member Enumeration Documentation

anonymous enum [protected]

Enumerator:
MAXRECURSIONS 

Definition of all available timing accounts. _ACMAX is used internally and must not be used as account.

Enumerator:
WHOLE 
MISC 
INITIALIZATION 
INTEGRATION 
ASSEMBLE 
OUTPUT 
EXAMINE1 
EXAMINE2 
EXAMINE3 
EXAMINE4 
ELC_SNDBND_RCVPRS 
CPL_SEND_OVERHEAD 
CPL_RECEIVE_OVERHEAD 
_ACMAX 


Constructor & Destructor Documentation

AdlibTiming::AdlibTiming (  )  [inline]


Member Function Documentation

void AdlibTiming::add_time (  )  [inline, protected]

template<typename T>
T AdlibTiming::calcsum ( typename std::vector< T > &  data,
int  start,
int  end,
sum 
) [inline, protected]

calculate sum over values of an array. The sum is calculated from account start till end (including).

static void AdlibTiming::collect ( MPI_Comm  Comm  )  [inline, static]

compatibility function for calling report generator.

void AdlibTiming::collect_timing ( MPI_Comm  Comm  )  [inline]

collect timing data of all nodes

void AdlibTiming::collect_timing ( MPI_Comm  Comm,
enum TimingAccounts  ac,
double *  stat_times 
) [inline]

collect specific timing data of all nodes

void AdlibTiming::pl ( std::ostream &  OS,
char *  name,
enum TimingAccounts  ac,
bool  opt = false 
) [inline, protected]

generate one report line.

static void AdlibTiming::print ( std::ostream &  os  )  [inline, static]

static void AdlibTiming::print_local ( std::ostream &  os  )  [inline, static]

void AdlibTiming::print_timing ( std::ostream &  os  )  [inline]

report generator

Parameters:
os the output stream to write the report to

void AdlibTiming::start (  )  [inline]

Enter a new timer frame.

void AdlibTiming::start_timing (  )  [inline]

Function to be called first, initializing the timers.

void AdlibTiming::stop ( enum TimingAccounts  account  )  [inline]

Leave timer frame.

Parameters:
account where to add elapsed time


Member Data Documentation

std::vector<unsigned int> AdlibTiming::calls [protected]

statistics

double AdlibTiming::start_time [protected]

std::vector<double> AdlibTiming::stat_times_avg [protected]

std::vector<double> AdlibTiming::stat_times_max [protected]

std::vector<double> AdlibTiming::stat_times_min [protected]

std::vector<double> AdlibTiming::times [protected]

std::vector<double> AdlibTiming::timestack [protected]

double* AdlibTiming::tos [protected]


The documentation for this class was generated from the following file:
Generated on Fri Aug 24 12:55:26 2007 for Adlib Finite Element Solver by  doxygen 1.4.7