LBDB Class Reference
[Charm++ Load Balancing Framework]

#include <LBDBManager.h>

Collaboration diagram for LBDB:

Collaboration graph
[legend]

Public Member Functions

 LBDB ()
 ~LBDB ()
void SetPeriod (double secs)
double GetPeriod ()
void insert (LBOM *om)
LDOMHandle AddOM (LDOMid _userID, void *_userData, LDCallbacks _callbacks)
LDObjHandle AddObj (LDOMHandle _h, LDObjid _id, void *_userData, CmiBool _migratable)
void UnregisterObj (LDObjHandle _h)
void RegisteringObjects (LDOMHandle _h)
void DoneRegisteringObjects (LDOMHandle _h)
void LocalBarrierOn ()
void LocalBarrierOff ()
LBOMLbOM (LDOMHandle h)
LBObjLbObj (const LDObjHandle &h) const
LBObjLbObjIdx (int h) const
void DumpDatabase (void)
void TurnStatsOn (void)
void TurnStatsOff (void)
CmiBool StatsOn (void) const
void SetupPredictor (LDPredictModelFn on, LDPredictWindowFn onWin, LDPredictFn off, LDPredictModelFn change, void *data)
void TurnPredictorOn (void *model)
void TurnPredictorOn (void *model, int wind)
void TurnPredictorOff (void)
void ChangePredictor (void *model)
void Send (const LDOMHandle &destOM, const LDObjid &destid, unsigned int bytes, int destObjProc)
void MulticastSend (const LDOMHandle &destOM, LDObjid *destids, int ndests, unsigned int bytes, int nMsgs)
int ObjDataCount ()
void GetObjData (LDObjData *data)
int CommDataCount ()
void GetCommData (LDCommData *data)
int Migrate (LDObjHandle h, int dest)
void Migrated (LDObjHandle h, int waitBarrier=1)
int NotifyMigrated (LDMigratedFn fn, void *data)
void TurnOnNotifyMigrated (int handle)
void TurnOffNotifyMigrated (int handle)
void RemoveNotifyMigrated (int handle)
void TurnManualLBOn ()
void TurnManualLBOff ()
int AddStartLBFn (LDStartLBFn fn, void *data)
void TurnOnStartLBFn (int handle)
void TurnOffStartLBFn (int handle)
void RemoveStartLBFn (LDStartLBFn fn)
void StartLB ()
void IdleTime (double *walltime)
void TotalTime (double *walltime, double *cputime)
void BackgroundLoad (double *walltime, double *cputime)
void GetTime (double *total_walltime, double *total_cputime, double *idletime, double *bg_walltime, double *bg_cputime)
void ClearLoads (void)
void SetRunningObj (const LDObjHandle &_h)
 runningObj records the obj handler index so that load balancer knows if an event(e.g.
const LDObjHandleRunningObj () const
void NoRunningObj ()
CmiBool ObjIsRunning () const
LDBarrierClient AddLocalBarrierClient (LDResumeFn fn, void *data)
void RemoveLocalBarrierClient (LDBarrierClient h)
LDBarrierReceiver AddLocalBarrierReceiver (LDBarrierFn fn, void *data)
void RemoveLocalBarrierReceiver (LDBarrierReceiver h)
void TurnOnBarrierReceiver (LDBarrierReceiver h)
void TurnOffBarrierReceiver (LDBarrierReceiver h)
void AtLocalBarrier (LDBarrierClient h)
void ResumeClients ()
void MeasuredObjTime (double wtime, double ctime)
int useMem ()

Private Types

typedef CkVec< LBOM * > OMList
typedef CkVec< LBObj * > ObjList
typedef CkVec< MigrateCB * > MigrateCBList
typedef CkVec< StartLBCB * > StartLBCBList

Private Attributes

LBCommTablecommTable
OMList oms
int omCount
int oms_registering
ObjList objs
int objCount
CmiBool statsAreOn
MigrateCBList migrateCBList
PredictCBpredictCBFn
CmiBool obj_running
int runningObj
batsyncer batsync
LocalBarrier localBarrier
CmiBool useBarrier
LBMachineUtil machineUtil
double obj_walltime
double obj_cputime
StartLBCBList startLBFnList
int startLBFn_count

Data Structures

class  batsyncer
struct  MigrateCB
struct  PredictCB
struct  StartLBCB

Detailed Description

Definition at line 69 of file LBDBManager.h.


Member Typedef Documentation

typedef CkVec<LBOM*> LBDB::OMList [private]

Definition at line 238 of file LBDBManager.h.

typedef CkVec<LBObj*> LBDB::ObjList [private]

Definition at line 239 of file LBDBManager.h.

typedef CkVec<MigrateCB*> LBDB::MigrateCBList [private]

Definition at line 240 of file LBDBManager.h.

typedef CkVec<StartLBCB*> LBDB::StartLBCBList [private]

Definition at line 241 of file LBDBManager.h.


Constructor & Destructor Documentation

LBDB::~LBDB (  )  [inline]

Definition at line 72 of file LBDBManager.h.


Member Function Documentation

void LBDB::SetPeriod ( double  secs  )  [inline]

Definition at line 74 of file LBDBManager.h.

References batsync, and LBDB::batsyncer::setPeriod().

Referenced by LDSetLBPeriod().

double LBDB::GetPeriod (  )  [inline]

Definition at line 75 of file LBDBManager.h.

References batsync, and LBDB::batsyncer::getPeriod().

Referenced by LDGetLBPeriod().

void LBDB::insert ( LBOM om  ) 

void LBDB::LocalBarrierOn ( void   )  [inline]

Definition at line 87 of file LBDBManager.h.

References localBarrier, and LocalBarrier::TurnOn().

Referenced by LDLocalBarrierOn().

void LBDB::LocalBarrierOff ( void   )  [inline]

Definition at line 89 of file LBDBManager.h.

References localBarrier, and LocalBarrier::TurnOff().

Referenced by LDLocalBarrierOff().

LBOM* LBDB::LbOM ( LDOMHandle  h  )  [inline]

Definition at line 92 of file LBDBManager.h.

References LDOMHandle::handle, and oms.

Referenced by LDOMUserData().

LBObj* LBDB::LbObj ( const LDObjHandle h  )  const [inline]

Definition at line 94 of file LBDBManager.h.

References LDObjHandle::handle, and objs.

Referenced by LBDatabase::EstObjLoad(), LDAsyncMigrate(), LDCollectStatsOn(), LDMigratable(), LDNonMigratable(), LDObjectStart(), LDObjectStop(), LDObjTime(), LDObjUserData(), and LDQueryKnownObjLoad().

LBObj* LBDB::LbObjIdx ( int  h  )  const [inline]

Definition at line 96 of file LBDBManager.h.

References objs.

Referenced by LDGetObjHandle().

void LBDB::TurnStatsOn ( void   )  [inline]

Definition at line 100 of file LBDBManager.h.

References CmiTrue, machineUtil, statsAreOn, and LBMachineUtil::StatsOn().

Referenced by LDCollectStatsOn().

void LBDB::TurnStatsOff ( void   )  [inline]

Definition at line 102 of file LBDBManager.h.

References CmiFalse, machineUtil, statsAreOn, and LBMachineUtil::StatsOff().

Referenced by LDCollectStatsOff().

CmiBool LBDB::StatsOn ( void   )  const [inline]

Definition at line 104 of file LBDBManager.h.

References statsAreOn.

Referenced by LDCollectingStats(), LDCollectStatsOn(), LDMulticastSend(), LDObjectStart(), LDObjectStop(), and LDSend().

void LBDB::TurnPredictorOn ( void *  model  )  [inline]

Definition at line 108 of file LBDBManager.h.

References CmiPrintf(), LBDB::PredictCB::data, LBDB::PredictCB::on, and predictCBFn.

Referenced by LDTurnPredictorOn(), and LDTurnPredictorOnWin().

void LBDB::TurnPredictorOn ( void *  model,
int  wind 
) [inline]

Definition at line 112 of file LBDBManager.h.

References CmiPrintf(), LBDB::PredictCB::data, LBDB::PredictCB::onWin, and predictCBFn.

void LBDB::TurnPredictorOff ( void   )  [inline]

Definition at line 116 of file LBDBManager.h.

References CmiPrintf(), LBDB::PredictCB::data, LBDB::PredictCB::off, and predictCBFn.

Referenced by LDTurnPredictorOff().

void LBDB::ChangePredictor ( void *  model  )  [inline]

Definition at line 121 of file LBDBManager.h.

References LBDB::PredictCB::change, CmiPrintf(), LBDB::PredictCB::data, and predictCBFn.

Referenced by LDChangePredictor().

int LBDB::CommDataCount (  )  [inline]

Definition at line 130 of file LBDBManager.h.

References LBCommTable::CommCount(), and commTable.

Referenced by LDGetCommDataSz().

void LBDB::GetCommData ( LDCommData data  )  [inline]

Definition at line 135 of file LBDBManager.h.

References commTable, data, and LBCommTable::GetCommData().

Referenced by LDGetCommData().

void LBDB::TurnOnNotifyMigrated ( int  handle  )  [inline]

Definition at line 141 of file LBDBManager.h.

References migrateCBList.

void LBDB::TurnOffNotifyMigrated ( int  handle  )  [inline]

Definition at line 143 of file LBDBManager.h.

References migrateCBList.

void LBDB::TurnManualLBOn (  )  [inline]

Definition at line 147 of file LBDBManager.h.

References CmiFalse, and useBarrier.

Referenced by LDTurnManualLBOn().

void LBDB::TurnManualLBOff (  )  [inline]

Definition at line 149 of file LBDBManager.h.

References CmiTrue, and useBarrier.

Referenced by LDTurnManualLBOff().

void LBDB::TurnOnStartLBFn ( int  handle  )  [inline]

Definition at line 153 of file LBDBManager.h.

References startLBFnList.

void LBDB::TurnOffStartLBFn ( int  handle  )  [inline]

Definition at line 155 of file LBDBManager.h.

References startLBFnList.

void LBDB::IdleTime ( double *  walltime  )  [inline]

Definition at line 160 of file LBDBManager.h.

References LBMachineUtil::IdleTime(), and machineUtil.

Referenced by BackgroundLoad(), GetTime(), and LDIdleTime().

void LBDB::TotalTime ( double *  walltime,
double *  cputime 
) [inline]

Definition at line 162 of file LBDBManager.h.

References machineUtil, and LBMachineUtil::TotalTime().

Referenced by BackgroundLoad(), GetTime(), and LDTotalTime().

void LBDB::SetRunningObj ( const LDObjHandle _h  )  [inline]

runningObj records the obj handler index so that load balancer knows if an event(e.g.

Send) is in an entry function or not. An index is enough here because LDObjHandle can be retrieved from objs array. Copying LDObjHandle is expensive.

Definition at line 175 of file LBDBManager.h.

References CmiTrue, LDObjHandle::handle, obj_running, and runningObj.

Referenced by LDObjectStart().

const LDObjHandle& LBDB::RunningObj (  )  const [inline]

Definition at line 177 of file LBDBManager.h.

References objs, and runningObj.

Referenced by LDCollectStatsOn(), LDObjectStart(), LDRunningObject(), MulticastSend(), LBDatabase::RunningObject(), and Send().

void LBDB::NoRunningObj (  )  [inline]

Definition at line 179 of file LBDBManager.h.

References CmiFalse, and obj_running.

Referenced by LDObjectStop().

CmiBool LBDB::ObjIsRunning (  )  const [inline]

Definition at line 181 of file LBDBManager.h.

References obj_running.

Referenced by LDCollectStatsOn(), LDObjectStart(), LDRunningObject(), and LBDatabase::RunningObject().

LDBarrierClient LBDB::AddLocalBarrierClient ( LDResumeFn  fn,
void *  data 
) [inline]

Definition at line 184 of file LBDBManager.h.

References LocalBarrier::AddClient(), and localBarrier.

Referenced by LBDB::batsyncer::init(), and LDAddLocalBarrierClient().

void LBDB::RemoveLocalBarrierClient ( LDBarrierClient  h  )  [inline]

Definition at line 186 of file LBDBManager.h.

References localBarrier, and LocalBarrier::RemoveClient().

Referenced by LDRemoveLocalBarrierClient().

LDBarrierReceiver LBDB::AddLocalBarrierReceiver ( LDBarrierFn  fn,
void *  data 
) [inline]

Definition at line 188 of file LBDBManager.h.

References LocalBarrier::AddReceiver(), and localBarrier.

Referenced by LDAddLocalBarrierReceiver().

void LBDB::RemoveLocalBarrierReceiver ( LDBarrierReceiver  h  )  [inline]

Definition at line 190 of file LBDBManager.h.

References localBarrier, and LocalBarrier::RemoveReceiver().

Referenced by LDRemoveLocalBarrierReceiver().

void LBDB::TurnOnBarrierReceiver ( LDBarrierReceiver  h  )  [inline]

Definition at line 192 of file LBDBManager.h.

References localBarrier, and LocalBarrier::TurnOnReceiver().

void LBDB::TurnOffBarrierReceiver ( LDBarrierReceiver  h  )  [inline]

Definition at line 194 of file LBDBManager.h.

References localBarrier, and LocalBarrier::TurnOffReceiver().

void LBDB::AtLocalBarrier ( LDBarrierClient  h  )  [inline]

Definition at line 196 of file LBDBManager.h.

References LocalBarrier::AtBarrier(), localBarrier, and useBarrier.

Referenced by LDAtLocalBarrier().

void LBDB::ResumeClients ( void   )  [inline]

Definition at line 198 of file LBDBManager.h.

References localBarrier, and LocalBarrier::ResumeClients().

Referenced by LDResumeClients().

void LBDB::MeasuredObjTime ( double  wtime,
double  ctime 
) [inline]

Definition at line 200 of file LBDBManager.h.

References obj_cputime, obj_walltime, and statsAreOn.

Referenced by LBObj::IncrementTime().


Field Documentation

LBCommTable* LBDB::commTable [private]

Definition at line 243 of file LBDBManager.h.

Referenced by CommDataCount(), GetCommData(), LBDB(), MulticastSend(), Send(), and useMem().

OMList LBDB::oms [private]

Definition at line 244 of file LBDBManager.h.

Referenced by AddOM(), DoneRegisteringObjects(), LbOM(), Migrate(), RegisteringObjects(), and useMem().

int LBDB::omCount [private]

Definition at line 245 of file LBDBManager.h.

Referenced by AddOM(), DumpDatabase(), and LBDB().

int LBDB::oms_registering [private]

Definition at line 246 of file LBDBManager.h.

Referenced by DoneRegisteringObjects(), LBDB(), and RegisteringObjects().

ObjList LBDB::objs [private]

Definition at line 248 of file LBDBManager.h.

Referenced by AddObj(), ClearLoads(), GetObjData(), LbObj(), LbObjIdx(), Migrate(), ObjDataCount(), RunningObj(), and UnregisterObj().

int LBDB::objCount [private]

Definition at line 249 of file LBDBManager.h.

Referenced by AddObj(), ClearLoads(), DumpDatabase(), LBDB(), Migrate(), and ObjDataCount().

CmiBool LBDB::statsAreOn [private]

Definition at line 251 of file LBDBManager.h.

Referenced by LBDB(), MeasuredObjTime(), StatsOn(), TurnStatsOff(), and TurnStatsOn().

MigrateCBList LBDB::migrateCBList [private]

Definition at line 252 of file LBDBManager.h.

Referenced by Migrated(), NotifyMigrated(), RemoveNotifyMigrated(), TurnOffNotifyMigrated(), TurnOnNotifyMigrated(), and useMem().

PredictCB* LBDB::predictCBFn [private]

Definition at line 254 of file LBDBManager.h.

Referenced by ChangePredictor(), LBDB(), SetupPredictor(), TurnPredictorOff(), and TurnPredictorOn().

CmiBool LBDB::obj_running [private]

Definition at line 256 of file LBDBManager.h.

Referenced by LBDB(), MulticastSend(), NoRunningObj(), ObjIsRunning(), Send(), and SetRunningObj().

int LBDB::runningObj [private]

Definition at line 257 of file LBDBManager.h.

Referenced by RunningObj(), and SetRunningObj().

batsyncer LBDB::batsync [private]

Definition at line 259 of file LBDBManager.h.

Referenced by GetPeriod(), LBDB(), and SetPeriod().

LocalBarrier LBDB::localBarrier [private]

Definition at line 261 of file LBDBManager.h.

Referenced by AddLocalBarrierClient(), AddLocalBarrierReceiver(), AtLocalBarrier(), DoneRegisteringObjects(), LocalBarrierOff(), LocalBarrierOn(), RegisteringObjects(), RemoveLocalBarrierClient(), RemoveLocalBarrierReceiver(), ResumeClients(), TurnOffBarrierReceiver(), and TurnOnBarrierReceiver().

CmiBool LBDB::useBarrier [private]

Definition at line 262 of file LBDBManager.h.

Referenced by AtLocalBarrier(), TurnManualLBOff(), and TurnManualLBOn().

LBMachineUtil LBDB::machineUtil [private]

Definition at line 264 of file LBDBManager.h.

Referenced by IdleTime(), TotalTime(), TurnStatsOff(), and TurnStatsOn().

double LBDB::obj_walltime [private]

Definition at line 265 of file LBDBManager.h.

Referenced by LBDB(), and MeasuredObjTime().

double LBDB::obj_cputime [private]

Definition at line 266 of file LBDBManager.h.

Referenced by BackgroundLoad(), GetTime(), LBDB(), and MeasuredObjTime().

StartLBCBList LBDB::startLBFnList [private]

Definition at line 268 of file LBDBManager.h.

Referenced by AddStartLBFn(), RemoveStartLBFn(), StartLB(), TurnOffStartLBFn(), TurnOnStartLBFn(), and useMem().

int LBDB::startLBFn_count [private]

Definition at line 269 of file LBDBManager.h.

Referenced by AddStartLBFn(), LBDB(), RemoveStartLBFn(), and StartLB().


The documentation for this class was generated from the following files:
Generated on Sun Jun 29 13:33:50 2008 for Charm++ by  doxygen 1.5.1