OpenAtom
Version1.5a
|
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 |
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.