#include <gvt.h>
Public Member Functions | |
GVT (void) | |
Basic Constructor. | |
GVT (CkMigrateMessage *msg) | |
Migration Constructor. | |
void | pup (PUP::er &p) |
PUP routine. | |
int | getGVTIterationCount () |
ENTRY: return the number of GVT iterations so far. | |
void | sumGVTIterationCounts () |
ENTRY: Contribute the current GVT iteration count to a summation reduction at the end of the simulation. | |
void | runGVT (UpdateMsg *) |
ENTRY: Run the GVT. | |
void | computeGVT (UpdateMsg *) |
ENTRY: Gathers PVT reports; calculates and broadcasts GVT to PVTs. | |
void | addSR (SRentry **SRs, SRentry *e, POSE_TimeType og, int ne) |
Adds incoming send/recv information to a list. | |
Data Fields | |
int | gvtIterationCount |
Counts the number of GVT interations. | |
Private Attributes | |
localStat * | localStats |
POSE_TimeType | estGVT |
Latest GVT estimate. | |
int | inactive |
Inactivity status: number of iterations since GVT has changed. | |
POSE_TimeType | inactiveTime |
Time at which GVT last went inactive. | |
int | nextLBstart |
Number of GVT iterations since last LB run. | |
POSE_TimeType | lastEarliest |
Earliest send/recv timestamp in previous GVT invocation. | |
int | lastSends |
Number of sends at lastEarliest. | |
int | lastRecvs |
Number of receives at lastEarliest. | |
int | reportsExpected |
Number of PVT reports expected (1 or 2). | |
POSE_TimeType | optGVT |
optimistic and coservative GVTs | |
POSE_TimeType | conGVT |
int | done |
SRentry * | SRs |
used to calculate GVT from PVT reports | |
int | startOffset |
Responsibility for GVT estimation shifts between branches after each GVT invocation.
Definition at line 222 of file gvt.h.
GVT::GVT | ( | void | ) |
Basic Constructor.
Definition at line 592 of file gvt.C.
References prioBcMsg::bc, CkLocalBranch(), Converse::CkMyPe(), Converse::CkNumPes(), CkPriorityPtr(), CkSetQueueing(), conGVT, done, estGVT, gvtIterationCount, inactive, inactiveTime, int, lastEarliest, lastRecvs, lastSends, POSE_Config::lb_on, POSE_Config::lb_skip, localStats, nextLBstart, optGVT, p, pose_config, POSE_UnsetTS, reportsExpected, SRs, startOffset, and theLocalStats.
GVT::GVT | ( | CkMigrateMessage * | msg | ) | [inline] |
void GVT::pup | ( | PUP::er & | p | ) | [virtual] |
PUP routine.
Reimplemented from Group.
Definition at line 628 of file gvt.C.
References CkLocalBranch(), conGVT, done, estGVT, gvtIterationCount, inactive, inactiveTime, PUP::er::isUnpacking(), lastEarliest, lastRecvs, lastSends, localStats, nextLBstart, optGVT, SRentry::pup(), reportsExpected, SRs, startOffset, and theLocalStats.
int GVT::getGVTIterationCount | ( | ) | [inline] |
ENTRY: return the number of GVT iterations so far.
Definition at line 264 of file gvt.h.
References gvtIterationCount.
Referenced by pvtObjects::StratCalcs().
void GVT::sumGVTIterationCounts | ( | ) | [inline] |
ENTRY: Contribute the current GVT iteration count to a summation reduction at the end of the simulation.
Definition at line 268 of file gvt.h.
References CkReductionMgr::contribute(), gvtIterationCount, POSE_sumGVTIterations(), and CkReduction::sum_int.
void GVT::runGVT | ( | UpdateMsg * | m | ) |
ENTRY: Run the GVT.
Updates data fields with info from previous GVT estimation. Fires off PVT calculations on all PVT branches.
Definition at line 669 of file gvt.C.
References Converse::CkMyPe(), estGVT, UpdateMsg::inactive, inactive, UpdateMsg::inactiveTime, inactiveTime, localStats, UpdateMsg::nextLB, nextLBstart, UpdateMsg::optPVT, pose_config, UpdateMsg::runGVTflag, POSE_Config::stats, localStat::TimerStart(), and localStat::TimerStop().
void GVT::computeGVT | ( | UpdateMsg * | m | ) |
ENTRY: Gathers PVT reports; calculates and broadcasts GVT to PVTs.
Definition at line 689 of file gvt.C.
References addSR(), CkFreeMsg(), Converse::CkMyPe(), Converse::CkNumPes(), conGVT, UpdateMsg::conPVT, GVTMsg::done, done, GVTMsg::estGVT, estGVT, localStat::GvtInc(), gvtIterationCount, UpdateMsg::inactive, inactive, UpdateMsg::inactiveTime, inactiveTime, POSE_Config::lb_on, POSE_Config::lb_skip, localStats, UpdateMsg::maxSR, SRentry::next, UpdateMsg::nextLB, nextLBstart, UpdateMsg::numEntries, optGVT, UpdateMsg::optPVT, p, pose_config, POSE_endtime, POSE_stop(), POSE_UnsetTS, SRentry::recvs, reportsExpected, UpdateMsg::runGVTflag, SRentry::sends, UpdateMsg::SRs, SRs, startOffset, POSE_Config::stats, localStat::SwitchTimer(), TheLBG, localStat::TimerStart(), localStat::TimerStop(), and SRentry::timestamp.
void GVT::addSR | ( | SRentry ** | SRs, | |
SRentry * | e, | |||
POSE_TimeType | og, | |||
int | ne | |||
) |
Adds incoming send/recv information to a list.
Definition at line 869 of file gvt.C.
References SRentry::next, POSE_UnsetTS, SRentry::recvs, SRentry::sends, and SRentry::timestamp.
Referenced by computeGVT().
localStat* GVT::localStats [private] |
POSE_TimeType GVT::estGVT [private] |
int GVT::inactive [private] |
POSE_TimeType GVT::inactiveTime [private] |
int GVT::nextLBstart [private] |
POSE_TimeType GVT::lastEarliest [private] |
int GVT::lastSends [private] |
int GVT::lastRecvs [private] |
int GVT::reportsExpected [private] |
POSE_TimeType GVT::optGVT [private] |
optimistic and coservative GVTs
Definition at line 245 of file gvt.h.
Referenced by computeGVT(), GVT(), and pup().
POSE_TimeType GVT::conGVT [private] |
int GVT::startOffset [private] |
Counts the number of GVT interations.
Definition at line 255 of file gvt.h.
Referenced by computeGVT(), getGVTIterationCount(), GVT(), pup(), and sumGVTIterationCounts().