OpenAtom  Version1.5a
TimeKeeper.h File Reference

A place to collect substep times. More...

#include "charm++.h"
#include <vector>
#include <string>
#include "TopoManager.h"

Go to the source code of this file.

Classes

class  TimeKeeper
 

Functions

static int keeperRegister (std::string name)
 

Variables

Config config
 
int TimeKeeperID
 
std::vector< std::string > TimeKeeperNames
 

Detailed Description

A place to collect substep times.

Each participating chare will register with the timekeeper on processor 0. Giving its name and getting the next available timekeeper id. Also handles performance counters and projections start/stop.

Then at the beginning of its notional step every chare will contribute its start time to a minimum reduction. At the end of its notional step each chare will contribute its end time to a maximum reduction. The timekeeper will print out the delta time and name for each substep when it has the min and max.

HPM will instrument one step using BG/P UPC performance counters. To use it, build libhpm.a in src_charm_driver/utilities/ copy it someplace in your lib search path and add -lhpm to link line Also add -L/bgsys/drivers/ppcfloor/runtime -lSPI.cna to link line. DO NOT use /soft/apps/UPC/lib/libhpm.a it uses MPI and will cause you a lot of grief.

Definition in file TimeKeeper.h.