PPL Logo

PVT Class Reference

PVT chare group for computing local processor virtual time. More...

#include <gvt.h>

Inheritance diagram for PVT:

Inheritance graph
[legend]
Collaboration diagram for PVT:

Collaboration graph
[legend]

Public Member Functions

 PVT (void)
 Circular buffer for storing debug prints.
 PVT (CkMigrateMessage *msg)
 Migration Constructor.
void pup (PUP::er &p)
 PUP routine.
 ~PVT ()
 Destructor.
void startPhase (prioBcMsg *m)
 ENTRY: runs the PVT calculation and reports to GVT.
void startPhaseExp (prioBcMsg *m)
 ENTRY: runs the expedited PVT calculation and reports to GVT.
void setGVT (GVTMsg *m)
 ENTRY: receive GVT estimate; wake up objects.
void beginCheckpoint (eventMsg *m)
 ENTRY: begin checkpoint now that quiescence has been reached.
void resumeAfterCheckpoint (eventMsg *m)
 ENTRY: resume after checkpointing, restarting, or if checkpointing doesn't occur.
void beginLoadbalancing (eventMsg *m)
 ENTRY:.
void resumeAfterLB (eventMsg *m)
 ENTRY:.
void callAtSync ()
 ENTRY:.
void doneLB ()
POSE_TimeType getGVT ()
 Returns GVT estimate.
int getSpecEventCount ()
int getEventCount ()
void incSpecEventCount ()
void incEventCount ()
void decEventCount ()
int done ()
 Returns termination flag.
int objRegister (int arrIdx, POSE_TimeType safeTime, int sync, sim *myPtr)
 Register poser with PVT.
void objRemove (int pvtIdx)
 Unregister poser from PVT.
void objUpdate (POSE_TimeType timestamp, int sr)
 Update send/recv table at timestamp.
void objUpdateOVT (int pvtIdx, POSE_TimeType safeTime, POSE_TimeType ovt)
 Update PVT with safeTime and send/recv table at timestamp.
void reportReduce (UpdateMsg *)
 ENTRY: Reduction point for PVT reports.
void addSR (SRentry **SRs, SRentry *e, POSE_TimeType og, int ne)
 Adds incoming send/recv information to a list.
int getNumObjs ()

Private Attributes

localStatlocalStats
POSE_TimeType optPVT
 PVT of local optimistic posers.
POSE_TimeType conPVT
 PVT of local conservative posers.
POSE_TimeType estGVT
 Last GVT estimate.
POSE_TimeType repPVT
 Last reported PVT estimate.
int simdone
 Simulation termination flag.
POSE_TimeType iterMin
 Minimum send/recv timestamp in this iteration.
int waitForFirst
 Flag to indicate waiting for first send/recv of next iteration.
SRtableSendsAndRecvs
 Table to store send/recv timestamps.
pvtObjects objs
 List of objects registered with this PVT branch.
int reportTo
 reduction-related vars
int reportsExpected
int reportReduceTo
int reportEnd
int gvtTurn
 where the centralized GVT goes
int specEventCount
int eventCount
int startPhaseActive
 startPhase active flag
double parStartTime
 starting time of the simulation
int parCheckpointInProgress
 indicates if checkpointing is in progress
POSE_TimeType parLastCheckpointGVT
 GVT at which the last checkpoint was performed.
int parLBInProgress
 indicates if load balancing is in progress
POSE_TimeType parLastLBGVT
 GVT at which the last load balancing was performed.
double parLastCheckpointTime
 Time at which the last checkpoint was performed.
POSE_TimeType optGVT
 optimistic and coservative GVTs
POSE_TimeType conGVT
int rdone
SRentrySRs
 used in PVT report reduction
TimePoollocalTimePool

Detailed Description

PVT chare group for computing local processor virtual time.

Keeps track of local sends/recvs and computes processor virtual time. Interacts with GVT to obtain new estimate and invokes fossil collection and forward execution on objects with new estimate.

Definition at line 69 of file gvt.h.


Constructor & Destructor Documentation

PVT::PVT ( void   ) 

PVT::PVT ( CkMigrateMessage msg  )  [inline]

Migration Constructor.

Definition at line 129 of file gvt.h.

PVT::~PVT (  )  [inline]

Destructor.

Definition at line 133 of file gvt.h.


Member Function Documentation

void PVT::pup ( PUP::er p  )  [virtual]

void PVT::startPhase ( prioBcMsg m  ) 

void PVT::startPhaseExp ( prioBcMsg m  ) 

ENTRY: runs the expedited PVT calculation and reports to GVT.

Definition at line 136 of file gvt.C.

References startPhase().

Here is the call graph for this function:

void PVT::setGVT ( GVTMsg m  ) 

void PVT::beginCheckpoint ( eventMsg m  ) 

ENTRY: begin checkpoint now that quiescence has been reached.

Definition at line 313 of file gvt.C.

References cb, CkFreeMsg(), Converse::CkMyPe(), CkStartCheckpoint(), CmiWallTimer(), estGVT, localStats, parCheckpointInProgress, parStartTime, pose_config, POSE_Config::stats, localStat::TimerStart(), and localStat::TimerStop().

Here is the call graph for this function:

void PVT::resumeAfterCheckpoint ( eventMsg m  ) 

ENTRY: resume after checkpointing, restarting, or if checkpointing doesn't occur.

Definition at line 367 of file gvt.C.

References prioBcMsg::bc, CkFreeMsg(), Converse::CkMyPe(), CkPriorityPtr(), CkSetQueueing(), CmiWallTimer(), estGVT, int, localStats, p, parCheckpointInProgress, parLastCheckpointGVT, parStartTime, pose_config, startPhaseActive, POSE_Config::stats, localStat::TimerStart(), and localStat::TimerStop().

Here is the call graph for this function:

void PVT::beginLoadbalancing ( eventMsg m  ) 

ENTRY:.

Definition at line 332 of file gvt.C.

References CkFreeMsg(), localStats, p, parLBInProgress, pose_config, POSE_Config::stats, localStat::TimerStart(), and localStat::TimerStop().

Here is the call graph for this function:

void PVT::resumeAfterLB ( eventMsg m  ) 

void PVT::callAtSync (  ) 

ENTRY:.

Definition at line 348 of file gvt.C.

References pvtObjects::callAtSync(), localStats, objs, pose_config, POSE_Config::stats, localStat::TimerStart(), and localStat::TimerStop().

Here is the call graph for this function:

void PVT::doneLB (  ) 

Definition at line 360 of file gvt.C.

References p.

POSE_TimeType PVT::getGVT (  )  [inline]

int PVT::getSpecEventCount (  )  [inline]

Definition at line 157 of file gvt.h.

References specEventCount.

int PVT::getEventCount (  )  [inline]

Definition at line 158 of file gvt.h.

References eventCount.

void PVT::incSpecEventCount (  )  [inline]

Definition at line 159 of file gvt.h.

References specEventCount.

Referenced by adapt5::Step(), and adapt4::Step().

Here is the caller graph for this function:

void PVT::incEventCount (  )  [inline]

Definition at line 160 of file gvt.h.

References eventCount.

Referenced by adapt5::Step(), and adapt4::Step().

Here is the caller graph for this function:

void PVT::decEventCount (  )  [inline]

Definition at line 161 of file gvt.h.

References eventCount.

Referenced by opt::Rollback().

Here is the caller graph for this function:

int PVT::done (  )  [inline]

Returns termination flag.

Definition at line 163 of file gvt.h.

References simdone.

Referenced by sim::Commit().

Here is the caller graph for this function:

int PVT::objRegister ( int  arrIdx,
POSE_TimeType  safeTime,
int  sync,
sim myPtr 
)

Register poser with PVT.

Definition at line 424 of file gvt.C.

References Converse::CkMyPe(), pvtObjects::Insert(), objs, and POSE_UnsetTS.

Referenced by sim::pup().

Here is the call graph for this function:

Here is the caller graph for this function:

void PVT::objRemove ( int  pvtIdx  ) 

Unregister poser from PVT.

Definition at line 431 of file gvt.C.

References Converse::CkMyPe(), pvtObjects::Delete(), idx, and objs.

Referenced by sim::~sim().

Here is the call graph for this function:

Here is the caller graph for this function:

void PVT::objUpdate ( POSE_TimeType  timestamp,
int  sr 
)

Update send/recv table at timestamp.

Definition at line 438 of file gvt.C.

References estGVT, SRtable::Insert(), iterMin, localStats, pose_config, POSE_UnsetTS, SRtable::Restructure(), SendsAndRecvs, simdone, POSE_Config::stats, localStat::SwitchTimer(), localStat::TimerRunning(), localStat::TimerStart(), localStat::TimerStop(), and waitForFirst.

Referenced by sim::Cancel(), opt::CancelSpawn(), and sim::registerSent().

Here is the call graph for this function:

Here is the caller graph for this function:

void PVT::objUpdateOVT ( int  pvtIdx,
POSE_TimeType  safeTime,
POSE_TimeType  ovt 
)

Update PVT with safeTime and send/recv table at timestamp.

Update PVT with safeTime.

Definition at line 474 of file gvt.C.

References Converse::CkMyPe(), estGVT, pvtObjectNode::getOVT(), pvtObjectNode::getOVT2(), index, pvtObjects::objs, objs, POSE_UnsetTS, pvtObjectNode::setOVT(), pvtObjectNode::setOVT2(), and simdone.

Referenced by sim::Status().

Here is the call graph for this function:

Here is the caller graph for this function:

void PVT::reportReduce ( UpdateMsg m  ) 

void PVT::addSR ( SRentry **  SRs,
SRentry e,
POSE_TimeType  og,
int  ne 
)

Adds incoming send/recv information to a list.

Definition at line 924 of file gvt.C.

References SRentry::next, POSE_UnsetTS, SRentry::recvs, SRentry::sends, and SRentry::timestamp.

Referenced by reportReduce().

Here is the caller graph for this function:

int PVT::getNumObjs (  )  [inline]

Definition at line 176 of file gvt.h.

References pvtObjects::getNumObjs(), and objs.

Here is the call graph for this function:


Field Documentation

PVT of local optimistic posers.

Definition at line 75 of file gvt.h.

Referenced by pup(), PVT(), and startPhase().

PVT of local conservative posers.

Definition at line 77 of file gvt.h.

Referenced by pup(), PVT(), and startPhase().

Last reported PVT estimate.

Definition at line 81 of file gvt.h.

Referenced by pup().

int PVT::simdone [private]

Simulation termination flag.

Definition at line 83 of file gvt.h.

Referenced by done(), objUpdate(), objUpdateOVT(), pup(), PVT(), reportReduce(), setGVT(), and startPhase().

Minimum send/recv timestamp in this iteration.

Definition at line 85 of file gvt.h.

Referenced by objUpdate(), pup(), PVT(), and startPhase().

Flag to indicate waiting for first send/recv of next iteration.

Used to indicate when to restructure the SendsAndRecvs table

Definition at line 88 of file gvt.h.

Referenced by objUpdate(), pup(), PVT(), setGVT(), and startPhase().

Table to store send/recv timestamps.

Definition at line 90 of file gvt.h.

Referenced by objUpdate(), pup(), PVT(), and startPhase().

pvtObjects PVT::objs [private]

List of objects registered with this PVT branch.

Definition at line 92 of file gvt.h.

Referenced by callAtSync(), getNumObjs(), objRegister(), objRemove(), objUpdateOVT(), setGVT(), and startPhase().

int PVT::reportTo [private]

reduction-related vars

Definition at line 94 of file gvt.h.

Referenced by pup(), PVT(), and startPhase().

Definition at line 94 of file gvt.h.

Referenced by pup(), PVT(), and reportReduce().

Definition at line 94 of file gvt.h.

Referenced by pup(), PVT(), and reportReduce().

int PVT::reportEnd [private]

Definition at line 94 of file gvt.h.

Referenced by pup(), PVT(), and reportReduce().

int PVT::gvtTurn [private]

where the centralized GVT goes

Definition at line 96 of file gvt.h.

Referenced by pup(), PVT(), and reportReduce().

Definition at line 97 of file gvt.h.

Referenced by getSpecEventCount(), incSpecEventCount(), pup(), and PVT().

int PVT::eventCount [private]

Definition at line 97 of file gvt.h.

Referenced by decEventCount(), getEventCount(), incEventCount(), pup(), and PVT().

startPhase active flag

Definition at line 99 of file gvt.h.

Referenced by pup(), PVT(), resumeAfterCheckpoint(), resumeAfterLB(), and startPhase().

double PVT::parStartTime [private]

starting time of the simulation

Definition at line 101 of file gvt.h.

Referenced by beginCheckpoint(), pup(), PVT(), resumeAfterCheckpoint(), resumeAfterLB(), and setGVT().

indicates if checkpointing is in progress

Definition at line 103 of file gvt.h.

Referenced by beginCheckpoint(), pup(), PVT(), resumeAfterCheckpoint(), and setGVT().

GVT at which the last checkpoint was performed.

Definition at line 105 of file gvt.h.

Referenced by pup(), PVT(), resumeAfterCheckpoint(), and setGVT().

indicates if load balancing is in progress

Definition at line 107 of file gvt.h.

Referenced by beginLoadbalancing(), pup(), PVT(), resumeAfterLB(), and setGVT().

GVT at which the last load balancing was performed.

Definition at line 109 of file gvt.h.

Referenced by pup(), PVT(), resumeAfterLB(), and setGVT().

double PVT::parLastCheckpointTime [private]

Time at which the last checkpoint was performed.

Definition at line 111 of file gvt.h.

Referenced by pup(), PVT(), and setGVT().

optimistic and coservative GVTs

Definition at line 114 of file gvt.h.

Referenced by pup(), PVT(), and reportReduce().

Definition at line 114 of file gvt.h.

Referenced by pup(), PVT(), and reportReduce().

int PVT::rdone [private]

Definition at line 115 of file gvt.h.

Referenced by pup(), PVT(), and reportReduce().

SRentry* PVT::SRs [private]

used in PVT report reduction

Definition at line 117 of file gvt.h.

Referenced by pup(), PVT(), and reportReduce().

Definition at line 119 of file gvt.h.

Referenced by pup(), PVT(), and setGVT().


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

Generated on Mon Sep 21 08:28:56 2020 for Charm++ by  doxygen 1.5.5