HybridBaseLB Class Reference
[Charm++ Load Balancing Framework]

#include <HybridBaseLB.h>

Inheritance diagram for HybridBaseLB:

Inheritance graph
[legend]
Collaboration diagram for HybridBaseLB:

Collaboration graph
[legend]

Public Member Functions

 HybridBaseLB (const CkLBOptions &)
 HybridBaseLB (CkMigrateMessage *m)
 ~HybridBaseLB ()
void AtSync (void)
void ProcessAtSync (void)
void ReceiveStats (CkMarshalledCLBStatsMessage &m, int fromlevel)
void ResumeClients (CkReductionMsg *msg)
void ResumeClients (int balancing)
void ReceiveMigration (LBMigrateMsg *)
void ReceiveVectorMigration (LBVectorMigrateMsg *)
void TotalObjMigrated (int count, int level)
void Migrated (LDObjHandle h, int waitBarrier)
void ObjMigrated (LDObjData data, LDCommData *cdata, int n, int level)
void VectorDone (int atlevel)
void MigrationDone (int balancing)
void StatsDone (int level)
void NotifyObjectMigrationDone (int level)
virtual void Loadbalancing (int level)
void StartCollectInfo ()
void CollectInfo (Location *loc, int n, int fromlevel)
void PropagateInfo (Location *loc, int n, int fromlevel)
void reportLBQulity (double mload, double mCpuLoad, double totalload, int nmsgs, double bytesentry)
void reportLBMem (double)

Static Public Member Functions

static void staticAtSync (void *)
static void staticMigrated (void *me, LDObjHandle h, int waitBarrier)

Protected Types

enum  StatsStrategy { FULL, SHRINK }

Protected Member Functions

virtual CmiBool QueryBalanceNow (int)
virtual CmiBool QueryMigrateStep (int)
virtual LBMigrateMsgStrategy (LDStats *stats, int count)
virtual void work (LDStats *stats, int count)
virtual LBMigrateMsgcreateMigrateMsg (LDStats *stats, int count)
virtual LBVectorMigrateMsgVectorStrategy (LDStats *stats, int count)
virtual int useMem ()
int NeighborIndex (int pe, int atlevel)

Protected Attributes

MyHierarchyTreetree
CkVec< LevelData * > levelData
int currentLevel
StatsStrategy statsStrategy

Private Member Functions

void FindNeighbors ()
CLBStatsMsgAssembleStats ()
void buildStats (int level)
CLBStatsMsgbuildCombinedLBStatsMessage (int atlevel)
void depositLBStatsMessage (CLBStatsMsg *msg, int atlevel)
void collectCommData (int objIdx, CkVec< LDCommData > &comm, int atlevel)

Private Attributes

CProxy_HybridBaseLB thisProxy
int foundNeighbors
int future_migrates_expected
LBMigrateMsg ** mig_msgs
int mig_msgs_received
int cur_ld_balancer
double start_lb_time
double maxLoad
double maxCpuLoad
double maxCommBytes
int maxCommCount
double totalLoad
double maxMem
CkVec< LocationnewObjs
int vector_n_moves

Data Structures

class  LevelData
struct  MigrationRecord

Detailed Description

Definition at line 186 of file HybridBaseLB.h.


Member Enumeration Documentation

enum HybridBaseLB::StatsStrategy [protected]

Enumerator:
FULL 
SHRINK 

Definition at line 314 of file HybridBaseLB.h.


Constructor & Destructor Documentation

HybridBaseLB::HybridBaseLB ( CkMigrateMessage m  )  [inline]

Definition at line 190 of file HybridBaseLB.h.


Member Function Documentation

virtual CmiBool HybridBaseLB::QueryBalanceNow ( int   )  [inline, protected, virtual]

Reimplemented in HybridLB.

Definition at line 235 of file HybridBaseLB.h.

References CmiTrue.

Referenced by AtSync().

virtual CmiBool HybridBaseLB::QueryMigrateStep ( int   )  [inline, protected, virtual]

Reimplemented in HybridLB.

Definition at line 236 of file HybridBaseLB.h.

References CmiTrue.


Field Documentation

CProxy_HybridBaseLB HybridBaseLB::thisProxy [private]

Definition at line 231 of file HybridBaseLB.h.

Referenced by AtSync(), CollectInfo(), HybridBaseLB(), Loadbalancing(), MigrationDone(), NotifyObjectMigrationDone(), ProcessAtSync(), PropagateInfo(), ReceiveMigration(), ReceiveStats(), ReceiveVectorMigration(), StartCollectInfo(), and StatsDone().

int HybridBaseLB::foundNeighbors [private]

Definition at line 232 of file HybridBaseLB.h.

Referenced by FindNeighbors(), and HybridBaseLB().

MyHierarchyTree* HybridBaseLB::tree [protected]

Definition at line 246 of file HybridBaseLB.h.

Referenced by buildCombinedLBStatsMessage(), FindNeighbors(), HybridBaseLB(), Loadbalancing(), MigrationDone(), ReceiveStats(), reportLBMem(), reportLBQulity(), and ~HybridBaseLB().

CkVec<LevelData *> HybridBaseLB::levelData [protected]

Definition at line 310 of file HybridBaseLB.h.

Referenced by buildCombinedLBStatsMessage(), buildStats(), collectCommData(), CollectInfo(), createMigrateMsg(), depositLBStatsMessage(), FindNeighbors(), Loadbalancing(), Migrated(), MigrationDone(), NeighborIndex(), NotifyObjectMigrationDone(), ObjMigrated(), ProcessAtSync(), PropagateInfo(), ReceiveMigration(), ReceiveStats(), ReceiveVectorMigration(), StartCollectInfo(), StatsDone(), TotalObjMigrated(), useMem(), VectorDone(), VectorStrategy(), and HybridLB::work().

int HybridBaseLB::currentLevel [protected]

Definition at line 312 of file HybridBaseLB.h.

Referenced by createMigrateMsg(), HybridBaseLB(), Loadbalancing(), VectorStrategy(), and HybridLB::work().

StatsStrategy HybridBaseLB::statsStrategy [protected]

Definition at line 315 of file HybridBaseLB.h.

Referenced by buildCombinedLBStatsMessage(), HybridBaseLB(), and Loadbalancing().

int HybridBaseLB::future_migrates_expected [private]

Definition at line 325 of file HybridBaseLB.h.

Referenced by HybridBaseLB(), and PropagateInfo().

LBMigrateMsg** HybridBaseLB::mig_msgs [private]

Definition at line 326 of file HybridBaseLB.h.

int HybridBaseLB::mig_msgs_received [private]

Definition at line 327 of file HybridBaseLB.h.

int HybridBaseLB::cur_ld_balancer [private]

Definition at line 328 of file HybridBaseLB.h.

double HybridBaseLB::start_lb_time [private]

Definition at line 329 of file HybridBaseLB.h.

Referenced by Loadbalancing(), ProcessAtSync(), and ResumeClients().

double HybridBaseLB::maxLoad [private]

Definition at line 331 of file HybridBaseLB.h.

Referenced by HybridBaseLB(), MigrationDone(), and reportLBQulity().

double HybridBaseLB::maxCpuLoad [private]

Definition at line 332 of file HybridBaseLB.h.

Referenced by HybridBaseLB(), and reportLBQulity().

double HybridBaseLB::maxCommBytes [private]

Definition at line 333 of file HybridBaseLB.h.

Referenced by HybridBaseLB(), and reportLBQulity().

int HybridBaseLB::maxCommCount [private]

Definition at line 334 of file HybridBaseLB.h.

Referenced by HybridBaseLB(), and reportLBQulity().

double HybridBaseLB::totalLoad [private]

Definition at line 335 of file HybridBaseLB.h.

Referenced by HybridBaseLB().

double HybridBaseLB::maxMem [private]

Definition at line 336 of file HybridBaseLB.h.

Referenced by HybridBaseLB(), and reportLBMem().

CkVec<Location> HybridBaseLB::newObjs [private]

Definition at line 338 of file HybridBaseLB.h.

Referenced by MigrationDone(), ObjMigrated(), PropagateInfo(), StartCollectInfo(), and useMem().

int HybridBaseLB::vector_n_moves [private]

Definition at line 340 of file HybridBaseLB.h.

Referenced by HybridBaseLB(), TotalObjMigrated(), and VectorDone().


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