PPL Logo

Charm++ Load Balancing Framework

Collaboration diagram for Charm++ Load Balancing Framework:
NullLB is a place holder load balancer, it does nothing but resume from atSync so that application won't hang in the case where there is no other load balancer around. More...

Data Structures

class  AdaptiveLB
class  BaseLB
 Base class for all LB strategies. More...
struct  MigrateInfo
 migration decision for an obj. More...
struct  MigrateDecision
class  LBScatterMsg
class  LBMigrateMsg
 message contains the migration decision from LB strategies. More...
struct  VectorMigrateInfo
class  LBVectorMigrateMsg
struct  BV_Set
class  LBInfo
class  SpanningTree
 added by Abhinav class for computing the parent and children of a processor More...
class  CentralLB
class  CLBStatsMsg
class  ProcInfo
class  ProcArray
struct  Edge
class  McastSrc
class  McastDest
struct  Vertex
class  ObjGraph
class  ProcArrayTemp
class  ObjGraphTemp
class  heapRecord
class  heapIterator
class  minHeap
class  maxHeap
class  listNode
class  Iterator
class  Set
class  ComboCentLB
class  CommAwareRefineLB::ProcLoadGreater
class  CommAwareRefineLB::ObjLoadGreater
class  CommAwareRefineLB::PeCommInfo
class  CommAwareRefineLB::ObjPeCommInfo
class  CommAwareRefineLB::ProcCommGreater
class  CommAwareRefineLB
struct  alloc_struct
class  CommLB
class  ObjectRecord
class  hRecord
class  hIterator
class  ObjectHeap
class  DummyLB
class  InfoRecord
class  computeInfo
class  processorInfo
class  GraphBFTLB
class  GraphPartLB
class  GreedyAgentLB
struct  graph
class  GreedyCommLB
class  GreedyLB::ProcLoadGreater
class  GreedyLB::ObjLoadGreater
class  GreedyLB
class  GreedyRefineLB::Solution
class  GreedyRefineLB::PHeap
class  GreedyRefineLB
class  MyHmbHierarchyTree
class  HypercubeTree
class  HbmLB
class  MyHierarchyTree
class  TwoLevelTree
class  ThreeLevelTree
class  FourLevelTree
class  KLevelTree
class  HybridBaseLB
class  HybridLB
struct  LDCommDescComp
class  LBCommData
class  LBCommTable
class  LBDBRegistry
class  CkLBArgs
class  CkLBOptions
class  LBDBInit
class  LBPredictorFunction
class  DefaultFunction
class  LBDatabase
class  SystemLoad
struct  LDHandle
struct  _LDOMid
struct  LDOMHandle
struct  _LDObjKey
struct  LDObjHandle
class  LBUserDataLayout
class  LBObjUserData
struct  LDObjData
struct  LDObjStats
struct  _LDCommDesc
struct  _LDCommData
struct  LDCallbacks
struct  LDBarrierClient
struct  LDBarrierReceiver
class  client
class  receiver
class  LocalBarrier
class  LBDB
class  LBMachineUtil
class  LBObj
class  LBOM
class  LBProfit
 a module which determines if a load balancing cycle is profitable More...
class  MetisLB
class  NborBaseLB
class  NLBStatsMsg
class  NeighborCommLB
class  NeighborLB
class  NullLB
 NullLB is inherited from BaseLB. More...
class  OrbLB
class  PhasebyArrayLB
class  RandCentLB
class  Vertex_helper
 Class to contain additional data about the vertices in object graph. More...
class  BQueue
 Class to handle the boundaries of child partitions. More...
class  RecBipartLB
struct  VertexRecord
class  Graph
struct  PartitionRecord
struct  PartitionList
class  RecBisectBfLB
class  RefineCommLB
class  RefineKLB
class  RefineLB
class  Refiner
class  RefinerComm
class  RefinerTemp
class  RefineSwapLB::ProcLoadGreater
class  RefineSwapLB::ProcLoadGreaterIndex
class  RefineSwapLB::ObjLoadGreater
class  RefineSwapLB
class  ScotchLB
class  ScotchRefineLB
class  ScotchTopoLB
class  TeamLB
class  TempAwareGreedyLB::ProcLoadGreater
class  TempAwareGreedyLB::ObjLoadGreater
class  TempAwareGreedyLB
class  TempAwareRefineLB
class  TreeMatchLB::ProcLoadGreater
class  TreeMatchLB::ObjLoadGreater
class  TreeMatchLB
class  WSLB
class  WSLBStatsMsg
struct  HGRAPH_DATA
class  ZoltanLB
class  LBTopo_smp_n< ppn >
class  LBTopo_torus_nd< dimension >
class  LBTopo_graph_nc< dimension >
class  LBTopoVec
class  LBTopology
class  LBTopo_ring
class  LBTopo_torus2d
class  LBTopo_torus3d
class  LBTopo_mesh3d
class  LBTopo_graph
void eraseObjFromParrObjs (vector< int > &parr_objs, int remove_objid)
void printMapping (vector< Vertex > &vertices)
void removeFromArray (int pe_id, vector< int > &array)
int popFromProcHeap (vector< int > &parr_above_avg, ProcArray *parr)
void handleTransfer (int randomly_obj_id, ProcInfo &p, int possible_pe, vector< int > *parr_objs, ObjGraph *ogr, ProcArray *parr)
void updateLoadInfo (int p_index, int possible_pe, double upper_threshold, double lower_threshold, vector< int > &parr_above_avg, vector< int > &parr_below_avg, vector< bool > &proc_load_info, ProcArray *parr)
void getPossiblePes (vector< int > &possible_pes, int randomly_obj_id, ObjGraph *ogr, ProcArray *parr)

Typedefs

typedef LBMigrateMsg CLBMigrateMsg
 for backward compatibility
typedef LBMigrateMsg CLBMigrateMsg
 for backward compatibility
typedef LBMigrateMsg CLBMigrateMsg
 for backward compatibility
typedef LBMigrateMsg NLBMigrateMsg
 for backward compatibility
typedef LBMigrateMsg NLBMigrateMsg
 for backward compatibility
typedef void(* LBCreateFn )()
typedef BaseLB *(* LBAllocFn )()
typedef CMK_LBTIME_TYPE LBRealType
typedef void * cvoid
typedef int LDHandle
typedef struct _LDOMid LDOMid
typedef struct _LDObjKey LDObjKey
typedef int LDObjIndex
typedef int LDOMIndex
typedef struct _LDCommDesc LDCommDesc
typedef struct _LDCommData LDCommData
typedef void(* LDMigrateFn )(LDObjHandle handle, int dest)
typedef void(* LDStatsFn )(LDOMHandle h, int state)
typedef void(* LDQueryEstLoadFn )(LDOMHandle h)
typedef void(* LDMetaLBResumeWaitingCharesFn )(LDObjHandle handle, int lb_ideal_period)
typedef void(* LDMetaLBCallLBOnCharesFn )(LDObjHandle handle)
typedef void(* LDMigratedFn )(void *data, LDObjHandle handle, int waitBarrier)
typedef void(* LDStartLBFn )(void *user_ptr)
typedef void(* LDMigrationDoneFn )(void *user_ptr)
typedef void(* LDPredictFn )(void *user_ptr)
typedef void(* LDPredictModelFn )(void *user_ptr, void *model)
typedef void(* LDPredictWindowFn )(void *user_ptr, void *model, int wind)
typedef void(* LDBarrierFn )(void *user_ptr)
typedef void(* LDResumeFn )(void *user_ptr)
typedef LBMigrateMsg NLBMigrateMsg
 for backward compatibility
typedef CkQ< intIntQueue
typedef LBTopo_smp_n< 1 > LBTopo_smp_n_1
typedef LBTopo_smp_n< 2 > LBTopo_smp_n_2
typedef LBTopo_smp_n< 3 > LBTopo_smp_n_3
typedef LBTopo_smp_n< 4 > LBTopo_smp_n_4
typedef LBTopo_smp_n< 5 > LBTopo_smp_n_5
typedef LBTopo_smp_n< 6 > LBTopo_smp_n_6
typedef LBTopo_smp_n< 7 > LBTopo_smp_n_7
typedef LBTopo_smp_n< 8 > LBTopo_smp_n_8
typedef LBTopo_smp_n< 9 > LBTopo_smp_n_9
typedef LBTopo_smp_n< 10 > LBTopo_smp_n_10
typedef LBTopo_torus_nd< 1 > LBTopo_torus_nd_1
typedef LBTopo_torus_nd< 2 > LBTopo_torus_nd_2
typedef LBTopo_torus_nd< 3 > LBTopo_torus_nd_3
typedef LBTopo_torus_nd< 4 > LBTopo_torus_nd_4
typedef LBTopo_torus_nd< 5 > LBTopo_torus_nd_5
typedef LBTopo_torus_nd< 6 > LBTopo_torus_nd_6
typedef LBTopo_torus_nd< 7 > LBTopo_torus_nd_7
typedef LBTopo_torus_nd< 8 > LBTopo_torus_nd_8
typedef LBTopo_torus_nd< 9 > LBTopo_torus_nd_9
typedef LBTopo_torus_nd< 10 > LBTopo_torus_nd_10
typedef LBTopo_torus_nd_smp< 1 > LBTopo_torus_nd_smp_1
typedef LBTopo_torus_nd_smp< 2 > LBTopo_torus_nd_smp_2
typedef LBTopo_torus_nd_smp< 3 > LBTopo_torus_nd_smp_3
typedef LBTopo_torus_nd_smp< 4 > LBTopo_torus_nd_smp_4
typedef LBTopo_torus_nd_smp< 5 > LBTopo_torus_nd_smp_5
typedef LBTopo_torus_nd_smp< 6 > LBTopo_torus_nd_smp_6
typedef LBTopo_torus_nd_smp< 7 > LBTopo_torus_nd_smp_7
typedef LBTopo_torus_nd_smp< 8 > LBTopo_torus_nd_smp_8
typedef LBTopo_torus_nd_smp< 9 > LBTopo_torus_nd_smp_9
typedef LBTopo_torus_nd_smp< 10 > LBTopo_torus_nd_smp_10
typedef LBTopo_itorus_nd< 1 > LBTopo_itorus_nd_1
typedef LBTopo_itorus_nd< 2 > LBTopo_itorus_nd_2
typedef LBTopo_itorus_nd< 3 > LBTopo_itorus_nd_3
typedef LBTopo_itorus_nd< 4 > LBTopo_itorus_nd_4
typedef LBTopo_itorus_nd< 5 > LBTopo_itorus_nd_5
typedef LBTopo_itorus_nd< 6 > LBTopo_itorus_nd_6
typedef LBTopo_itorus_nd< 7 > LBTopo_itorus_nd_7
typedef LBTopo_imesh_nd< 1 > LBTopo_imesh_nd_1
typedef LBTopo_imesh_nd< 2 > LBTopo_imesh_nd_2
typedef LBTopo_imesh_nd< 3 > LBTopo_imesh_nd_3
typedef LBTopo_imesh_nd< 4 > LBTopo_imesh_nd_4
typedef LBTopo_imesh_nd< 5 > LBTopo_imesh_nd_5
typedef LBTopo_imesh_nd< 6 > LBTopo_imesh_nd_6
typedef LBTopo_imesh_nd< 7 > LBTopo_imesh_nd_7
typedef LBTopo_graph_nc< 2 > LBTopo_graph_nc_2
typedef LBTopo_graph_nc< 3 > LBTopo_graph_nc_3
typedef LBTopo_graph_nc< 4 > LBTopo_graph_nc_4
typedef LBTopo_graph_nc< 5 > LBTopo_graph_nc_5
typedef LBTopo_graph_nc< 6 > LBTopo_graph_nc_6
typedef LBTopo_graph_nc< 7 > LBTopo_graph_nc_7
typedef LBTopo_graph_nc< 8 > LBTopo_graph_nc_8
typedef LBTopo_graph_nc< 9 > LBTopo_graph_nc_9
typedef LBTopo_graph_nc< 10 > LBTopo_graph_nc_10
typedef LBTopo_graph_nc< 20 > LBTopo_graph_nc_20
typedef LBTopo_karytree< 2 > LBTopo_2_arytree
typedef LBTopo_karytree< 3 > LBTopo_3_arytree
typedef LBTopo_karytree< 4 > LBTopo_4_arytree
typedef LBTopo_karytree< 128 > LBTopo_128_arytree
typedef LBTopo_karytree< 512 > LBTopo_512_arytree
typedef LBTopology *(* LBtopoFn )(int)

Functions

LBAllocFn getLBAllocFn (const char *lbname)
 CreateLBFunc_Def (AdaptiveLB,"Allow multiple strategies to work serially")
void CreateAdaptiveLB ()
static int i_abs (int c)
static int ObjKey (const CmiUInt8 &oid, const int hashSize)
static unsigned int primeLargerThan (unsigned int x)
BV_SetmakeSet (int *list, int size, int max)
BV_SetmakeEmptySet (int max)
void destroySet (BV_Set *set)
void bvset_insert (BV_Set *s, int value)
int bvset_find (BV_Set *s, int value)
int bvset_size (BV_Set *s)
void bvset_enumerate (BV_Set *s, int **list, int *size)
void getGlobalStep (CkGroupID)
void initMlogLBStep (CkGroupID)
 This is the first time Converse is called after AtSync method has been called by every local object.
void sendDummyMigrationCounts (int *)
 this method is used by a restarted processor to tell other processors that they are not going to receive these many objects.
 CpvExtern (void *, CkGridObject)
void UpdateLocation (MigrateInfo &migData)
void charmrun_realloc (char *s)
 CreateLBFunc_Def (CentralLB,"CentralLB base class")
static int cpufreq_sysfs_write (const char *setting, int proc)
static int cpufreq_sysfs_read (int proc)
static bool isMigratable (LDObjData **objData, int *len, int count, const LDCommData &commData)
int GetNewPeNumber (std::vector< char > avail)
void resumeCentralLbAfterChkpt (void *_lb)
void resumeAfterRestoreParallelRecovery (void *_lb)
void getPredictedLoadWithMsg (BaseLB::LDStats *stats, int count, LBMigrateMsg *msg, LBInfo &info, int considerComm)
void CreateCentralLB ()
void getLoadInfo (BaseLB::LDStats *stats, int count, LBInfo &info, int considerComm)
void gaussj (double **a, double *b, int n)
void Marquardt_coefficients (double *x, double *y, double *param, double **alpha, double *beta, double &chisq, LBPredictorFunction *predict)
bool Marquardt_solver (CentralLB::FutureModel *mod, int object)
 CreateLBFunc_Def (ComboCentLB,"Allow multiple strategies to work serially")
void CreateComboCentLB ()
 CreateLBFunc_Def (CommAwareRefineLB,"always assign the heaviest obj onto lightest loaded processor.")
void PrintProcLoad (ProcArray *parr)
void PrintProcObj (ProcArray *parr, vector< int > *parr_objs)
void CreateCommAwareRefineLB ()
BaseLBAllocateCommAwareRefineLB ()
 CreateLBFunc_Def (CommLB,"another variation of CommLB")
void init (alloc_struct **a, graph *object_graph, int l, int b)
void CreateCommLB ()
static void CreateNoLB (void)
void initCommonLBs (void)
 CreateLBFunc_Def (DummyLB,"Dummy load balancer, like a normal one but with empty strategy") DummyLB
void CreateDummyLB ()
void initEveryLB (void)
 CreateLBFunc_Def (GraphBFTLB,"Algorithm which does breadth first traversal for communication aware load balancing")
void CreateGraphBFTLB ()
 CreateLBFunc_Def (GraphPartLB,"Algorithm which uses graph partitioning for communication aware load balancing")
void CreateGraphPartLB ()
 CreateLBFunc_Def (GreedyAgentLB,"always assign the heaviest obj onto lightest loaded processor taking into account the topology")
void CreateGreedyAgentLB ()
 CreateLBFunc_Def (GreedyCommLB,"Greedy algorithm which takes communication graph into account")
static void init_data (int *assign, graph *object_graph, int l, int b)
void CreateGreedyCommLB ()
BaseLBAllocateGreedyCommLB ()
 CreateLBFunc_Def (GreedyLB,"always assign the heaviest obj onto lightest loaded processor.")
void CreateGreedyLB ()
BaseLBAllocateGreedyLB ()
 CreateLBFunc_Def (GreedyRefineLB,"Greedy refinement-based algorithm")
static void getGreedyRefineParams (int rank, float &A, float &B)
void CreateGreedyRefineLB ()
BaseLBAllocateGreedyRefineLB ()
 CreateLBFunc_Def (HbmLB,"HybridBase load balancer")
double myabs (double x)
double mymax (double x, double y)
void CreateHbmLB ()
 CreateLBFunc_Def (HybridBaseLB,"HybridBase load balancer")
LBVectorMigrateMsgVectorStrategy (BaseLB::LDStats *stats)
void CreateHybridBaseLB ()
int mymin (int x, int y)
 CreateLBFunc_Def (HybridLB,"Hybrid load balancer")
void CreateHybridLB ()
 CkpvDeclare (LBUserDataLayout, lbobjdatalayout)
 CkpvDeclare (int, _lb_obj_index)
 CkpvDeclare (int, numLoadBalancers)
 num of lb created
 CkpvDeclare (bool, hasNullLB)
 true if NullLB is created
 CkpvDeclare (bool, lbdatabaseInited)
 true if lbdatabase is inited
void LBDefaultCreate (const char *lbname)
void LBRegisterBalancer (const char *name, LBCreateFn fn, LBAllocFn afn, const char *help, int shown)
static void createLoadBalancer (const char *lbname)
void _loadbalancerInit ()
void TurnManualLBOn ()
void TurnManualLBOff ()
void LBTurnInstrumentOn ()
void LBTurnInstrumentOff ()
void LBTurnCommOn ()
void LBTurnCommOff ()
void LBClearLoads ()
void LBTurnPredictorOn (LBPredictorFunction *model)
void LBTurnPredictorOn (LBPredictorFunction *model, int wind)
void LBTurnPredictorOff ()
void LBChangePredictor (LBPredictorFunction *model)
void LBSetPeriod (double second)
int LBRegisterObjUserData (int size)
 PUPbytes (CkLBOptions) extern CkGroupID _lbdb
 CkpvExtern (int, numLoadBalancers)
 CkpvExtern (bool, hasNullLB)
 CkpvExtern (bool, lbdatabaseInited)
void LBDefaultCreate (LBCreateFn f)
void _LBDBInit ()
LBDatabaseLBDatabaseObj ()
void CkStartLB ()
void get_avail_vector (char *bitmap)
void set_avail_vector (char *bitmap)
LDHandle LDCreate (void)
LDOMHandle LDRegisterOM (LDHandle _db, LDOMid _userID, void *_userptr, LDCallbacks _callbacks)
void LDUnregisterOM (LDHandle _db, LDOMHandle om)
void LDOMMetaLBResumeWaitingChares (LDHandle _db, int lb_ideal_period)
void LDOMMetaLBCallLBOnChares (LDHandle _db)
void * LDOMUserData (LDOMHandle &_h)
void LDRegisteringObjects (LDOMHandle _h)
void LDDoneRegisteringObjects (LDOMHandle _h)
LDObjHandle LDRegisterObj (LDOMHandle _h, CmiUInt8 _id, void *_userData, bool _migratable)
void LDUnregisterObj (LDObjHandle _h)
const LDObjHandleLDGetObjHandle (LDHandle h, int oh)
void LDObjTime (LDObjHandle &_h, LBRealType walltime, LBRealType cputime)
void LDGetObjLoad (LDObjHandle &_h, LBRealType *wallT, LBRealType *cpuT)
void LDQueryKnownObjLoad (LDObjHandle &_h, LBRealType *wallT, LBRealType *cpuT)
void * LDObjUserData (LDObjHandle &_h)
void * LDDBObjUserData (LDObjHandle &_h, int idx)
void LDDumpDatabase (LDHandle _db)
void LDNotifyMigrated (LDHandle _db, LDMigratedFn fn, void *data)
void LDAddStartLBFn (LDHandle _db, LDStartLBFn fn, void *data)
void LDRemoveStartLBFn (LDHandle _db, LDStartLBFn fn)
void LDStartLB (LDHandle _db)
void LDTurnManualLBOn (LDHandle _db)
void LDTurnManualLBOff (LDHandle _db)
int LDAddMigrationDoneFn (LDHandle _db, LDMigrationDoneFn fn, void *data)
void LDRemoveMigrationDoneFn (LDHandle _db, LDMigrationDoneFn fn)
void LDMigrationDone (LDHandle _db)
void LDTurnPredictorOn (LDHandle _db, void *model)
void LDTurnPredictorOnWin (LDHandle _db, void *model, int wind)
void LDTurnPredictorOff (LDHandle _db)
void LDChangePredictor (LDHandle _db, void *model)
void LDCollectStatsOn (LDHandle _db)
void LDCollectStatsOff (LDHandle _db)
int CLDCollectingStats (LDHandle _db)
int CLDRunningObject (LDHandle _h, LDObjHandle *_o)
void LDObjectStart (const LDObjHandle &_h)
void LDObjectStop (const LDObjHandle &_h)
void LDSend (const LDOMHandle &destOM, const CmiUInt8 &destid, unsigned int bytes, int destObjProc, int force)
void LDMulticastSend (const LDOMHandle &destOM, CmiUInt8 *destids, int ndests, unsigned int bytes, int nMsgs)
void LDBackgroundLoad (LDHandle _db, LBRealType *walltime, LBRealType *cputime)
void LDIdleTime (LDHandle _db, LBRealType *walltime)
void LDTotalTime (LDHandle _db, LBRealType *walltime, LBRealType *cputime)
void LDGetTime (LDHandle _db, LBRealType *total_walltime, LBRealType *total_cputime, LBRealType *idletime, LBRealType *bg_walltime, LBRealType *bg_cputime)
void LDNonMigratable (const LDObjHandle &h)
void LDMigratable (const LDObjHandle &h)
void LDSetPupSize (const LDObjHandle &h, size_t obj_pup_size)
void LDAsyncMigrate (const LDObjHandle &h, bool async)
void LDClearLoads (LDHandle _db)
int LDGetObjDataSz (LDHandle _db)
void LDGetObjData (LDHandle _db, LDObjData *data)
int LDGetCommDataSz (LDHandle _db)
void LDGetCommData (LDHandle _db, LDCommData *data)
void LDGetCommInfo (LDHandle _db, int &bytes, int &msgs, int &withinbytes, int &outsidebytes, int &n_nghbors, int &hops, int &hopbytes)
int LDMigrate (LDObjHandle _h, int dest)
void LDMigrated (LDObjHandle _h, int waitBarrier)
LDBarrierClient LDAddLocalBarrierClient (LDHandle _db, LDResumeFn fn, void *data)
void LDRemoveLocalBarrierClient (LDHandle _db, LDBarrierClient h)
LDBarrierReceiver LDAddLocalBarrierReceiver (LDHandle _db, LDBarrierFn fn, void *data)
void LDRemoveLocalBarrierReceiver (LDHandle _db, LDBarrierReceiver h)
void LDAtLocalBarrier (LDHandle _db, LDBarrierClient h)
void LDDecreaseLocalBarrier (LDHandle _db, LDBarrierClient h, int c)
void LDLocalBarrierOn (LDHandle _db)
void LDLocalBarrierOff (LDHandle _db)
void LDResumeClients (LDHandle _db)
static void work (int iter_block, int *result)
int LDProcessorSpeed ()
void LDSetLBPeriod (LDHandle _db, double s)
double LDGetLBPeriod (LDHandle _db)
void LDQueryEstLoad (LDHandle bdb)
int LDMemusage (LDHandle _db)
bool LDOMidEqual (const LDOMid &i1, const LDOMid &i2)
bool _LDOMid::operator== (const struct _LDOMid &omId) const
bool _LDOMid::operator< (const struct _LDOMid &omId) const
bool _LDOMid::operator!= (const struct _LDOMid &omId) const
void _LDOMid::pup (PUP::er &p)
void LDOMHandle::pup (PUP::er &p)
bool _LDObjKey::operator== (const _LDObjKey &obj) const
bool _LDObjKey::operator< (const _LDObjKey &obj) const
LDOMid_LDObjKey::omID ()
CmiUInt8_LDObjKey::objID ()
const LDOMid_LDObjKey::omID () const
const CmiUInt8_LDObjKey::objID () const
void _LDObjKey::pup (PUP::er &p)
const LDOMidLDObjHandle::omID () const
const CmiUInt8LDObjHandle::objID () const
void LDObjHandle::pup (PUP::er &p)
 LBUserDataLayout::LBUserDataLayout ()
int LBUserDataLayout::claim (int size)
int LBUserDataLayout::size ()
 CkpvExtern (LBUserDataLayout, lbobjdatalayout)
 LBObjUserData::LBObjUserData ()
 LBObjUserData::LBObjUserData (const LBObjUserData &d)
 LBObjUserData::~LBObjUserData ()
LBObjUserDataLBObjUserData::operator= (const LBObjUserData &d)
void LBObjUserData::init ()
void LBObjUserData::pup (PUP::er &p)
void * LBObjUserData::getData (int idx)
const LDOMHandleLDObjData::omHandle () const
const LDOMidLDObjData::omID () const
const CmiUInt8LDObjData::objID () const
const CmiUInt8LDObjData::id () const
void LDObjData::pup (PUP::er &p)
void * LDObjData::getUserData (int idx)
void LDObjStats::pup (PUP::er &p)
char & _LDCommDesc::get_type ()
char _LDCommDesc::get_type () const
int _LDCommDesc::proc () const
void _LDCommDesc::setProc (int pe)
int _LDCommDesc::lastKnown () const
LDObjKey_LDCommDesc::get_destObj ()
LDObjKey const & _LDCommDesc::get_destObj () const
LDObjKey_LDCommDesc::get_destObjs (int &len)
void _LDCommDesc::init_objmsg (LDOMid &omid, CmiUInt8 &objid, int destObjProc)
void _LDCommDesc::init_mcastmsg (LDOMid &omid, CmiUInt8 *objid, int len)
bool _LDCommDesc::operator== (const _LDCommDesc &obj) const
_LDCommDesc_LDCommDesc::operator= (const _LDCommDesc &c)
void _LDCommDesc::pup (PUP::er &p)
_LDCommData_LDCommData::operator= (const _LDCommData &o)
int _LDCommData::from_proc () const
int _LDCommData::recv_type () const
void _LDCommData::pup (PUP::er &p)
void _LDCommData::clearHash ()
void LBBalance (void *param)
void LBCollectStatsOn (void)
void LBCollectStatsOff (void)
void LDMessage (LDObjHandle from, LDOMid toOM, CmiUInt8 *toID, int bytes)
void LDEstObjLoad (LDObjHandle h, double load)
 LDBarrierClient::LDBarrierClient ()
 LDBarrierClient::LDBarrierClient (std::list< client * >::iterator in)
 LDBarrierReceiver::LDBarrierReceiver ()
 LDBarrierReceiver::LDBarrierReceiver (std::list< receiver * >::iterator in)
 PUPbytes (LDHandle) inline void LDOMid
 PUPmarshall (LDOMid) inline void LDObjKey
 PUPmarshall (LDObjKey) inline void LDObjStats
 PUPmarshall (LDObjStats) inline void LDOMHandle
 PUPmarshall (LDOMHandle) inline void LDObjHandle
 PUPmarshall (LDObjHandle) inline void LBObjUserData
 PUPmarshall (LBObjUserData) inline void LDObjData
 PUPmarshall (LDObjData) inline bool LDCommDesc
 PUPmarshall (LDCommDesc) inline void LDCommData
static void handler (char *bit_map)
void manager_init (void)
 Cluster Manager Code, Accpets external bit vectors and then feeds it into the loadbalancer so that programs can shrink and expand.
 CreateLBFunc_Def (MetisLB,"Use Metis(tm) to partition object graph")
void CreateMetisLB ()
BaseLBAllocateMetisLB ()
void CreateNborBaseLB ()
 CreateLBFunc_Def (NeighborCommLB,"The neighborhood load balancer with communication")
void CreateNeighborCommLB ()
 CreateLBFunc_Def (NeighborLB,"The neighborhood load balancer")
void CreateNeighborLB ()
void CreateNullLB (void)
static void migrationDone (envelope *env, CkCoreState *ck)
static void lbinit (void)
static void lbprocinit (void)
static void staticStartLB (void *data)
 CreateLBFunc_Def (OrbLB,"partition objects based on coordinates")
void CreateOrbLB ()
BaseLBAllocateOrbLB (void)
 CreateLBFunc_Def (PhasebyArrayLB,"Load balancer which balances many arrays together, specifically for CPAIMD") PhasebyArrayLB
void CreatePhasebyArrayLB ()
 CreateLBFunc_Def (RandCentLB,"Assign objects to processors randomly")
int chooseProc (int count)
void CreateRandCentLB ()
void RecursiveBiPart (ObjGraph *, vector< Vertex * > &, int, int)
void adjustqueues (ObjGraph *, BQueue *, BQueue *, vector< Vertex * > &, vector< Vertex * > &, int *, int)
void adjustgain (ObjGraph *, vector< Vertex * > &, BQueue *)
void RefineBoundary (ObjGraph *, vector< Vertex * > &, vector< Vertex * > &, BQueue *, BQueue *, int, int, int, double, double, double)
int modifypartitions (ObjGraph *, vector< Vertex * > &, vector< Vertex * > &, BQueue *, BQueue *, int, int)
void swapQ1toQ2 (ObjGraph *, BQueue *, BQueue *, int)
VertexremoveinSwap (ObjGraph *, BQueue *, BQueue *, int)
VertexremovePtr (vector< Vertex * > &, int)
 CreateLBFunc_Def (RecBipartLB,"Algorithm for load balacing based on recursive bipartitioning of object graph")
Graphg_initGraph (int v, int e)
 Status: does not support processor avail bitvector does not support nonmigratable attrib.
void g_freeGraph (Graph *g)
void g_nextVertex (Graph *g, int v, float w)
void g_finishVertex (Graph *g)
void g_addEdge (Graph *g, int w, float w2)
float graph_weightof (Graph *g, int vertex)
int g_numNeighbors (Graph *g, int node)
int g_getNeighbor (Graph *g, int d, int i)
void g_printGraph (Graph *g)
 CreateLBFunc_Def (RecBisectBfLB,"Recursive partitioning with Breadth first enumeration")
void printPartition (Graph *g, int nodes[], int numNodes)
int intSqrt (int x)
GraphgenerateRandomGraph (int numNodes)
void CreateRecBisectBfLB ()
BaseLBAllocateRecBisectBfLB ()
 CreateLBFunc_Def (RefineCommLB,"Average load among processors by moving objects away from overloaded processor, communication aware") RefineCommLB
void CreateRefineCommLB ()
BaseLBAllocateRefineCommLB ()
 CreateLBFunc_Def (RefineKLB,"Move objects away from overloaded processor to reach average")
void CreateRefineKLB ()
BaseLBAllocateRefineKLB ()
 CreateLBFunc_Def (RefineLB,"Move objects away from overloaded processor to reach average")
void CreateRefineLB ()
BaseLBAllocateRefineLB ()
 CreateLBFunc_Def (RefineSwapLB,"always assign the heaviest obj onto lightest loaded processor.")
void addObjToProc (ProcArray *parr, ObjGraph *ogr, std::vector< int > *pe_obj, int pe_index, int obj_index)
void removeObjFromProc (ProcArray *parr, ObjGraph *ogr, std::vector< int > *pe_obj, int pe_index, int arr_index)
int getMax (ProcArray *parr, std::vector< int > &max_pe_heap)
bool refine (ProcArray *parr, ObjGraph *ogr, std::vector< int > &max_pe_heap, std::vector< int > &min_pe_heap, std::vector< int > *pe_obj, int max_pe, double avg_load, double threshold)
bool IsSwapPossWithPe (ProcArray *parr, ObjGraph *ogr, std::vector< int > *pe_obj, std::vector< int > &max_pe_heap, std::vector< int > &min_pe_heap, int max_pe, int pe_considered, int pe_cons_iter, double diff, double avg_load, double threshold)
bool refineSwap (ProcArray *parr, ObjGraph *ogr, std::vector< int > &max_pe_heap, std::vector< int > &min_pe_heap, std::vector< int > *pe_obj, int max_pe, double avg_load, double threshold)
void CreateRefineSwapLB ()
BaseLBAllocateRefineSwapLB ()
 CreateLBFunc_Def (ScotchLB,"Load balancing using the Scotch graph partitioning library")
void CreateScotchLB ()
 CreateLBFunc_Def (ScotchRefineLB,"Load balancing using the Scotch graph partitioning library")
void CreateScotchRefineLB ()
 CreateLBFunc_Def (ScotchTopoLB,"Load balancing using the Scotch graph partitioning library")
void CreateScotchTopoLB ()
 CreateLBFunc_Def (TeamLB,"Use Metis(tm) to partition object graph at two levels: team level and processor level")
void CreateTeamLB ()
BaseLBAllocateTeamLB ()
 CreateLBFunc_Def (TempAwareGreedyLB,"always assign the heaviest obj onto lightest loaded processor.")
void CreateTempAwareGreedyLB ()
BaseLBAllocateTempAwareGreedyLB ()
 CreateLBFunc_Def (TempAwareRefineLB,"always assign the heaviest obj onto lightest loaded processor.")
void printCurrentTemperature (void *LB, double curWallTime)
int getProcFreqPtr (int *freqs, int numAvail, int freq)
int getTaskIdForMigration (ObjGraph *ogr, int pe, int start)
int getNumTasks (ObjGraph *ogr, int pe)
int getTaskIdForMigration (ObjGraph *ogr, int pe, std::vector< int > assTasks)
bool saneFreqNormLds (double *loads, int numProcs)
void CreateTempAwareRefineLB ()
BaseLBAllocateTempAwareRefineLB ()
 CreateLBFunc_Def (TreeMatchLB,"TreeMatch load balancer, like a normal one but with empty strategy") TreeMatchLB
double * get_comm_speed (int *depth)
tm_topology_tbuild_abe_topology (int nb_procs)
void CreateTreeMatchLB ()
 CreateLBFunc_Def (WSLB,"Workstation load balancer")
void CreateWSLB ()
static int get_number_of_vertices (void *data, int *ierr)
static void get_vertex_list (void *data, int sizeGID, int sizeLID, ZOLTAN_ID_PTR globalID, ZOLTAN_ID_PTR localID, int wgt_dim, float *obj_wgts, int *ierr)
static void get_hypergraph_size (void *data, int *num_lists, int *num_nonzeroes, int *format, int *ierr)
static void get_hypergraph (void *data, int sizeGID, int num_edges, int num_nonzeroes, int format, ZOLTAN_ID_PTR edgeGID, int *vtxPtr, ZOLTAN_ID_PTR vtxGID, int *ierr)
static void get_hypergraph_edge_size (void *data, int *num_edges, int *ierr)
static void get_hypergraph_edge_wgts (void *data, int numGID, int numLID, int num_edges, int edge_weight_dim, ZOLTAN_ID_PTR edgeGID, ZOLTAN_ID_PTR edgeLID, float *edge_wgts, int *ierr)
 CreateLBFunc_Def (ZoltanLB,"Use Zoltan(tm) to partition object graph")
void CreateZoltanLB ()
BaseLBAllocateZoltanLB ()
virtual int LBTopo_smp_n::max_neighbors ()
virtual void LBTopo_smp_n::neighbors (int mype, int *_n, int &nb)
int LBTopo_smp_n::get_hop_count (int src, int dest)
 LBTOPO_MACRO (LBTopo_smp_n_1)
 LBTOPO_MACRO (LBTopo_torus2d)
static int checkuniq (int *arr, int nb, int val)
 LBTOPO_MACRO (LBTopo_torus3d)
 LBTOPO_MACRO (LBTopo_mesh3d)
int LBTopo_torus_nd::GetNeighborID (int ProcessorID, int number)
 LBTopo_torus_nd::LBTopo_torus_nd (int p)
 LBTopo_torus_nd::~LBTopo_torus_nd ()
virtual int LBTopo_torus_nd::max_neighbors ()
virtual void LBTopo_torus_nd::neighbors (int mype, int *_n, int &nb)
virtual int LBTopo_torus_nd::get_dimension ()
virtual bool LBTopo_torus_nd::get_processor_coordinates (int processor_id, int *processor_coordinates)
virtual bool LBTopo_torus_nd::get_processor_id (const int *processor_coordinates, int *processor_id)
virtual bool LBTopo_torus_nd::coordinate_difference (const int *my_coordinates, const int *target_coordinates, int *difference)
virtual bool LBTopo_torus_nd::coordinate_difference (int my_processor_id, int target_processor_id, int *difference)
 LBTOPO_MACRO (LBTopo_torus_nd_1)
 LBTOPO_MACRO (LBTopo_torus_nd_smp_1)
 LBTOPO_MACRO (LBTopo_itorus_nd_1)
 LBTOPO_MACRO (LBTopo_imesh_nd_1)
void gengraph (int, int, int, int *, int *, int)
int LBTopo_graph_nc::max_neighbors ()
void LBTopo_graph_nc::neighbors (int mype, int *na, int &nb)
 LBTOPO_MACRO (LBTopo_graph_nc_2)
 LBTOPO_MACRO (LBTopo_complete)
 LBTOPO_MACRO (LBTopo_2_arytree)
 LBTopoVec::LBTopoVec ()
 LBTopoVec::~LBTopoVec ()
void LBTopoVec::push_back (LBTopoMap *map)
int LBTopoVec::length ()
LBTopoMap * LBTopoVec::operator[] (size_t n)
void LBTopoVec::print ()
void LBTopoInit ()
LBtopoFn LBTopoLookup (const char *name)
void getTopoNeighbors (void *topo, int myid, int *narray, int *n)
int getTopoMaxNeighbors (void *topo)
void printoutTopo ()
 LBTopology::LBTopology (int p)
virtual LBTopology::~LBTopology ()
virtual int LBTopology::max_neighbors ()=0
virtual void LBTopology::neighbors (int mype, int *_n, int &nb)=0
virtual int LBTopology::get_dimension ()
virtual bool LBTopology::get_processor_coordinates (int processor_id, int *processor_coordinates)
virtual bool LBTopology::get_processor_id (const int *processor_coordinates, int *processor_id)
virtual bool LBTopology::coordinate_difference (const int *my_coordinates, const int *target_coordinates, int *difference)
virtual bool LBTopology::coordinate_difference (int my_processor_id, int target_processor_id, int *difference)
virtual int LBTopology::get_hop_count (int src, int dest)
virtual int LBTopology::rec_hop_count (int src, int dest, int max_neigh, int count, int *visited_srcs, int min_hop_cnt)
virtual double LBTopology::per_hop_delay (int last_hop)
virtual void LBTopology::get_pairwise_hop_count (double **dist)
virtual int LBTopo_ring::max_neighbors ()
virtual void LBTopo_ring::neighbors (int mype, int *_n, int &nb)
virtual int LBTopo_ring::get_hop_count (int src, int dest)
int LBTopo_torus2d::goodcoor (int, int)
 LBTopo_torus2d::LBTopo_torus2d (int p)
virtual int LBTopo_torus2d::max_neighbors ()
virtual void LBTopo_torus2d::neighbors (int mype, int *_n, int &nb)
virtual int LBTopo_torus2d::get_hop_count (int src, int dest)
int LBTopo_torus3d::goodcoor (int, int, int)
 LBTopo_torus3d::LBTopo_torus3d (int p)
virtual int LBTopo_torus3d::max_neighbors ()
virtual void LBTopo_torus3d::neighbors (int mype, int *_n, int &nb)
int LBTopo_mesh3d::goodcoor (int, int, int)
 LBTopo_mesh3d::LBTopo_mesh3d (int p)
virtual int LBTopo_mesh3d::max_neighbors ()
virtual void LBTopo_mesh3d::neighbors (int mype, int *_n, int &nb)
virtual int LBTopo_graph::max_neighbors ()
virtual void LBTopo_graph::neighbors (int mype, int *_n, int &nb)
virtual void AdaptiveLB::work (LDStats *stats)
void BaseLB::initLB (const CkLBOptions &)
virtual BaseLB::~BaseLB ()
void BaseLB::unregister ()
virtual void BaseLB::pup (PUP::er &p)
virtual void BaseLB::flushStates ()
 BaseLB::LDStats::LDStats (int c=0, int complete_flag=1)
void BaseLB::LDStats::makeCommHash ()
 build hash table
void BaseLB::LDStats::deleteCommHash ()
int BaseLB::LDStats::getHash (const CmiUInt8 &oid, const LDOMid &mid)
int BaseLB::LDStats::getHash (const LDObjKey &)
 given an LDObjKey, returns the index in the objData vector this index changes every time one does load balancing even within a run
int BaseLB::LDStats::getSendHash (LDCommData &cData)
int BaseLB::LDStats::getRecvHash (LDCommData &cData)
void BaseLB::LDStats::clearCommHash ()
void BaseLB::LDStats::computeNonlocalComm (int &nmsgs, int &nbytes)
void BaseLB::LDStats::normalize_speed ()
void BaseLB::LDStats::print ()
double BaseLB::LDStats::computeAverageLoad ()
void BaseLB::LDStats::removeObject (int obj)
void BaseLB::LDStats::pup (PUP::er &p)
int BaseLB::LDStats::useMem ()
static void CentralLB::staticMigrated (void *me, LDObjHandle h, int waitBarrier=1)
static void CentralLB::staticAtSync (void *)
void CentralLB::initLB (const CkLBOptions &)
virtual CentralLB::~CentralLB ()
void CentralLB::turnOn ()
void CentralLB::turnOff ()
void CentralLB::SetPESpeed (int)
int CentralLB::GetPESpeed ()
void CentralLB::AtSync (void)
void CentralLB::ProcessAtSync (void)
float CentralLB::getTemp (int)
void CentralLB::ReceiveCounts (int *counts, int n)
void CentralLB::BuildStatsMsg ()
void CentralLB::SendStats ()
void CentralLB::Migrated (int waitBarrier=1)
void CentralLB::MissMigrate (int waitForBarrier)
void CentralLB::buildStats ()
void CentralLB::depositData (CLBStatsMsg *m)
void CentralLB::ReceiveStatsFromRoot (CkMarshalledCLBStatsMessage &&msg)
void CentralLB::ReceiveStats (CkMarshalledCLBStatsMessage &&msg)
void CentralLB::ReceiveStatsViaTree (CkMarshalledCLBStatsMessage &&msg)
 added by Abhinav for receiving msgs via spanning tree
void CentralLB::LoadBalance (void)
void CentralLB::ApplyDecision (void)
void CentralLB::t_LoadBalance (void)
void CentralLB::InitiateScatter (LBMigrateMsg *msg)
void CentralLB::ScatterMigrationResults (LBScatterMsg *)
void CentralLB::removeNonMigratable (LDStats *statsDataList, int count)
void CentralLB::ReceiveMigration (LBScatterMsg *)
void CentralLB::ReceiveMigration (LBMigrateMsg *)
void CentralLB::ProcessMigrationDecision ()
void CentralLB::ProcessReceiveMigration ()
void CentralLB::ReceiveDummyMigration (int _step)
void CentralLB::CheckForRealloc ()
void CentralLB::ResumeFromReallocCheckpoint ()
void CentralLB::WillIbekilled (std::vector< char > avail, int)
void CentralLB::StartCleanup ()
void CentralLB::MigrationDone (int balancing)
void CentralLB::MigrationDoneImpl (int)
void CentralLB::endMigrationDone (int balancing)
void CentralLB::ResumeClients ()
void CentralLB::ResumeClients (int)
void CentralLB::CheckMigrationComplete ()
void CentralLB::removeCommDataOfDeletedObjs (LDStats *stats)
void CentralLB::preprocess (LDStats *stats)
void CentralLB::printStrategyStats (LBMigrateMsg *msg)
virtual LBMigrateMsgCentralLB::Strategy (LDStats *stats)
virtual void CentralLB::changeFreq (int n)
virtual void CentralLB::work (LDStats *stats)
virtual LBMigrateMsgCentralLB::createMigrateMsg (LDStats *stats)
virtual LBMigrateMsgCentralLB::extractMigrateMsg (LBMigrateMsg *m, int p)
void CentralLB::simulationWrite ()
void CentralLB::simulationRead ()
void CentralLB::readStatsMsgs (const char *filename)
void CentralLB::writeStatsMsgs (const char *filename)
void CentralLB::findSimResults (LDStats *stats, int count, LBMigrateMsg *msg, LBSimulation *simResults)
void CentralLB::pup (PUP::er &p)
int CentralLB::useMem ()
 CLBStatsMsg::CLBStatsMsg (int osz, int csz)
 CLBStatsMsg is not a real message now.
 CLBStatsMsg::~CLBStatsMsg ()
void CLBStatsMsg::pup (PUP::er &p)
void CkMarshalledCLBStatsMessage::free ()
void CkMarshalledCLBStatsMessage::add (CkMarshalledCLBStatsMessage &&msg)
void CkMarshalledCLBStatsMessage::pup (PUP::er &p)
 SpanningTree::SpanningTree ()
void SpanningTree::calcParent (int n)
void SpanningTree::calcNumChildren (int n)
static void CentralLB::staticPredictorOn (void *data, void *model)
static void CentralLB::staticPredictorOnWin (void *data, void *model, int wind)
static void CentralLB::staticPredictorOff (void *data)
static void CentralLB::staticChangePredictor (void *data, void *model)
 ProcArray::ProcArray (BaseLB::LDStats *stats)
void ProcArray::resetTotalLoad ()
 ObjGraph::ObjGraph (BaseLB::LDStats *stats)
void ObjGraph::convertDecisions (BaseLB::LDStats *stats)
void ProcArrayTemp::convertToInsts (BaseLB::LDStats *)
void ObjGraphTemp::convertToInsts (BaseLB::LDStats *)
 minHeap::minHeap (int size)
 minHeap::~minHeap ()
int minHeap::insert (InfoRecord *)
InfoRecordminHeap::deleteMin ()
InfoRecordminHeap::iterator (heapIterator *)
InfoRecordminHeap::next (heapIterator *)
int minHeap::least (int a, int b, int c)
void minHeap::update (InfoRecord *)
void minHeap::update (int index)
 maxHeap::maxHeap (int size)
 maxHeap::~maxHeap ()
int maxHeap::numElements ()
int maxHeap::insert (InfoRecord *)
InfoRecordmaxHeap::deleteMax ()
InfoRecordmaxHeap::iterator (heapIterator *)
InfoRecordmaxHeap::next (heapIterator *)
 Set::Set ()
 Set::~Set ()
void Set::insert (InfoRecord *)
void Set::myRemove (listNode **n, InfoRecord *r)
void Set::remove (InfoRecord *)
int Set::find (InfoRecord *)
InfoRecordSet::iterator (Iterator *)
InfoRecordSet::next (Iterator *)
int Set::numElements ()
void Set::print ()
virtual void ComboCentLB::work (LDStats *stats)
bool CommAwareRefineLB::QueryBalanceNow (int step)
void CommAwareRefineLB::work (LDStats *stats)
bool CommLB::QueryBalanceNow (int step)
void CommLB::alloc (int pe, int id, double load, int nmsg, int nbyte)
double CommLB::compute_cost (int id, int pe, int n_alloc, int &out_msg, int &out_byte)
void CommLB::add_graph (int x, int y, int data, int nmsg)
void CommLB::work (LDStats *stats)
 ObjectHeap::ObjectHeap (int size)
int ObjectHeap::numElements ()
int ObjectHeap::insert (ObjectRecord *)
ObjectRecordObjectHeap::deleteMax ()
ObjectRecordObjectHeap::iterator (hIterator *)
ObjectRecordObjectHeap::next (hIterator *)
bool DummyLB::QueryBalanceNow (int step)
bool GraphBFTLB::QueryBalanceNow (int _step)
void GraphBFTLB::work (LDStats *stats)
bool GraphPartLB::QueryBalanceNow (int _step)
void GraphPartLB::work (LDStats *stats)
bool GreedyAgentLB::QueryBalanceNow (int step)
bool GreedyAgentLB::Compare (double, double, HeapCmp)
void GreedyAgentLB::Heapify (HeapData *, int, int, HeapCmp)
void GreedyAgentLB::BuildHeap (HeapData *, int, HeapCmp)
void GreedyAgentLB::HeapSort (HeapData *, int, HeapCmp)
HeapData * GreedyAgentLB::BuildObjectArray (CentralLB::LDStats *, int, int *)
HeapData * GreedyAgentLB::BuildCpuArray (CentralLB::LDStats *, int, int *)
void GreedyAgentLB::work (LDStats *stats)
 GreedyCommLB::GreedyCommLB (const CkLBOptions &)
 GreedyCommLB::GreedyCommLB (CkMigrateMessage *m)
bool GreedyCommLB::QueryBalanceNow (int step)
void GreedyCommLB::alloc (int pe, int id, double load)
double GreedyCommLB::compute_com (LDStats *stats, int id, int pe)
void GreedyCommLB::update (LDStats *stats, int id, int pe)
void GreedyCommLB::add_graph (int x, int y, int data, int nmsg)
void GreedyCommLB::work (LDStats *stats)
bool GreedyLB::QueryBalanceNow (int step)
void GreedyLB::work (LDStats *stats)
 GreedyRefineLB::GreedyRefineLB (CkMigrateMessage *m)
double GreedyRefineLB::greedyLB (const std::vector< GObj * > &pobjs, PHeap &procHeap, const BaseLB::LDStats *stats) const
void GreedyRefineLB::dumpObjLoads (std::vector< GObj > &objs)
void GreedyRefineLB::dumpProcLoads (std::vector< GProc > &procs)
double GreedyRefineLB::fillData (LDStats *stats, std::vector< GObj > &objs, std::vector< GObj * > &pobjs, std::vector< GProc > &procs, PHeap &procHeap)
void GreedyRefineLB::sendSolution (double maxLoad, int migrations)
void GreedyRefineLB::work (LDStats *stats)
void GreedyRefineLB::receiveTotalTime (double time)
void GreedyRefineLB::receiveSolutions (CkReductionMsg *msg)
static void HbmLB::staticAtSync (void *)
 HbmLB::HbmLB (const CkLBOptions &)
 HbmLB::~HbmLB ()
void HbmLB::FindNeighbors ()
void HbmLB::AtSync (void)
void HbmLB::ProcessAtSync (void)
void HbmLB::ReceiveStats (double t, int frompe, int fromlevel)
virtual void HbmLB::Loadbalancing (int level)
void HbmLB::LoadbalancingDone (int level)
void HbmLB::ReceiveResumeClients (int fromlevel, int balancing)
void HbmLB::ReceiveMigrationDelta (double t, int lblevel, int level)
void HbmLB::collectCommData (int objIdx, CkVec< LDCommData > &comms)
void HbmLB::ObjMigrated (LDObjData data, LDCommData *cdata, int n)
void HbmLB::ReceiveMigrationCount (int, int lblevel)
void HbmLB::Migrated (LDObjHandle h, int waitBarrier)
void HbmLB::NotifyObjectMigrationDone (int level, int lblevel)
void HbmLB::MigrationDone (int balancing)
void HbmLB::ResumeClients (double result)
void HbmLB::ResumeClients (int balancing)
void HbmLB::reportLBQulity (double mload, double mCpuLoad, double totalload, int nmsgs, double bytesentry)
virtual void HbmLB::work (LDStats *stats)
int HbmLB::NeighborIndex (int pe, int atlevel)
virtual int HbmLB::useMem ()
static void HybridBaseLB::staticMigrated (void *me, LDObjHandle h, int waitBarrier)
static void HybridBaseLB::staticAtSync (void *)
 HybridBaseLB::HybridBaseLB (const CkLBOptions &)
void HybridBaseLB::initTree ()
 HybridBaseLB::~HybridBaseLB ()
void HybridBaseLB::FindNeighbors ()
void HybridBaseLB::AtSync (void)
void HybridBaseLB::ProcessAtSync (void)
virtual CLBStatsMsgHybridBaseLB::AssembleStats ()
void HybridBaseLB::ReceiveStats (CkMarshalledCLBStatsMessage &&m, int fromlevel)
void HybridBaseLB::depositLBStatsMessage (CLBStatsMsg *msg, int atlevel)
void HybridBaseLB::buildStats (int level)
CLBStatsMsgHybridBaseLB::buildCombinedLBStatsMessage (int atlevel)
virtual void HybridBaseLB::Loadbalancing (int level)
virtual LBMigrateMsgHybridBaseLB::Strategy (LDStats *stats)
void HybridBaseLB::ReceiveMigration (LBMigrateMsg *)
virtual LBVectorMigrateMsgHybridBaseLB::VectorStrategy (LDStats *stats)
void HybridBaseLB::ReceiveVectorMigration (LBVectorMigrateMsg *)
virtual void HybridBaseLB::GetObjsToMigrate (int toPe, double load, LDStats *stats, int atlevel, CkVec< LDCommData > &comms, CkVec< LDObjData > &objs)
void HybridBaseLB::CreateMigrationOutObjs (int atlevel, LDStats *stats, int objidx)
void HybridBaseLB::ObjsMigrated (CkVec< LDObjData > &&data, int m, LDCommData *cdata, int n, int level)
void HybridBaseLB::VectorDone (int atlevel)
void HybridBaseLB::TotalObjMigrated (int count, int level)
void HybridBaseLB::Migrated (LDObjHandle h, int waitBarrier)
void HybridBaseLB::collectCommData (int objIdx, CkVec< LDCommData > &comm, int atlevel)
void HybridBaseLB::ObjMigrated (LDObjData data, LDCommData *cdata, int n, int level)
void HybridBaseLB::StatsDone (int level)
void HybridBaseLB::NotifyObjectMigrationDone (int level)
void HybridBaseLB::StartCollectInfo (DummyMsg *m)
void HybridBaseLB::CollectInfo (Location *loc, int n, int fromlevel)
void HybridBaseLB::PropagateInfo (Location *loc, int n, int fromlevel)
void HybridBaseLB::MigrationDone (int balancing)
void HybridBaseLB::ResumeClients (double result)
void HybridBaseLB::ResumeClients (int balancing)
virtual void HybridBaseLB::work (LDStats *stats)
virtual LBMigrateMsgHybridBaseLB::createMigrateMsg (LDStats *stats)
LBMigrateMsgHybridBaseLB::createMigrateMsg (CkVec< MigrateInfo * > &migrateInfo, int count)
int HybridBaseLB::NeighborIndex (int pe, int atlevel)
void HybridBaseLB::printSummary (LDStats *stats, int count)
void HybridBaseLB::reportLBQulity (double mload, double mCpuLoad, double totalload, int nmsgs, double bytesentry)
void HybridBaseLB::reportLBMem (double)
virtual int HybridBaseLB::useMem ()
 HybridLB::~HybridLB ()
virtual void HybridLB::work (LDStats *stats)
LBCommDataLBCommTable::HashInsert (const LBCommData &data)
LBCommDataLBCommTable::HashSearch (const LBCommData &data)
LBCommDataLBCommTable::HashInsertUnique (const LBCommData &data)
void LBCommTable::Resize ()
bool LBCommData::equal (const LBCommData &_d2) const
int LBCommData::compute_key ()
int LBCommData::hash (const int i, const int m) const
void LBCommTable::GetCommData (LDCommData *data)
void LBCommTable::GetCommInfo (int &bytes, int &msgs, int &withinpebytes, int &outsidepebytes, int &num_nghbor, int &hops, int &hopbytes)
 LBDBInit::LBDBInit (CkArgMsg *)
static void LBDatabase::initnodeFn (void)
void LBDatabase::init ()
 LBDatabase::LastLBInfo::LastLBInfo ()
void LBDatabase::get_avail_vector (char *bitmap)
void LBDatabase::set_avail_vector (char *bitmap, int new_ld=-1)
int LBDatabase::getLoadbalancerTicket ()
void LBDatabase::addLoadbalancer (BaseLB *lb, int seq)
void LBDatabase::nextLoadbalancer (int seq)
void LBDatabase::switchLoadbalancer (int switchFrom, int switchTo)
const char * LBDatabase::loadbalancer (int seq)
void LBDatabase::pup (PUP::er &p)
 Pack/UnPack - tell the runtime how to serialize this class's data for migration, checkpoint, etc.
void LBDatabase::EstObjLoad (const LDObjHandle &h, double cpuload)
void LBDatabase::ResetAdaptive ()
void LBDatabase::ResumeClients ()
void LBDatabase::SetMigrationCost (double cost)
void LBDatabase::SetStrategyCost (double cost)
void LBDatabase::UpdateDataAfterLB (double mLoad, double mCpuLoad, double avgLoad)
static void LBDB::batsyncer::gotoSync (void *bs)
static void LBDB::batsyncer::resumeFromSync (void *bs)
void LBDB::batsyncer::init (LBDB *_db, double initPeriod)
 LBDB::LBDB ()
LDOMHandle LBDB::AddOM (LDOMid _userID, void *_userData, LDCallbacks _callbacks)
void LBDB::RemoveOM (LDOMHandle om)
LDObjHandle LBDB::AddObj (LDOMHandle _h, CmiUInt8 _id, void *_userData, bool _migratable)
void LBDB::UnregisterObj (LDObjHandle _h)
void LBDB::RegisteringObjects (LDOMHandle _h)
void LBDB::DoneRegisteringObjects (LDOMHandle _h)
void LBDB::Send (const LDOMHandle &destOM, const CmiUInt8 &destid, unsigned int bytes, int destObjProc)
void LBDB::MulticastSend (const LDOMHandle &destOM, CmiUInt8 *destids, int ndests, unsigned int bytes, int nMsgs)
void LBDB::ClearLoads (void)
int LBDB::ObjDataCount ()
void LBDB::GetObjData (LDObjData *data)
int LBDB::Migrate (LDObjHandle h, int dest)
void LBDB::MetaLBResumeWaitingChares (int lb_ideal_period)
void LBDB::MetaLBCallLBOnChares ()
void LBDB::Migrated (LDObjHandle h, int waitBarrier=1)
int LBDB::NotifyMigrated (LDMigratedFn fn, void *data)
void LBDB::RemoveNotifyMigrated (int handle)
int LBDB::AddStartLBFn (LDStartLBFn fn, void *data)
void LBDB::RemoveStartLBFn (LDStartLBFn fn)
void LBDB::StartLB ()
int LBDB::AddMigrationDoneFn (LDMigrationDoneFn fn, void *data)
void LBDB::RemoveMigrationDoneFn (LDMigrationDoneFn fn)
void LBDB::MigrationDone ()
void LBDB::SetupPredictor (LDPredictModelFn on, LDPredictWindowFn onWin, LDPredictFn off, LDPredictModelFn change, void *data)
void LBDB::BackgroundLoad (LBRealType *walltime, LBRealType *cputime)
void LBDB::GetTime (LBRealType *total_walltime, LBRealType *total_cputime, LBRealType *idletime, LBRealType *bg_walltime, LBRealType *bg_cputime)
void LBDB::DumpDatabase (void)
int LBDB::useMem ()
LDBarrierClient LocalBarrier::AddClient (LDResumeFn fn, void *data)
void LocalBarrier::RemoveClient (LDBarrierClient h)
LDBarrierReceiver LocalBarrier::AddReceiver (LDBarrierFn fn, void *data)
void LocalBarrier::RemoveReceiver (LDBarrierReceiver h)
void LocalBarrier::TurnOnReceiver (LDBarrierReceiver h)
void LocalBarrier::TurnOffReceiver (LDBarrierReceiver h)
void LocalBarrier::AtBarrier (LDBarrierClient h)
void LocalBarrier::DecreaseBarrier (LDBarrierClient h, int c)
void LocalBarrier::CheckBarrier ()
void LocalBarrier::CallReceivers (void)
void LocalBarrier::ResumeClients (void)
void LBMachineUtil::IdleStart (double curWallTime)
void LBMachineUtil::IdleEnd (double curWallTime)
static void LBMachineUtil::staticIdleStart (LBMachineUtil *util, double curWallTime)
static void LBMachineUtil::staticIdleEnd (LBMachineUtil *util, double curWallTime)
 LBMachineUtil::LBMachineUtil ()
void LBMachineUtil::StatsOn ()
void LBMachineUtil::StatsOff ()
void LBMachineUtil::Clear ()
void LBMachineUtil::TotalTime (LBRealType *walltime, LBRealType *cputime)
void LBObj::Clear (void)
void LBObj::IncrementTime (LBRealType walltime, LBRealType cputime)
virtual int LBProfit::profitable (BaseLB::ProcStats *procArray, int np)
void MetisLB::work (LDStats *stats)
static void NborBaseLB::staticMigrated (void *me, LDObjHandle h, int waitBarrier)
static void NborBaseLB::staticAtSync (void *)
 NborBaseLB::NborBaseLB (const CkLBOptions &)
 NborBaseLB::~NborBaseLB ()
void NborBaseLB::FindNeighbors ()
void NborBaseLB::AtSync (void)
NLBStatsMsgNborBaseLB::AssembleStats ()
void NborBaseLB::Migrated (LDObjHandle h, int waitBarrier)
void NborBaseLB::ReceiveStats (CkMarshalledNLBStatsMessage &&m)
void NborBaseLB::ReceiveMigration (LBMigrateMsg *)
void NborBaseLB::MigrationDone (int balancing)
void NborBaseLB::ResumeClients ()
void NborBaseLB::ResumeClients (int balancing)
virtual LBMigrateMsgNborBaseLB::Strategy (LDStats *stats, int n_nbrs)
int NborBaseLB::NeighborIndex (int pe)
 NLBStatsMsg::NLBStatsMsg (int osz, int csz)
 NLBStatsMsg::NLBStatsMsg (NLBStatsMsg *s)
 NLBStatsMsg::~NLBStatsMsg ()
void NLBStatsMsg::pup (PUP::er &p)
 CkMarshalledNLBStatsMessage::~CkMarshalledNLBStatsMessage ()
void CkMarshalledNLBStatsMessage::pup (PUP::er &p)
LBMigrateMsgNeighborCommLB::Strategy (NborBaseLB::LDStats *stats, int n_nbrs)
LBMigrateMsgNeighborLB::Strategy (NborBaseLB::LDStats *stats, int n_nbrs)
void NullLB::init ()
 NullLB::~NullLB ()
static void NullLB::staticAtSync (void *)
void NullLB::AtSync (void)
void NullLB::migrationsDone (void)
 ObjGraph::ObjGraph (int count, BaseLB::LDStats *stats)
 ObjGraph::~ObjGraph ()
double ObjGraph::EdgeWeight (Edge *e)
int ObjGraph::calc_hashval (LDOMid, CmiUInt8)
Node * ObjGraph::find_node (const LDObjKey &)
 OrbLB::OrbLB (const CkLBOptions &, bool userdata)
 OrbLB::OrbLB (const CkLBOptions &)
bool OrbLB::QueryBalanceNow (int step)
void OrbLB::rec_divide (int, Partition &)
void OrbLB::setVal (int x, int y, int z)
int OrbLB::sort_partition (int x, int p, int r)
void OrbLB::qsort (int x, int p, int r)
void OrbLB::quicksort (int x)
void OrbLB::mapPartitionsToNodes ()
void OrbLB::work (LDStats *stats)
bool PhasebyArrayLB::QueryBalanceNow (int step)
void PhasebyArrayLB::copyStats (BaseLB::LDStats *stats, BaseLB::LDStats *tempStats)
void PhasebyArrayLB::updateStats (BaseLB::LDStats *stats, BaseLB::LDStats *tempStats)
void PhasebyArrayLB::work (LDStats *stats)
bool RandCentLB::QueryBalanceNow (int step)
void RandCentLB::work (LDStats *stats)
void BQueue::removeComplete (Vertex *)
void BQueue::push (Vertex *)
 RecBipartLB::RecBipartLB (const CkLBOptions &opt)
bool RecBipartLB::QueryBalanceNow (int _step)
void RecBipartLB::work (LDStats *stats)
bool RecBisectBfLB::QueryBalanceNow (int step)
void RecBisectBfLB::work (LDStats *stats)
GraphRecBisectBfLB::convertGraph (ObjGraph *og)
void RecBisectBfLB::partitionInTwo (Graph *g, int nodes[], int numNodes, int **pp1, int *numP1, int **pp2, int *numP2, int ratio1, int ratio2)
int RecBisectBfLB::findNextUnassigned (int max, BV_Set *all, BV_Set *s1, BV_Set *s2)
float RecBisectBfLB::addToQ (IntQueue *q, Graph *g, BV_Set *all, BV_Set *s1, BV_Set *s2)
void RecBisectBfLB::enqChildren (IntQueue *q, Graph *g, BV_Set *all, BV_Set *s1, BV_Set *s2, int node)
void RecBisectBfLB::addPartition (PartitionList *partitions, int *nodes, int num)
void RecBisectBfLB::printPartitions (PartitionList *partitions)
void RecBisectBfLB::recursivePartition (int numParts, Graph *g, int nodes[], int numNodes, PartitionList *partitions)
bool RefineCommLB::QueryBalanceNow (int step)
void RefineCommLB::work (LDStats *stats)
void RefineKLB::work (LDStats *stats)
void RefineKLB::performGreedyMoves (int count, BaseLB::LDStats *stats, int *from_procs, int *to_procs, int numMoves)
void RefineLB::work (LDStats *stats)
static intRefiner::AllocProcs (int count, BaseLB::LDStats *stats)
 This code is derived from RefineLB.C, and RefineLB.C should be rewritten to use this, so there is no code duplication.
static void Refiner::FreeProcs (int *bufs)
void Refiner::create (int count, BaseLB::LDStats *stats, int *cur_p)
void Refiner::assign (computeInfo *c, int p)
void Refiner::assign (computeInfo *c, processorInfo *p)
void Refiner::deAssign (computeInfo *c, processorInfo *pRec)
double Refiner::computeAverageLoad ()
virtual void Refiner::computeAverage ()
double Refiner::computeMax ()
bool Refiner::isHeavy (processorInfo *p)
bool Refiner::isLight (processorInfo *p)
void Refiner::removeComputes ()
virtual int Refiner::refine ()
int Refiner::multirefine (bool reset=1)
void Refiner::Refine (int count, BaseLB::LDStats *stats, int *cur_p, int *new_p)
void RefinerComm::create (int count, BaseLB::LDStats *, int *cur_p)
 This code is derived from RefineLB.C, and RefineLB.C should be rewritten to use this, so there is no code duplication.
virtual void RefinerComm::computeAverage ()
void RefinerComm::processorCommCost ()
void RefinerComm::assign (computeInfo *c, int p)
void RefinerComm::assign (computeInfo *c, processorInfo *p)
void RefinerComm::deAssign (computeInfo *c, processorInfo *pRec)
void RefinerComm::commAffinity (int c, int pe, Messages &m)
void RefinerComm::objCommCost (int c, int pe, Messages &m)
virtual int RefinerComm::refine ()
void RefinerComm::Refine (int count, BaseLB::LDStats *stats, int *cur_p, int *new_p)
 RefinerComm::CommTable::CommTable (int p)
 RefinerComm::CommTable::~CommTable ()
void RefinerComm::CommTable::clear ()
void RefinerComm::CommTable::increase (bool issend, int pe, int msgs, int bytes)
double RefinerComm::CommTable::overheadOnPe (int pe)
static intRefinerTemp::AllocProcs (int count, BaseLB::LDStats *stats)
 This code is derived from RefineLB.C, and RefineLB.C should be rewritten to use this, so there is no code duplication.
static void RefinerTemp::FreeProcs (int *bufs)
void RefinerTemp::create (int count, BaseLB::LDStats *stats, int *cur_p)
void RefinerTemp::assign (computeInfo *c, int p)
void RefinerTemp::assign (computeInfo *c, processorInfo *p)
void RefinerTemp::deAssign (computeInfo *c, processorInfo *pRec)
virtual void RefinerTemp::computeAverage ()
double RefinerTemp::computeMax ()
double RefinerTemp::computeMax (int *)
bool RefinerTemp::isHeavy (processorInfo *p)
bool RefinerTemp::isLight (processorInfo *p)
void RefinerTemp::removeComputes ()
virtual int RefinerTemp::refine ()
int RefinerTemp::multirefine ()
 RefinerTemp::RefinerTemp (double _overload, int *p, int *pn, int i)
void RefinerTemp::Refine (int count, BaseLB::LDStats *stats, int *cur_p, int *new_p)
bool RefineSwapLB::QueryBalanceNow (int step)
void RefineSwapLB::work (LDStats *stats)
bool ScotchLB::QueryBalanceNow (int _step)
void ScotchLB::work (LDStats *stats)
bool ScotchRefineLB::QueryBalanceNow (int _step)
void ScotchRefineLB::work (LDStats *stats)
bool ScotchTopoLB::QueryBalanceNow (int _step)
void ScotchTopoLB::work (LDStats *stats)
void TeamLB::work (LDStats *stats)
 METIS function that performs a balanced k-way partitioning of the graph, considering the communication volume (hence the "V" in the name of the function).
bool TempAwareGreedyLB::QueryBalanceNow (int step)
void TempAwareGreedyLB::work (LDStats *stats)
float TempAwareRefineLB::getTemp (int)
 TempAwareRefineLB::TempAwareRefineLB (const CkLBOptions &)
void TempAwareRefineLB::populateEffectiveFreq (int numProcs)
bool TempAwareRefineLB::QueryBalanceNow (int step)
void TempAwareRefineLB::changeFreq (int)
void TempAwareRefineLB::work (LDStats *stats)
bool TreeMatchLB::QueryBalanceNow (int step)
void TreeMatchLB::work (BaseLB::LDStats *stats)
static void WSLB::staticAtSync (void *)
 WSLB::WSLB (const CkLBOptions &)
 WSLB::~WSLB ()
void WSLB::FindNeighbors ()
void WSLB::AtSync (void)
WSLBStatsMsgWSLB::AssembleStats ()
void WSLB::Migrated (LDObjHandle h, int waitBarrier)
void WSLB::ReceiveStats (WSLBStatsMsg *)
void WSLB::ReceiveMigration (LBMigrateMsg *)
void WSLB::MigrationDone (void)
void WSLB::ResumeClients ()
virtual bool WSLB::QueryBalanceNow (int)
virtual LBMigrateMsgWSLB::Strategy (LDStats *stats, int count)
void ZoltanLB::work (LDStats *stats)

Variables

int quietModeRequested
static const unsigned int doublingPrimes []
bool _restartFlag
int globalResumeCount
char willContinue
realloc_state pending_realloc_state
 Cluster Manager Code, Accepts external bit vectors and then feeds it into the loadbalancer so that programs can shrink and expand.
char * se_avail_vector
int mynewpe = 0
char * _shrinkexpand_basedir
int numProcessAfterRestart
CkGroupID loadbalancer
intlb_ptr
bool load_balancer_created
int donotCountMigration
static LDHandleloadBalancer_pointers
int restarted
CkGroupID loadbalancer
int quietModeRequested
double upper_threshold
double lower_threshold
int quietModeRequested
int quietModeRequested
int quietModeRequested
int quietModeRequested
int quietModeRequested
int quietModeRequested
int quietModeRequested
int quietModeRequested
int quietModeRequested
 Author: jjgalvez@illinois.edu (Juan Galvez) Greedy algorithm to minimize cpu max_load and object migrations.
static const float Avals [] = {1.0, 1.005, 1.01, 1.015, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07, 1.08, 1.16, 1.20, 1.30}
static const float Bvals [] = {1.0, 1.05, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, FLT_MAX}
int quietModeRequested
CkGroupID _lbdb
CkLBArgs _lb_args
int _lb_predict = 0
int _lb_predict_delay = 10
int _lb_predict_window = 20
bool _lb_psizer_on = false
static LBDBRegistry lbRegistry
CmiNodeLock avail_vector_lock
static LBRealType_expectedLoad = NULL
int _lb_version
 flag to write all LB decisions
CkLBArgs _lb_args
int _lb_predict
int _lb_predict_delay
int _lb_predict_window
bool _lb_psizer_on
char * _lbtopo = s_lbtopo_default
int _lb_version
 flag to write all LB decisions
LDOMid LDOMHandle::id
int LDOMHandle::handle
CmiUInt8 _LDObjKey::objId
CmiUInt8 LDObjHandle::id
LDObjIndex LDObjHandle::handle
int LBUserDataLayout::count
LBRealType LDObjData::wallTime
LBRealType LDObjData::cpuTime
LBRealType LDObjData::minWall
LBRealType LDObjData::maxWall
bool LDObjData::migratable
bool LDObjData::asyncArrival
LBObjUserData LDObjData::userData
CmiUInt2 LDObjData::pupSize
LDObjData LDObjStats::data
int LDObjStats::from_proc
int LDObjStats::to_proc
int   _LDCommDesc::destObjProc
struct {
   LDObjKey   destObj
   int   _LDCommDesc::destObjProc
}   _LDCommDesc::destObj
int   _LDCommDesc::len
struct {
   LDObjKey *   objs
   int   _LDCommDesc::len
}   _LDCommDesc::destObjs
union {
   int   destProc
   struct {
      LDObjKey   destObj
      int   _LDCommDesc::destObjProc
   }   _LDCommDesc::destObj
   struct {
      LDObjKey *   objs
      int   _LDCommDesc::len
   }   _LDCommDesc::destObjs
_LDCommDesc::dest
LDObjKey _LDCommData::sender
LDCommDesc _LDCommData::receiver
int _LDCommData::sendHash
int _LDCommData::recvHash
int _LDCommData::messages
int _LDCommData::bytes
LDStatsFn LDCallbacks::setStats
LDQueryEstLoadFn LDCallbacks::queryEstLoad
LDMetaLBResumeWaitingCharesFn LDCallbacks::metaLBResumeWaitingChares
LDMetaLBCallLBOnCharesFn LDCallbacks::metaLBCallLBOnChares
realloc_state pending_realloc_state
 Cluster Manager Code, Accepts external bit vectors and then feeds it into the loadbalancer so that programs can shrink and expand.
char * se_avail_vector
int numProcessAfterRestart
CcsDelayedReply shrinkExpandreplyToken
char willContinue = 0
int load_balancer_created
int quietModeRequested
int quietModeRequested
int quietModeRequested
static CkGroupID _theNullLB
static int _migDoneHandle
static const double alpha = 30.e-6
static const double beta = 3.e-9
int quietModeRequested
int quietModeRequested
int quietModeRequested
int quietModeRequested
int level
double TOTALLOAD
vector< Vertex_helper * > vhelpers
int numparts
int peno
ProcArrayparray
int quietModeRequested
int quietModeRequested
int quietModeRequested
int quietModeRequested
int quietModeRequested
int quietModeRequested
int quietModeRequested
int quietModeRequested
int quietModeRequested
int quietModeRequested
int quietModeRequested
FILE * migFile
double starting
int quietModeRequested
int quietModeRequested
int quietModeRequested
char * _lbtopo
int LBTopo_torus_nd::VirtualProcessorCount
intLBTopo_torus_nd::TempCo
static LBTopoVeclbTopoMap
static CmiNodeLock lbTopoMapInitLock
static bool lbTopoInitialized = false
static bool LBDatabase::manualOn = false
static char * LBDatabase::avail_vector = NULL
static bool LBDatabase::avail_vector_set = false

Detailed Description

NullLB is a place holder load balancer, it does nothing but resume from atSync so that application won't hang in the case where there is no other load balancer around.

This load balancer is a neighborLB and should inherit from NborBaseLB instead of incorrectly inheriting from BaseLB.

Load balancer that use Orthogonal Recursive Bisection(ORB) to partition objects and map to processors.

!!!!!!!!!!!!!!!!! DEFUNCT !!!!!!!!!!!!!!!!!!!

This file is not compiled anymore and its uses should be replaced by the class of the same name (ObjGraph) in ckgraph.h

!!!!!!!!!!!!!!!!! DEFUNCT !!!!!!!!!!!!!!!!!!!

In OrbLB, objects are treated to be enclosed by a rectangular box using their LDObjid as coordinates.

Written by Gengbin Zheng

ORB now takes background load into account 3/26/2010: added support for avail_vector

Also struct LDStats in here should be removed and merged with the one in NborBaseLB. -- ASB


Typedef Documentation

for backward compatibility

Definition at line 15 of file AdaptiveLB.h.

for backward compatibility

Definition at line 20 of file CentralLB.h.

for backward compatibility

Definition at line 15 of file ComboCentLB.h.

for backward compatibility

Definition at line 17 of file HbmLB.h.

for backward compatibility

Definition at line 21 of file HybridBaseLB.h.

typedef void(* LBCreateFn)()

Definition at line 123 of file LBDatabase.h.

typedef BaseLB*(* LBAllocFn)()

Definition at line 124 of file LBDatabase.h.

typedef CMK_LBTIME_TYPE LBRealType

Definition at line 29 of file lbdb.h.

typedef void* cvoid

Definition at line 39 of file lbdb.h.

typedef int LDHandle

Definition at line 50 of file lbdb.h.

typedef struct _LDOMid LDOMid

typedef struct _LDObjKey LDObjKey

typedef int LDObjIndex

Definition at line 96 of file lbdb.h.

typedef int LDOMIndex

Definition at line 97 of file lbdb.h.

typedef struct _LDCommDesc LDCommDesc

typedef struct _LDCommData LDCommData

typedef void(* LDMigrateFn)(LDObjHandle handle, int dest)

Definition at line 272 of file lbdb.h.

typedef void(* LDStatsFn)(LDOMHandle h, int state)

Definition at line 273 of file lbdb.h.

typedef void(* LDQueryEstLoadFn)(LDOMHandle h)

Definition at line 274 of file lbdb.h.

typedef void(* LDMetaLBResumeWaitingCharesFn)(LDObjHandle handle, int lb_ideal_period)

Definition at line 275 of file lbdb.h.

Definition at line 276 of file lbdb.h.

typedef void(* LDMigratedFn)(void *data, LDObjHandle handle, int waitBarrier)

Definition at line 333 of file lbdb.h.

typedef void(* LDStartLBFn)(void *user_ptr)

Definition at line 336 of file lbdb.h.

typedef void(* LDMigrationDoneFn)(void *user_ptr)

Definition at line 343 of file lbdb.h.

typedef void(* LDPredictFn)(void *user_ptr)

Definition at line 348 of file lbdb.h.

typedef void(* LDPredictModelFn)(void *user_ptr, void *model)

Definition at line 349 of file lbdb.h.

typedef void(* LDPredictWindowFn)(void *user_ptr, void *model, int wind)

Definition at line 350 of file lbdb.h.

typedef void(* LDBarrierFn)(void *user_ptr)

Definition at line 382 of file lbdb.h.

typedef void(* LDResumeFn)(void *user_ptr)

Definition at line 383 of file lbdb.h.

for backward compatibility

Definition at line 17 of file NborBaseLB.h.

typedef CkQ<int> IntQueue

Definition at line 37 of file RecBisectBfLB.h.

Definition at line 163 of file topology.C.

Definition at line 164 of file topology.C.

Definition at line 165 of file topology.C.

Definition at line 166 of file topology.C.

Definition at line 167 of file topology.C.

Definition at line 168 of file topology.C.

Definition at line 169 of file topology.C.

Definition at line 170 of file topology.C.

Definition at line 171 of file topology.C.

Definition at line 172 of file topology.C.

Definition at line 685 of file topology.C.

Definition at line 686 of file topology.C.

Definition at line 687 of file topology.C.

Definition at line 688 of file topology.C.

Definition at line 689 of file topology.C.

Definition at line 690 of file topology.C.

Definition at line 691 of file topology.C.

Definition at line 692 of file topology.C.

Definition at line 693 of file topology.C.

Definition at line 694 of file topology.C.

typedef LBTopo_torus_nd_smp<1> LBTopo_torus_nd_smp_1

Definition at line 856 of file topology.C.

typedef LBTopo_torus_nd_smp<2> LBTopo_torus_nd_smp_2

Definition at line 860 of file topology.C.

typedef LBTopo_torus_nd_smp<3> LBTopo_torus_nd_smp_3

Definition at line 861 of file topology.C.

typedef LBTopo_torus_nd_smp<4> LBTopo_torus_nd_smp_4

Definition at line 862 of file topology.C.

typedef LBTopo_torus_nd_smp<5> LBTopo_torus_nd_smp_5

Definition at line 863 of file topology.C.

typedef LBTopo_torus_nd_smp<6> LBTopo_torus_nd_smp_6

Definition at line 864 of file topology.C.

typedef LBTopo_torus_nd_smp<7> LBTopo_torus_nd_smp_7

Definition at line 865 of file topology.C.

typedef LBTopo_torus_nd_smp<8> LBTopo_torus_nd_smp_8

Definition at line 866 of file topology.C.

typedef LBTopo_torus_nd_smp<9> LBTopo_torus_nd_smp_9

Definition at line 867 of file topology.C.

typedef LBTopo_torus_nd_smp<10> LBTopo_torus_nd_smp_10

Definition at line 868 of file topology.C.

typedef LBTopo_itorus_nd<1> LBTopo_itorus_nd_1

Definition at line 973 of file topology.C.

typedef LBTopo_itorus_nd<2> LBTopo_itorus_nd_2

Definition at line 977 of file topology.C.

typedef LBTopo_itorus_nd<3> LBTopo_itorus_nd_3

Definition at line 978 of file topology.C.

typedef LBTopo_itorus_nd<4> LBTopo_itorus_nd_4

Definition at line 979 of file topology.C.

typedef LBTopo_itorus_nd<5> LBTopo_itorus_nd_5

Definition at line 980 of file topology.C.

typedef LBTopo_itorus_nd<6> LBTopo_itorus_nd_6

Definition at line 981 of file topology.C.

typedef LBTopo_itorus_nd<7> LBTopo_itorus_nd_7

Definition at line 982 of file topology.C.

typedef LBTopo_imesh_nd<1> LBTopo_imesh_nd_1

Definition at line 1098 of file topology.C.

typedef LBTopo_imesh_nd<2> LBTopo_imesh_nd_2

Definition at line 1102 of file topology.C.

typedef LBTopo_imesh_nd<3> LBTopo_imesh_nd_3

Definition at line 1103 of file topology.C.

typedef LBTopo_imesh_nd<4> LBTopo_imesh_nd_4

Definition at line 1104 of file topology.C.

typedef LBTopo_imesh_nd<5> LBTopo_imesh_nd_5

Definition at line 1105 of file topology.C.

typedef LBTopo_imesh_nd<6> LBTopo_imesh_nd_6

Definition at line 1106 of file topology.C.

typedef LBTopo_imesh_nd<7> LBTopo_imesh_nd_7

Definition at line 1107 of file topology.C.

Definition at line 1155 of file topology.C.

Definition at line 1156 of file topology.C.

Definition at line 1157 of file topology.C.

Definition at line 1158 of file topology.C.

Definition at line 1159 of file topology.C.

Definition at line 1160 of file topology.C.

Definition at line 1161 of file topology.C.

Definition at line 1162 of file topology.C.

Definition at line 1163 of file topology.C.

Definition at line 1164 of file topology.C.

typedef LBTopo_karytree<2> LBTopo_2_arytree

Definition at line 1214 of file topology.C.

typedef LBTopo_karytree<3> LBTopo_3_arytree

Definition at line 1217 of file topology.C.

typedef LBTopo_karytree<4> LBTopo_4_arytree

Definition at line 1218 of file topology.C.

typedef LBTopo_karytree<128> LBTopo_128_arytree

Definition at line 1219 of file topology.C.

typedef LBTopo_karytree<512> LBTopo_512_arytree

Definition at line 1220 of file topology.C.

typedef void *(* LBtopoFn)()

Definition at line 86 of file topology.h.


Function Documentation

LBAllocFn getLBAllocFn ( const char *  lbname  ) 

Definition at line 105 of file LBDatabase.C.

References LBDBRegistry::getLBAllocFn().

Referenced by CreateLBFunc_Def().

Here is the call graph for this function:

Here is the caller graph for this function:

CreateLBFunc_Def ( AdaptiveLB  ,
"Allow multiple strategies to work serially"   
)

Definition at line 17 of file AdaptiveLB.C.

References _lb_args, _metalb, CkLocalBranch(), Converse::CkMyPe(), CmiAbort(), getLBAllocFn(), CkLBArgs::metaLbOn(), quietModeRequested, and strdup().

Here is the call graph for this function:

void CreateAdaptiveLB (  ) 

static int i_abs ( int  c  )  [inline, static]

Definition at line 61 of file BaseLB.C.

static int ObjKey ( const CmiUInt8 oid,
const int  hashSize 
) [inline, static]

Definition at line 64 of file BaseLB.C.

Referenced by BaseLB::LDStats::getHash(), and BaseLB::LDStats::makeCommHash().

Here is the caller graph for this function:

static unsigned int primeLargerThan ( unsigned int  x  )  [static]

Definition at line 142 of file BaseLB.C.

References doublingPrimes.

Referenced by BaseLB::LDStats::makeCommHash(), and CkHashtable::put().

Here is the caller graph for this function:

BV_Set * makeSet ( int list,
int  size,
int  max 
)

Definition at line 22 of file bitvecset.C.

References malloc(), BV_Set::max, PUP::s, BV_Set::size, and BV_Set::vector.

Referenced by makeEmptySet(), and RecBisectBfLB::partitionInTwo().

Here is the call graph for this function:

Here is the caller graph for this function:

BV_Set * makeEmptySet ( int  max  ) 

Definition at line 13 of file bitvecset.C.

References makeSet(), and x.

Referenced by RecBisectBfLB::partitionInTwo().

Here is the call graph for this function:

Here is the caller graph for this function:

void destroySet ( BV_Set set  ) 

Definition at line 44 of file bitvecset.C.

References free().

Referenced by RecBisectBfLB::partitionInTwo().

Here is the call graph for this function:

Here is the caller graph for this function:

void bvset_insert ( BV_Set s,
int  value 
)

Definition at line 52 of file bitvecset.C.

References BV_Set::max, BV_Set::size, and BV_Set::vector.

Referenced by RecBisectBfLB::addToQ().

Here is the caller graph for this function:

int bvset_find ( BV_Set s,
int  value 
)

Definition at line 67 of file bitvecset.C.

References BV_Set::max, and BV_Set::vector.

Referenced by RecBisectBfLB::addToQ(), RecBisectBfLB::enqChildren(), and RecBisectBfLB::findNextUnassigned().

Here is the caller graph for this function:

int bvset_size ( BV_Set s  ) 

Definition at line 77 of file bitvecset.C.

References BV_Set::size.

Referenced by RecBisectBfLB::partitionInTwo().

Here is the caller graph for this function:

void bvset_enumerate ( BV_Set s,
int **  list,
int size 
)

Definition at line 82 of file bitvecset.C.

References malloc(), BV_Set::max, BV_Set::size, and BV_Set::vector.

Referenced by RecBisectBfLB::partitionInTwo().

Here is the call graph for this function:

Here is the caller graph for this function:

void getGlobalStep ( CkGroupID   ) 

void initMlogLBStep ( CkGroupID  gid  ) 

This is the first time Converse is called after AtSync method has been called by every local object.

It is a good place to insert some optimizations for synchronized checkpoint. In the case of causal message logging, we can take advantage of this situation and garbage collect at this point.

Definition at line 3279 of file ckcausalmlog.C.

References checkpointBarrierCount, Converse::CkMyPe(), countLBMigratedAway, countLBToMigrate, garbageCollectMlog(), _ckGroupID::idx, migrationDoneCalled, and onGoingLoadBalancing.

Referenced by CentralLB::ProcessAtSync().

Here is the call graph for this function:

Here is the caller graph for this function:

void sendDummyMigrationCounts ( int dummyCounts  ) 

this method is used by a restarted processor to tell other processors that they are not going to receive these many objects.

. just the count not the objects themselves

Definition at line 3185 of file ckcausalmlog.C.

References _dummyMigrationHandlerIdx, buf, CmiInitMsgHeader(), CmiMyPe(), Converse::CmiSyncSend(), DummyMigrationMsg::count, DummyMigrationMsg::flag, DummyMigrationMsg::header, and DummyMigrationMsg::lbID.

Referenced by CentralLB::ProcessReceiveMigration().

Here is the call graph for this function:

Here is the caller graph for this function:

CpvExtern ( void *  ,
CkGridObject   
)

void UpdateLocation ( MigrateInfo migData  ) 

Definition at line 81 of file cklocation.C.

References CkLocalBranch(), LDObjHandle::id, _ckGroupID::idx, MigrateInfo::obj, MigrateInfo::to_pe, and CkLocMgr::updateLocation().

Referenced by CentralLB::ProcessReceiveMigration().

Here is the call graph for this function:

Here is the caller graph for this function:

void charmrun_realloc ( char *  s  ) 

CreateLBFunc_Def ( CentralLB  ,
"CentralLB base class"   
)

Definition at line 56 of file CentralLB.C.

References CentralLB::StartLB().

Here is the call graph for this function:

static int cpufreq_sysfs_write ( const char *  setting,
int  proc 
) [static]

Definition at line 258 of file CentralLB.C.

References Converse::CkMyPe(), and fd.

Referenced by TempAwareRefineLB::changeFreq(), CentralLB::changeFreq(), CreateLBFunc_Def(), and TempAwareRefineLB::TempAwareRefineLB().

Here is the call graph for this function:

Here is the caller graph for this function:

static int cpufreq_sysfs_read ( int  proc  )  [static]

Definition at line 286 of file CentralLB.C.

References fd.

Referenced by CentralLB::BuildStatsMsg(), and printCurrentTemperature().

Here is the caller graph for this function:

static bool isMigratable ( LDObjData **  objData,
int len,
int  count,
const LDCommData commData 
) [static]

Definition at line 957 of file CentralLB.C.

References _LDCommDesc::get_destObj(), LDObjData::objID(), _LDObjKey::objID(), _LDCommData::receiver, and _LDCommData::sender.

Referenced by xi::Chare::preprocess().

Here is the call graph for this function:

Here is the caller graph for this function:

int GetNewPeNumber ( std::vector< char >  avail  ) 

Definition at line 1300 of file CentralLB.C.

References Converse::CkMyPe(), and count.

Referenced by CentralLB::WillIbekilled().

Here is the call graph for this function:

Here is the caller graph for this function:

void resumeCentralLbAfterChkpt ( void *  _lb  ) 

Definition at line 1399 of file CentralLB.C.

References CentralLB::endMigrationDone(), lb, and CentralLB::savedBalancing.

Referenced by CentralLB::MigrationDoneImpl().

Here is the call graph for this function:

Here is the caller graph for this function:

void resumeAfterRestoreParallelRecovery ( void *  _lb  ) 

Definition at line 1404 of file CentralLB.C.

References lb, and CentralLB::ProcessReceiveMigration().

Referenced by CentralLB::ReceiveMigration().

Here is the call graph for this function:

Here is the caller graph for this function:

void getPredictedLoadWithMsg ( BaseLB::LDStats stats,
int  count,
LBMigrateMsg msg,
LBInfo info,
int  considerComm 
)

void CreateCentralLB (  ) 

void getLoadInfo ( BaseLB::LDStats stats,
int  count,
LBInfo info,
int  considerComm 
)

void gaussj ( double **  a,
double *  b,
int  n 
)

Definition at line 37 of file CentralPredictor.C.

Referenced by Marquardt_solver().

Here is the caller graph for this function:

void Marquardt_coefficients ( double *  x,
double *  y,
double *  param,
double **  alpha,
double *  beta,
double &  chisq,
LBPredictorFunction predict 
)

Definition at line 99 of file CentralPredictor.C.

References LBPredictorFunction::function(), PUP::l, PUP::m, and LBPredictorFunction::num_params.

Referenced by Marquardt_solver().

Here is the call graph for this function:

Here is the caller graph for this function:

bool Marquardt_solver ( CentralLB::FutureModel mod,
int  object 
)

CreateLBFunc_Def ( ComboCentLB  ,
"Allow multiple strategies to work serially"   
)

Definition at line 18 of file ComboCentLB.C.

References Converse::CkMyPe(), CmiAbort(), getLBAllocFn(), p, quietModeRequested, and strdup().

Here is the call graph for this function:

void CreateComboCentLB (  ) 

void eraseObjFromParrObjs ( std::vector< int > &  parr_objs,
int  remove_objid 
) [inline]

Definition at line 568 of file TempAwareCommLB.C.

Referenced by handleTransfer().

Here is the caller graph for this function:

void printMapping ( std::vector< Vertex > &  vertices  )  [inline]

Definition at line 321 of file CommAwareRefineLB.C.

void removeFromArray ( int  pe_id,
std::vector< int > &  array 
) [inline]

Definition at line 584 of file TempAwareCommLB.C.

Referenced by updateLoadInfo().

Here is the caller graph for this function:

int popFromProcHeap ( std::vector< int > &  parr_above_avg,
ProcArray parr 
) [inline]

Definition at line 592 of file TempAwareCommLB.C.

Referenced by TempAwareCommLB::work(), and CommAwareRefineLB::work().

Here is the caller graph for this function:

void handleTransfer ( int  randomly_obj_id,
ProcInfo p,
int  possible_pe,
std::vector< int > *  parr_objs,
ObjGraph ogr,
ProcArray parr 
) [inline]

Definition at line 601 of file TempAwareCommLB.C.

References eraseObjFromParrObjs(), ProcInfo::getProcId(), ProcArray::procs, ProcInfo::totalLoad(), and ObjGraph::vertices.

Referenced by TempAwareCommLB::work(), and CommAwareRefineLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void updateLoadInfo ( int  p_index,
int  possible_pe,
double  upper_threshold,
double  lower_threshold,
std::vector< int > &  parr_above_avg,
std::vector< int > &  parr_below_avg,
std::vector< bool > &  proc_load_info,
ProcArray parr 
) [inline]

Definition at line 613 of file TempAwareCommLB.C.

References ProcInfo::getTotalLoad(), p, ProcArray::procs, and removeFromArray().

Referenced by TempAwareCommLB::work(), and CommAwareRefineLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void getPossiblePes ( std::vector< int > &  possible_pes,
int  randomly_obj_id,
ObjGraph ogr,
ProcArray parr 
) [inline]

Definition at line 652 of file TempAwareCommLB.C.

References index, TempAwareCommLB::ObjPeCommInfo::pcomm, sort(), and ObjGraph::vertices.

Referenced by TempAwareCommLB::work(), and CommAwareRefineLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

CreateLBFunc_Def ( CommAwareRefineLB  ,
"always assign the heaviest obj onto lightest loaded processor."   
)

Definition at line 54 of file CommAwareRefineLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void PrintProcLoad ( ProcArray parr  ) 

Definition at line 120 of file CommAwareRefineLB.C.

References lower_threshold, ProcArray::procs, and upper_threshold.

void PrintProcObj ( ProcArray parr,
vector< int > *  parr_objs 
)

Definition at line 141 of file CommAwareRefineLB.C.

References ProcArray::procs.

void CreateCommAwareRefineLB (  ) 

BaseLB* AllocateCommAwareRefineLB (  ) 

CreateLBFunc_Def ( CommLB  ,
"another variation of CommLB  
)

Definition at line 28 of file CommLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void init ( alloc_struct **  a,
graph object_graph,
int  l,
int  b 
)

void CreateCommLB (  ) 

static void CreateNoLB ( void   )  [static]

Definition at line 12 of file CommonLBs.C.

void initCommonLBs ( void   ) 

Definition at line 17 of file CommonLBs.C.

CreateLBFunc_Def ( DummyLB  ,
"Dummy load   balancer,
like a normal one but with empty strategy"   
)

Definition at line 10 of file DummyLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void CreateDummyLB (  ) 

void initEveryLB ( void   ) 

Definition at line 17 of file EveryLB.C.

CreateLBFunc_Def ( GraphBFTLB  ,
"Algorithm which does breadth first traversal for communication aware load balancing"   
)

Definition at line 20 of file GraphBFTLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void CreateGraphBFTLB (  ) 

CreateLBFunc_Def ( GraphPartLB  ,
"Algorithm which uses graph partitioning for communication aware load balancing"   
)

Definition at line 19 of file GraphPartLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void CreateGraphPartLB (  ) 

CreateLBFunc_Def ( GreedyAgentLB  ,
"always assign the heaviest obj onto lightest loaded processor taking into account the topology"   
)

Definition at line 19 of file GreedyAgentLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void CreateGreedyAgentLB (  ) 

CreateLBFunc_Def ( GreedyCommLB  ,
"Greedy algorithm which takes communication graph into account"   
)

Definition at line 24 of file GreedyCommLB.C.

References _lb_args, CkLBArgs::alpha(), alpha, CkLBArgs::beta(), beta, and manager_init().

Here is the call graph for this function:

static void init_data ( int assign,
graph object_graph,
int  l,
int  b 
) [static]

Definition at line 126 of file GreedyCommLB.C.

References graph::data, graph::next, and graph::nmsg.

Referenced by GreedyCommLB::work().

Here is the caller graph for this function:

void CreateGreedyCommLB (  ) 

BaseLB* AllocateGreedyCommLB (  ) 

CreateLBFunc_Def ( GreedyLB  ,
"always assign the heaviest obj onto lightest loaded processor."   
)

Definition at line 27 of file GreedyLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void CreateGreedyLB (  ) 

BaseLB* AllocateGreedyLB (  ) 

CreateLBFunc_Def ( GreedyRefineLB  ,
"Greedy refinement-based algorithm"   
)

Definition at line 182 of file GreedyRefineLB.C.

References _lb_args, Converse::CkMyPe(), float, CkLBArgs::percentMovesAllowed(), and quietModeRequested.

Here is the call graph for this function:

static void getGreedyRefineParams ( int  rank,
float A,
float B 
) [static]

Definition at line 355 of file GreedyRefineLB.C.

References Avals, Bvals, and x.

Referenced by GreedyRefineLB::receiveSolutions(), and GreedyRefineLB::work().

Here is the caller graph for this function:

void CreateGreedyRefineLB (  ) 

BaseLB* AllocateGreedyRefineLB (  ) 

Referenced by CreateLBFunc_Def().

Here is the caller graph for this function:

CreateLBFunc_Def ( HbmLB  ,
"HybridBase load balancer"   
)

Definition at line 16 of file HbmLB.C.

References HbmLB::Migrated().

Here is the call graph for this function:

double myabs ( double  x  )  [inline]

Definition at line 194 of file HbmLB.C.

Referenced by HbmLB::Loadbalancing().

Here is the caller graph for this function:

double mymax ( double  x,
double  y 
) [inline]

Definition at line 195 of file HbmLB.C.

Referenced by HbmLB::Loadbalancing(), and simpleFindCollisions().

Here is the caller graph for this function:

void CreateHbmLB (  ) 

CreateLBFunc_Def ( HybridBaseLB  ,
"HybridBase load balancer"   
)

Definition at line 17 of file HybridBaseLB.C.

LBVectorMigrateMsg* VectorStrategy ( BaseLB::LDStats stats  ) 

void CreateHybridBaseLB (  ) 

int mymin ( int  x,
int  y 
) [inline]

Definition at line 23 of file HybridBaseLB.h.

Referenced by ThreeLevelTree::numChildren().

Here is the caller graph for this function:

CreateLBFunc_Def ( HybridLB  ,
"Hybrid load balancer"   
)

Definition at line 24 of file HybridLB.C.

References AllocateGreedyRefineLB(), AllocateRefineLB(), and refine().

Here is the call graph for this function:

void CreateHybridLB (  ) 

CkpvDeclare ( LBUserDataLayout  ,
lbobjdatalayout   
)

CkpvDeclare ( int  ,
_lb_obj_index   
)

CkpvDeclare ( int  ,
numLoadBalancers   
)

num of lb created

CkpvDeclare ( bool  ,
hasNullLB   
)

true if NullLB is created

CkpvDeclare ( bool  ,
lbdatabaseInited   
)

true if lbdatabase is inited

void LBDefaultCreate ( const char *  lbname  ) 

Definition at line 94 of file LBDatabase.C.

References LBDBRegistry::addCompiletimeBalancer().

Here is the call graph for this function:

void LBRegisterBalancer ( const char *  name,
LBCreateFn  fn,
LBAllocFn  afn,
const char *  help,
int  shown 
)

Definition at line 100 of file LBDatabase.C.

References LBDBRegistry::addEntry().

Referenced by lbinit().

Here is the call graph for this function:

Here is the caller graph for this function:

static void createLoadBalancer ( const char *  lbname  )  [static]

Definition at line 110 of file LBDatabase.C.

References CmiPrintf(), LBDBRegistry::displayLBs(), and LBDBRegistry::search().

Referenced by LBDBInit::LBDBInit().

Here is the call graph for this function:

Here is the caller graph for this function:

void _loadbalancerInit (  ) 

void TurnManualLBOn (  ) 

Definition at line 648 of file LBDatabase.C.

References LBDatabase::manualOn, LBDatabase::Object(), and LBDatabase::TurnManualLBOn().

Here is the call graph for this function:

void TurnManualLBOff (  ) 

Definition at line 661 of file LBDatabase.C.

References LBDatabase::manualOn, LBDatabase::Object(), and LBDatabase::TurnManualLBOff().

Here is the call graph for this function:

void LBTurnInstrumentOn (  ) 

Definition at line 674 of file LBDatabase.C.

References LBDatabase::CollectStatsOn(), LBDatabase::Object(), and CkLBArgs::statsOn().

Referenced by AMPI_Load_start_measure(), flbturninstrumenton(), and LV3D_PerfManager::startBalance().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBTurnInstrumentOff (  ) 

Definition at line 683 of file LBDatabase.C.

References LBDatabase::CollectStatsOff(), LBDatabase::Object(), and CkLBArgs::statsOn().

Referenced by AMPI_Load_stop_measure(), LV3D_PerfManager::doneBalance(), and flbturninstrumentoff().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBTurnCommOn (  ) 

Definition at line 692 of file LBDatabase.C.

References CkLBArgs::traceComm().

Here is the call graph for this function:

void LBTurnCommOff (  ) 

Definition at line 698 of file LBDatabase.C.

References CkLBArgs::traceComm().

Here is the call graph for this function:

void LBClearLoads (  ) 

Definition at line 704 of file LBDatabase.C.

References LBDatabase::ClearLoads(), and LBDatabase::Object().

Referenced by AMPI_Load_reset_measure(), and LV3D_PerfManager::startBalance().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBTurnPredictorOn ( LBPredictorFunction model  ) 

Definition at line 710 of file LBDatabase.C.

References LBDatabase::Object(), and LBDatabase::PredictorOn().

Here is the call graph for this function:

void LBTurnPredictorOn ( LBPredictorFunction model,
int  wind 
)

Definition at line 716 of file LBDatabase.C.

References LBDatabase::Object(), and LBDatabase::PredictorOn().

Here is the call graph for this function:

void LBTurnPredictorOff (  ) 

Definition at line 722 of file LBDatabase.C.

References LBDatabase::Object(), and LBDatabase::PredictorOff().

Here is the call graph for this function:

void LBChangePredictor ( LBPredictorFunction model  ) 

Definition at line 728 of file LBDatabase.C.

References LBDatabase::ChangePredictor(), and LBDatabase::Object().

Here is the call graph for this function:

void LBSetPeriod ( double  second  ) 

Definition at line 734 of file LBDatabase.C.

References CkLBArgs::lbperiod(), LBDatabase::Object(), and LBDatabase::SetLBPeriod().

Here is the call graph for this function:

int LBRegisterObjUserData ( int  size  ) 

Definition at line 743 of file LBDatabase.C.

Referenced by CreateLBFunc_Def().

Here is the caller graph for this function:

PUPbytes ( CkLBOptions   ) 

CkpvExtern ( int  ,
numLoadBalancers   
)

CkpvExtern ( bool  ,
hasNullLB   
)

CkpvExtern ( bool  ,
lbdatabaseInited   
)

void LBDefaultCreate ( LBCreateFn  f  ) 

void _LBDBInit (  ) 

LBDatabase* LBDatabaseObj (  )  [inline]

void CkStartLB (  )  [inline]

Definition at line 470 of file LBDatabase.h.

References LBDatabase::Object(), and LBDatabase::StartLB().

Here is the call graph for this function:

void get_avail_vector ( char *  bitmap  )  [inline]

Definition at line 472 of file LBDatabase.h.

References LBDatabase::get_avail_vector(), and LBDatabaseObj().

Referenced by CkMemCheckPT::isMaster().

Here is the call graph for this function:

Here is the caller graph for this function:

void set_avail_vector ( char *  bitmap  )  [inline]

Definition at line 476 of file LBDatabase.h.

References LBDatabaseObj(), and LBDatabase::set_avail_vector().

Referenced by _ckAckEvac(), _ckEvacBcast(), CkMemCheckPT::isMaster(), and LV3D_PerfManager::LV3D_PerfManager().

Here is the call graph for this function:

Here is the caller graph for this function:

LDHandle LDCreate ( void   ) 

Definition at line 18 of file lbdb.C.

References h, and LDHandle::handle.

Referenced by LBDatabase::init().

Here is the caller graph for this function:

LDOMHandle LDRegisterOM ( LDHandle  _db,
LDOMid  _userID,
void *  _userptr,
LDCallbacks  _callbacks 
)

Definition at line 25 of file lbdb.C.

References LBDB::AddOM(), and LDHandle::handle.

Referenced by LBDatabase::RegisterOM().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDUnregisterOM ( LDHandle  _db,
LDOMHandle  om 
)

Definition at line 32 of file lbdb.C.

References LDHandle::handle, and LBDB::RemoveOM().

Referenced by LBDatabase::UnregisterOM().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDOMMetaLBResumeWaitingChares ( LDHandle  _db,
int  lb_ideal_period 
)

Definition at line 38 of file lbdb.C.

References LDHandle::handle, and LBDB::MetaLBResumeWaitingChares().

Referenced by LBDatabase::MetaLBResumeWaitingChares().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDOMMetaLBCallLBOnChares ( LDHandle  _db  ) 

Definition at line 43 of file lbdb.C.

References LDHandle::handle, and LBDB::MetaLBCallLBOnChares().

Referenced by LBDatabase::MetaLBCallLBOnChares().

Here is the call graph for this function:

Here is the caller graph for this function:

void * LDOMUserData ( LDOMHandle _h  ) 

Definition at line 48 of file lbdb.C.

References LBOM::getUserData(), LDHandle::handle, LBDB::LbOM(), and LDOMHandle::ldb.

Here is the call graph for this function:

void LDRegisteringObjects ( LDOMHandle  _h  ) 

Definition at line 54 of file lbdb.C.

References LDHandle::handle, LDOMHandle::ldb, and LBDB::RegisteringObjects().

Referenced by LBDatabase::RegisteringObjects().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDDoneRegisteringObjects ( LDOMHandle  _h  ) 

Definition at line 60 of file lbdb.C.

References LBDB::DoneRegisteringObjects(), LDHandle::handle, and LDOMHandle::ldb.

Referenced by LBDatabase::DoneRegisteringObjects().

Here is the call graph for this function:

Here is the caller graph for this function:

LDObjHandle LDRegisterObj ( LDOMHandle  _h,
CmiUInt8  _id,
void *  _userData,
bool  _migratable 
)

Definition at line 66 of file lbdb.C.

References LBDB::AddObj(), LDHandle::handle, and LDOMHandle::ldb.

Referenced by LBDatabase::RegisterObj().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDUnregisterObj ( LDObjHandle  _h  ) 

Definition at line 73 of file lbdb.C.

References LDHandle::handle, LDOMHandle::ldb, LDObjHandle::omhandle, and LBDB::UnregisterObj().

Referenced by LBDatabase::UnregisterObj().

Here is the call graph for this function:

Here is the caller graph for this function:

const LDObjHandle & LDGetObjHandle ( LDHandle  h,
int  oh 
)

Definition at line 80 of file lbdb.C.

References LBObj::GetLDObjHandle(), LDHandle::handle, and LBDB::LbObjIdx().

Referenced by LBDatabase::GetObjHandle().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDObjTime ( LDObjHandle _h,
LBRealType  walltime,
LBRealType  cputime 
)

Definition at line 87 of file lbdb.C.

References LDHandle::handle, LBObj::IncrementTime(), LBDB::LbObj(), LDOMHandle::ldb, LBDB::MeasuredObjTime(), and LDObjHandle::omhandle.

Referenced by LBDatabase::ObjTime().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDGetObjLoad ( LDObjHandle _h,
LBRealType wallT,
LBRealType cpuT 
)

Definition at line 96 of file lbdb.C.

References LBObj::getTime(), LDHandle::handle, LBDB::LbObj(), LDOMHandle::ldb, and LDObjHandle::omhandle.

Referenced by LBDatabase::GetObjLoad().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDQueryKnownObjLoad ( LDObjHandle _h,
LBRealType wallT,
LBRealType cpuT 
)

Definition at line 103 of file lbdb.C.

References LDHandle::handle, LBObj::lastKnownLoad(), LBDB::LbObj(), LDOMHandle::ldb, and LDObjHandle::omhandle.

Referenced by LBDatabase::QueryKnownObjLoad().

Here is the call graph for this function:

Here is the caller graph for this function:

void * LDObjUserData ( LDObjHandle _h  ) 

Definition at line 110 of file lbdb.C.

References LBObj::getLocalUserData(), LDHandle::handle, LBDB::LbObj(), LDOMHandle::ldb, and LDObjHandle::omhandle.

Referenced by CkLocRec::staticMetaLBCallLBOnChares(), CkLocRec::staticMetaLBResumeWaitingChares(), and CkLocRec::staticMigrate().

Here is the call graph for this function:

Here is the caller graph for this function:

void * LDDBObjUserData ( LDObjHandle _h,
int  idx 
)

Definition at line 118 of file lbdb.C.

References LBObj::getDBUserData(), LDHandle::handle, LBDB::LbObj(), LDOMHandle::ldb, and LDObjHandle::omhandle.

Referenced by LBDatabase::GetDBObjUserData().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDDumpDatabase ( LDHandle  _db  ) 

Definition at line 126 of file lbdb.C.

References LBDB::DumpDatabase(), and LDHandle::handle.

Referenced by LBDatabase::DumpDatabase().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDNotifyMigrated ( LDHandle  _db,
LDMigratedFn  fn,
void *  data 
)

Definition at line 132 of file lbdb.C.

References LDHandle::handle, and LBDB::NotifyMigrated().

Referenced by LBDatabase::NotifyMigrated().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDAddStartLBFn ( LDHandle  _db,
LDStartLBFn  fn,
void *  data 
)

Definition at line 138 of file lbdb.C.

References LBDB::AddStartLBFn(), and LDHandle::handle.

Referenced by LBDatabase::AddStartLBFn().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDRemoveStartLBFn ( LDHandle  _db,
LDStartLBFn  fn 
)

Definition at line 144 of file lbdb.C.

References LDHandle::handle, and LBDB::RemoveStartLBFn().

Referenced by LBDatabase::RemoveStartLBFn().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDStartLB ( LDHandle  _db  ) 

Definition at line 150 of file lbdb.C.

References LDHandle::handle, and LBDB::StartLB().

Referenced by LBDatabase::StartLB().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDTurnManualLBOn ( LDHandle  _db  ) 

Definition at line 156 of file lbdb.C.

References LDHandle::handle, and LBDB::TurnManualLBOn().

Referenced by LBDatabase::TurnManualLBOn().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDTurnManualLBOff ( LDHandle  _db  ) 

Definition at line 162 of file lbdb.C.

References LDHandle::handle, and LBDB::TurnManualLBOff().

Referenced by LBDatabase::TurnManualLBOff().

Here is the call graph for this function:

Here is the caller graph for this function:

int LDAddMigrationDoneFn ( LDHandle  _db,
LDMigrationDoneFn  fn,
void *  data 
)

Definition at line 168 of file lbdb.C.

References LBDB::AddMigrationDoneFn(), and LDHandle::handle.

Referenced by LBDatabase::AddMigrationDoneFn().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDRemoveMigrationDoneFn ( LDHandle  _db,
LDMigrationDoneFn  fn 
)

Definition at line 174 of file lbdb.C.

References LDHandle::handle, and LBDB::RemoveMigrationDoneFn().

Referenced by LBDatabase::RemoveMigrationDoneFn().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDMigrationDone ( LDHandle  _db  ) 

Definition at line 180 of file lbdb.C.

References LDHandle::handle, and LBDB::MigrationDone().

Referenced by LBDatabase::MigrationDone().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDTurnPredictorOn ( LDHandle  _db,
void *  model 
)

Definition at line 186 of file lbdb.C.

References LDHandle::handle, and LBDB::TurnPredictorOn().

Referenced by LBDatabase::ChangePredictor(), and LBDatabase::PredictorOn().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDTurnPredictorOnWin ( LDHandle  _db,
void *  model,
int  wind 
)

Definition at line 192 of file lbdb.C.

References LDHandle::handle, and LBDB::TurnPredictorOn().

Referenced by LBDatabase::PredictorOn().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDTurnPredictorOff ( LDHandle  _db  ) 

Definition at line 198 of file lbdb.C.

References LDHandle::handle, and LBDB::TurnPredictorOff().

Referenced by LBDatabase::PredictorOff().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDChangePredictor ( LDHandle  _db,
void *  model 
)

Definition at line 205 of file lbdb.C.

References LBDB::ChangePredictor(), and LDHandle::handle.

Here is the call graph for this function:

void LDCollectStatsOn ( LDHandle  _db  ) 

Definition at line 211 of file lbdb.C.

References LDHandle::handle, LBDB::LbObj(), LBDB::ObjIsRunning(), LBDB::RunningObj(), LBObj::StartTimer(), LBDB::StatsOn(), and LBDB::TurnStatsOn().

Referenced by LBDatabase::CollectStatsOn().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDCollectStatsOff ( LDHandle  _db  ) 

Definition at line 226 of file lbdb.C.

References LDHandle::handle, and LBDB::TurnStatsOff().

Referenced by LBDatabase::CollectStatsOff().

Here is the call graph for this function:

Here is the caller graph for this function:

int CLDCollectingStats ( LDHandle  _db  ) 

Definition at line 232 of file lbdb.C.

References LDCollectingStats().

Here is the call graph for this function:

int CLDRunningObject ( LDHandle  _h,
LDObjHandle _o 
)

Definition at line 240 of file lbdb.C.

References LDRunningObject().

Here is the call graph for this function:

void LDObjectStart ( const LDObjHandle _h  ) 

Definition at line 245 of file lbdb.C.

References LDHandle::handle, LBDB::LbObj(), LDOMHandle::ldb, LDObjectStop(), LBDB::ObjIsRunning(), LDObjHandle::omhandle, LBDB::RunningObj(), LBDB::SetRunningObj(), LBObj::StartTimer(), and LBDB::StatsOn().

Referenced by LBDatabase::ObjectStart().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDObjectStop ( const LDObjHandle _h  ) 

Definition at line 259 of file lbdb.C.

References LDHandle::handle, LBObj::IncrementTime(), LBDB::LbObj(), LDOMHandle::ldb, LBDB::MeasuredObjTime(), LBDB::NoRunningObj(), LDObjHandle::omhandle, LBDB::StatsOn(), and LBObj::StopTimer().

Referenced by LDObjectStart(), and LBDatabase::ObjectStop().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDSend ( const LDOMHandle destOM,
const CmiUInt8 destid,
unsigned int  bytes,
int  destObjProc,
int  force 
)

Definition at line 273 of file lbdb.C.

References _lb_args, LDHandle::handle, LDOMHandle::ldb, LBDB::Send(), LBDB::StatsOn(), and CkLBArgs::traceComm().

Referenced by LBDatabase::Send().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDMulticastSend ( const LDOMHandle destOM,
CmiUInt8 destids,
int  ndests,
unsigned int  bytes,
int  nMsgs 
)

Definition at line 280 of file lbdb.C.

References _lb_args, LDHandle::handle, LDOMHandle::ldb, LBDB::MulticastSend(), LBDB::StatsOn(), and CkLBArgs::traceComm().

Referenced by LBDatabase::MulticastSend().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDBackgroundLoad ( LDHandle  _db,
LBRealType walltime,
LBRealType cputime 
)

Definition at line 287 of file lbdb.C.

References LBDB::BackgroundLoad(), and LDHandle::handle.

Referenced by LBDatabase::BackgroundLoad().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDIdleTime ( LDHandle  _db,
LBRealType walltime 
)

Definition at line 296 of file lbdb.C.

References LDHandle::handle, and LBDB::IdleTime().

Referenced by LBDatabase::IdleTime().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDTotalTime ( LDHandle  _db,
LBRealType walltime,
LBRealType cputime 
)

Definition at line 304 of file lbdb.C.

References LDHandle::handle, and LBDB::TotalTime().

Referenced by LBDatabase::TotalTime().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDGetTime ( LDHandle  _db,
LBRealType total_walltime,
LBRealType total_cputime,
LBRealType idletime,
LBRealType bg_walltime,
LBRealType bg_cputime 
)

Definition at line 312 of file lbdb.C.

References LBDB::GetTime(), and LDHandle::handle.

Referenced by LBDatabase::GetTime().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDNonMigratable ( const LDObjHandle h  ) 

Definition at line 320 of file lbdb.C.

References LDHandle::handle, LBDB::LbObj(), LDOMHandle::ldb, LDObjHandle::omhandle, and LBObj::SetMigratable().

Referenced by LBDatabase::NonMigratable().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDMigratable ( const LDObjHandle h  ) 

Definition at line 328 of file lbdb.C.

References LDHandle::handle, LBDB::LbObj(), LDOMHandle::ldb, LDObjHandle::omhandle, and LBObj::SetMigratable().

Referenced by LBDatabase::Migratable().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDSetPupSize ( const LDObjHandle h,
size_t  obj_pup_size 
)

Definition at line 336 of file lbdb.C.

References LDHandle::handle, LBDB::LbObj(), LDOMHandle::ldb, LDObjHandle::omhandle, and LBObj::setPupSize().

Referenced by LBDatabase::setPupSize().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDAsyncMigrate ( const LDObjHandle h,
bool  async 
)

Definition at line 344 of file lbdb.C.

References LDHandle::handle, LBDB::LbObj(), LDOMHandle::ldb, LDObjHandle::omhandle, and LBObj::UseAsyncMigrate().

Referenced by LBDatabase::UseAsyncMigrate().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDClearLoads ( LDHandle  _db  ) 

Definition at line 352 of file lbdb.C.

References LBDB::ClearLoads(), and LDHandle::handle.

Referenced by LBDatabase::ClearLoads().

Here is the call graph for this function:

Here is the caller graph for this function:

int LDGetObjDataSz ( LDHandle  _db  ) 

Definition at line 359 of file lbdb.C.

References LDHandle::handle, and LBDB::ObjDataCount().

Referenced by LBDatabase::GetObjDataSz().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDGetObjData ( LDHandle  _db,
LDObjData data 
)

Definition at line 366 of file lbdb.C.

References LBDB::GetObjData(), and LDHandle::handle.

Referenced by LBDatabase::GetObjData().

Here is the call graph for this function:

Here is the caller graph for this function:

int LDGetCommDataSz ( LDHandle  _db  ) 

Definition at line 373 of file lbdb.C.

References LBDB::CommDataCount(), and LDHandle::handle.

Referenced by LBDatabase::GetCommDataSz().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDGetCommData ( LDHandle  _db,
LDCommData data 
)

Definition at line 380 of file lbdb.C.

References LBDB::GetCommData(), and LDHandle::handle.

Referenced by LBDatabase::GetCommData().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDGetCommInfo ( LDHandle  _db,
int bytes,
int msgs,
int withinbytes,
int outsidebytes,
int n_nghbors,
int hops,
int hopbytes 
)

Definition at line 388 of file lbdb.C.

References LBDB::GetCommInfo(), and LDHandle::handle.

Referenced by LBDatabase::GetCommInfo().

Here is the call graph for this function:

Here is the caller graph for this function:

int LDMigrate ( LDObjHandle  _h,
int  dest 
)

Definition at line 395 of file lbdb.C.

References LDHandle::handle, LDOMHandle::ldb, LBDB::Migrate(), and LDObjHandle::omhandle.

Referenced by LBDatabase::Migrate().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDMigrated ( LDObjHandle  _h,
int  waitBarrier 
)

Definition at line 402 of file lbdb.C.

References LDHandle::handle, LDOMHandle::ldb, LBDB::Migrated(), and LDObjHandle::omhandle.

Referenced by LBDatabase::Migrated().

Here is the call graph for this function:

Here is the caller graph for this function:

LDBarrierClient LDAddLocalBarrierClient ( LDHandle  _db,
LDResumeFn  fn,
void *  data 
)

Definition at line 409 of file lbdb.C.

References LBDB::AddLocalBarrierClient(), and LDHandle::handle.

Referenced by LBDatabase::AddLocalBarrierClient().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDRemoveLocalBarrierClient ( LDHandle  _db,
LDBarrierClient  h 
)

Definition at line 416 of file lbdb.C.

References LDHandle::handle, and LBDB::RemoveLocalBarrierClient().

Referenced by LBDatabase::RemoveLocalBarrierClient().

Here is the call graph for this function:

Here is the caller graph for this function:

LDBarrierReceiver LDAddLocalBarrierReceiver ( LDHandle  _db,
LDBarrierFn  fn,
void *  data 
)

Definition at line 423 of file lbdb.C.

References LBDB::AddLocalBarrierReceiver(), and LDHandle::handle.

Referenced by LBDatabase::AddLocalBarrierReceiver().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDRemoveLocalBarrierReceiver ( LDHandle  _db,
LDBarrierReceiver  h 
)

Definition at line 430 of file lbdb.C.

References LDHandle::handle, and LBDB::RemoveLocalBarrierReceiver().

Referenced by LBDatabase::RemoveLocalBarrierReceiver().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDAtLocalBarrier ( LDHandle  _db,
LDBarrierClient  h 
)

Definition at line 437 of file lbdb.C.

References LBDB::AtLocalBarrier(), and LDHandle::handle.

Referenced by LBDatabase::AtLocalBarrier().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDDecreaseLocalBarrier ( LDHandle  _db,
LDBarrierClient  h,
int  c 
)

Definition at line 444 of file lbdb.C.

References LBDB::DecreaseLocalBarrier(), and LDHandle::handle.

Referenced by LBDatabase::DecreaseLocalBarrier().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDLocalBarrierOn ( LDHandle  _db  ) 

Definition at line 451 of file lbdb.C.

References LDHandle::handle, and LBDB::LocalBarrierOn().

Referenced by LBDatabase::LocalBarrierOff(), and LBDatabase::LocalBarrierOn().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDLocalBarrierOff ( LDHandle  _db  ) 

Definition at line 458 of file lbdb.C.

References LDHandle::handle, and LBDB::LocalBarrierOff().

Here is the call graph for this function:

void LDResumeClients ( LDHandle  _db  ) 

Definition at line 466 of file lbdb.C.

References LDHandle::handle, and LBDB::ResumeClients().

Referenced by LBDatabase::ResumeClients().

Here is the call graph for this function:

Here is the caller graph for this function:

static void work ( int  iter_block,
int result 
) [static]

Definition at line 473 of file lbdb.C.

References PUP::b, and int.

Referenced by LDProcessorSpeed().

Here is the caller graph for this function:

int LDProcessorSpeed (  ) 

Definition at line 482 of file lbdb.C.

References _lb_args, Converse::CkNumPes(), CmiCpuTimer(), end_time, int, CkLBArgs::samePeSpeed(), start_time, and work().

Referenced by _propMapInit(), and LBDatabase::ProcessorSpeed().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDSetLBPeriod ( LDHandle  _db,
double  s 
)

Definition at line 535 of file lbdb.C.

References LDHandle::handle, and LBDB::SetPeriod().

Referenced by LBDatabase::SetLBPeriod().

Here is the call graph for this function:

Here is the caller graph for this function:

double LDGetLBPeriod ( LDHandle  _db  ) 

Definition at line 541 of file lbdb.C.

References LBDB::GetPeriod(), and LDHandle::handle.

Referenced by LBDatabase::GetLBPeriod().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDQueryEstLoad ( LDHandle  bdb  ) 

Definition at line 555 of file lbdb.C.

Referenced by LBDatabase::QueryEstLoad().

Here is the caller graph for this function:

int LDMemusage ( LDHandle  _db  ) 

Definition at line 559 of file lbdb.C.

References LDHandle::handle, and LBDB::useMem().

Referenced by LBDatabase::useMem().

Here is the call graph for this function:

Here is the caller graph for this function:

bool LDOMidEqual ( const LDOMid i1,
const LDOMid i2 
)

Definition at line 569 of file lbdb.C.

References _LDOMid::id.

Referenced by ObjGraph::find_node(), BaseLB::LDStats::getHash(), and LBDB::Send().

Here is the caller graph for this function:

bool _LDOMid::operator== ( const struct _LDOMid omId  )  const [inline, inherited]

Definition at line 55 of file lbdb.h.

References _LDOMid::id.

bool _LDOMid::operator< ( const struct _LDOMid omId  )  const [inline, inherited]

Definition at line 58 of file lbdb.h.

References _LDOMid::id.

bool _LDOMid::operator!= ( const struct _LDOMid omId  )  const [inline, inherited]

Definition at line 61 of file lbdb.h.

References _LDOMid::id.

void _LDOMid::pup ( PUP::er p  )  [inline, inherited]

void LDOMHandle::pup ( PUP::er p  )  [inline, inherited]

bool _LDObjKey::operator== ( const _LDObjKey obj  )  const [inline, inherited]

Definition at line 81 of file lbdb.h.

References _LDObjKey::objId, and _LDObjKey::omId.

bool _LDObjKey::operator< ( const _LDObjKey obj  )  const [inline, inherited]

Definition at line 84 of file lbdb.h.

References _LDObjKey::objId, and _LDObjKey::omId.

LDOMid& _LDObjKey::omID (  )  [inline, inherited]

CmiUInt8& _LDObjKey::objID (  )  [inline, inherited]

const LDOMid& _LDObjKey::omID (  )  const [inline, inherited]

Definition at line 91 of file lbdb.h.

References _LDObjKey::omId.

const CmiUInt8& _LDObjKey::objID (  )  const [inline, inherited]

Definition at line 92 of file lbdb.h.

References _LDObjKey::objId.

void _LDObjKey::pup ( PUP::er p  )  [inline, inherited]

const LDOMid& LDObjHandle::omID (  )  const [inline, inherited]

Definition at line 103 of file lbdb.h.

References LDOMHandle::id.

Referenced by LBCommData::compute_key(), LBCommData::equal(), getPredictedLoadWithMsg(), HbmLB::MigrationDone(), and HybridBaseLB::ReceiveMigration().

Here is the caller graph for this function:

const CmiUInt8& LDObjHandle::objID (  )  const [inline, inherited]

Definition at line 104 of file lbdb.h.

Referenced by HybridBaseLB::createMigrateMsg(), LBCommData::equal(), getPredictedLoadWithMsg(), HbmLB::MigrationDone(), and HybridBaseLB::ReceiveMigration().

Here is the caller graph for this function:

void LDObjHandle::pup ( PUP::er p  )  [inline, inherited]

LBUserDataLayout::LBUserDataLayout (  )  [inline, inherited]

Definition at line 113 of file lbdb.h.

int LBUserDataLayout::claim ( int  size  )  [inline, inherited]

Definition at line 114 of file lbdb.h.

References LBUserDataLayout::count, and LBUserDataLayout::length.

int LBUserDataLayout::size ( void   )  [inline, inherited]

Definition at line 120 of file lbdb.h.

References LBUserDataLayout::length.

CkpvExtern ( LBUserDataLayout  ,
lbobjdatalayout   
)

LBObjUserData::LBObjUserData (  )  [inline, inherited]

Definition at line 128 of file lbdb.h.

LBObjUserData::LBObjUserData ( const LBObjUserData d  )  [inline, inherited]

Definition at line 130 of file lbdb.h.

References LBObjUserData::data, LBObjUserData::init(), and size.

Here is the call graph for this function:

LBObjUserData::~LBObjUserData (  )  [inline, inherited]

Definition at line 137 of file lbdb.h.

References LBObjUserData::data.

LBObjUserData& LBObjUserData::operator= ( const LBObjUserData d  )  [inline, inherited]

Definition at line 138 of file lbdb.h.

References LBObjUserData::data, LBObjUserData::init(), and size.

Here is the call graph for this function:

void LBObjUserData::init ( void   )  [inline, inherited]

Definition at line 145 of file lbdb.h.

References LBObjUserData::data.

Referenced by LBObjUserData::getData(), LBObjUserData::LBObjUserData(), and LBObjUserData::operator=().

Here is the caller graph for this function:

void LBObjUserData::pup ( PUP::er p  )  [inline, inherited]

void* LBObjUserData::getData ( int  idx  )  [inline, inherited]

Definition at line 147 of file lbdb.h.

References LBObjUserData::data, and LBObjUserData::init().

Referenced by LDObjData::getUserData().

Here is the call graph for this function:

Here is the caller graph for this function:

const LDOMHandle& LDObjData::omHandle (  )  const [inline, inherited]

Definition at line 167 of file lbdb.h.

References LDObjHandle::omhandle.

Referenced by OrbLB::work(), and BlockLB::work().

Here is the caller graph for this function:

const LDOMid& LDObjData::omID (  )  const [inline, inherited]

const CmiUInt8& LDObjData::objID (  )  const [inline, inherited]

const CmiUInt8& LDObjData::id (  )  const [inline, inherited]

Definition at line 170 of file lbdb.h.

References LDObjHandle::id.

void LDObjData::pup ( PUP::er p  )  [inline, inherited]

void* LDObjData::getUserData ( int  idx  )  [inline, inherited]

Definition at line 173 of file lbdb.h.

References LBObjUserData::getData().

Referenced by LBObj::getDBUserData(), and OrbLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void LDObjStats::pup ( PUP::er p  )  [inline, inherited]

char& _LDCommDesc::get_type (  )  [inline, inherited]

char _LDCommDesc::get_type (  )  const [inline, inherited]

Definition at line 204 of file lbdb.h.

References _LDCommDesc::type.

int _LDCommDesc::proc (  )  const [inline, inherited]

Definition at line 205 of file lbdb.h.

References _LDCommDesc::dest, and _LDCommDesc::type.

Referenced by LBCommData::compute_key().

Here is the caller graph for this function:

void _LDCommDesc::setProc ( int  pe  )  [inline, inherited]

Definition at line 206 of file lbdb.h.

References _LDCommDesc::dest, and _LDCommDesc::type.

Referenced by HybridBaseLB::buildCombinedLBStatsMessage(), and HybridBaseLB::depositLBStatsMessage().

Here is the caller graph for this function:

int _LDCommDesc::lastKnown (  )  const [inline, inherited]

Definition at line 207 of file lbdb.h.

References _LDCommDesc::dest, and _LDCommDesc::type.

LDObjKey& _LDCommDesc::get_destObj (  )  [inline, inherited]

LDObjKey const& _LDCommDesc::get_destObj (  )  const [inline, inherited]

Definition at line 214 of file lbdb.h.

References _LDCommDesc::dest, and _LDCommDesc::type.

LDObjKey* _LDCommDesc::get_destObjs ( int len  )  [inline, inherited]

void _LDCommDesc::init_objmsg ( LDOMid omid,
CmiUInt8 objid,
int  destObjProc 
) [inline, inherited]

Definition at line 218 of file lbdb.h.

References _LDCommDesc::dest, and _LDCommDesc::type.

Referenced by LBCommData::LBCommData().

Here is the caller graph for this function:

void _LDCommDesc::init_mcastmsg ( LDOMid omid,
CmiUInt8 objid,
int  len 
) [inline, inherited]

Definition at line 224 of file lbdb.h.

References _LDCommDesc::dest, and _LDCommDesc::type.

Referenced by LBCommData::LBCommData().

Here is the caller graph for this function:

bool _LDCommDesc::operator== ( const _LDCommDesc obj  )  const [inline, inherited]

LDCommDesc & LDCommDesc::operator= ( const _LDCommDesc c  )  [inline, inherited]

void LDCommDesc::pup ( PUP::er p  )  [inline, inherited]

Definition at line 536 of file lbdb.h.

References _lb_version, _LDCommDesc::dest, PUP::er::isUnpacking(), and _LDCommDesc::type.

Here is the call graph for this function:

_LDCommData& _LDCommData::operator= ( const _LDCommData o  )  [inline, inherited]

int _LDCommData::from_proc (  )  const [inline, inherited]

int _LDCommData::recv_type (  )  const [inline, inherited]

void _LDCommData::pup ( PUP::er p  )  [inline, inherited]

void _LDCommData::clearHash (  )  [inline, inherited]

Definition at line 257 of file lbdb.h.

References _LDCommData::recvHash, and _LDCommData::sendHash.

Referenced by LBCommTable::GetCommData().

Here is the caller graph for this function:

void LBBalance ( void *  param  ) 

void LBCollectStatsOn ( void   ) 

void LBCollectStatsOff ( void   ) 

void LDMessage ( LDObjHandle  from,
LDOMid  toOM,
CmiUInt8 toID,
int  bytes 
)

void LDEstObjLoad ( LDObjHandle  h,
double  load 
)

LDBarrierClient::LDBarrierClient (  )  [inline, inherited]

Definition at line 388 of file lbdb.h.

LDBarrierClient::LDBarrierClient ( std::list< client * >::iterator  in  )  [inline, inherited]

Definition at line 389 of file lbdb.h.

LDBarrierReceiver::LDBarrierReceiver (  )  [inline, inherited]

Definition at line 396 of file lbdb.h.

LDBarrierReceiver::LDBarrierReceiver ( std::list< receiver * >::iterator  in  )  [inline, inherited]

Definition at line 397 of file lbdb.h.

PUPbytes ( LDHandle   ) 

Definition at line 430 of file lbdb.h.

PUPmarshall ( LDOMid   ) 

Definition at line 436 of file lbdb.h.

PUPmarshall ( LDObjKey   ) 

Definition at line 442 of file lbdb.h.

References data, and index.

PUPmarshall ( LDObjStats   ) 

Definition at line 450 of file lbdb.h.

References handle, and _LDOMid::id.

PUPmarshall ( LDOMHandle   ) 

Definition at line 466 of file lbdb.h.

References handle, and _LDOMid::id.

PUPmarshall ( LDObjHandle   ) 

Definition at line 473 of file lbdb.h.

References data, p, and size.

PUPmarshall ( LBObjUserData   ) 

Definition at line 487 of file lbdb.h.

References _lb_version, and handle.

PUPmarshall ( LDObjData   ) 

Definition at line 508 of file lbdb.h.

References dest, and type.

PUPmarshall ( LDCommDesc   ) 

Definition at line 553 of file lbdb.h.

static void handler ( char *  bit_map  )  [static]

void manager_init (  ) 

Cluster Manager Code, Accpets external bit vectors and then feeds it into the loadbalancer so that programs can shrink and expand.

Definition at line 41 of file manager.C.

References CcsRegisterHandler(), handler(), NO_REALLOC, pending_realloc_state, and willContinue.

Referenced by CentralLB::CentralLB(), CreateLBFunc_Def(), GridCommLB::GridCommLB(), GridCommRefineLB::GridCommRefineLB(), GridHybridLB::GridHybridLB(), GridHybridSeedLB::GridHybridSeedLB(), and GridMetisLB::GridMetisLB().

Here is the call graph for this function:

Here is the caller graph for this function:

CreateLBFunc_Def ( MetisLB  ,
"Use Metis(tm) to partition object graph  
)

Definition at line 17 of file MetisLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void CreateMetisLB (  ) 

BaseLB* AllocateMetisLB (  ) 

void CreateNborBaseLB (  ) 

CreateLBFunc_Def ( NeighborCommLB  ,
"The neighborhood load balancer with communication"   
)

Definition at line 16 of file NeighborCommLB.C.

References Converse::CkMyPe().

Here is the call graph for this function:

void CreateNeighborCommLB (  ) 

CreateLBFunc_Def ( NeighborLB  ,
"The neighborhood load balancer"   
)

Definition at line 12 of file NeighborLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void CreateNeighborLB (  ) 

void CreateNullLB ( void   ) 

Definition at line 17 of file NullLB.C.

Referenced by lbinit().

Here is the caller graph for this function:

static void migrationDone ( envelope env,
CkCoreState ck 
) [static]

Definition at line 29 of file NullLB.C.

References CkFreeSysMsg(), CkLocalBranch(), EnvToUsr(), lb, NullLB::migrationsDone(), and CkCoreState::watcher.

Referenced by lbprocinit().

Here is the call graph for this function:

Here is the caller graph for this function:

static void lbinit ( void   )  [static]

Definition at line 43 of file NullLB.C.

References CreateNullLB(), and LBRegisterBalancer().

Here is the call graph for this function:

static void lbprocinit ( void   )  [static]

Definition at line 47 of file NullLB.C.

References _migDoneHandle, CmiAssignOnce(), and migrationDone().

Here is the call graph for this function:

static void staticStartLB ( void *  data  )  [static]

Definition at line 54 of file NullLB.C.

References Converse::CkMyPe(), and CmiPrintf().

Referenced by NullLB::init(), and NullLB::~NullLB().

Here is the call graph for this function:

Here is the caller graph for this function:

CreateLBFunc_Def ( OrbLB  ,
"partition objects based on coordinates"   
)

Definition at line 20 of file OrbLB.C.

References LBRegisterObjUserData().

Here is the call graph for this function:

void CreateOrbLB (  ) 

BaseLB* AllocateOrbLB ( void   ) 

CreateLBFunc_Def ( PhasebyArrayLB  ,
"Load balancer which balances many arrays   together,
specifically for CPAIMD"   
)

Definition at line 12 of file PhasebyArrayLB.C.

References Converse::CkMyPe(), CmiAbort(), getLBAllocFn(), CkLBOptions::getSeqNo(), lb, p, quietModeRequested, and strdup().

Here is the call graph for this function:

void CreatePhasebyArrayLB (  ) 

CreateLBFunc_Def ( RandCentLB  ,
"Assign objects to processors randomly"   
)

Definition at line 16 of file RandCentLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

int chooseProc ( int  count  )  [inline]

Definition at line 30 of file RandCentLB.C.

References CrnDrand().

Referenced by RandCentLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void CreateRandCentLB (  ) 

void RecursiveBiPart ( ObjGraph ogr,
vector< Vertex * > &  pvertices,
int  parent,
int  nump 
)

void adjustqueues ( ObjGraph ogr,
BQueue que1,
BQueue que2,
vector< Vertex * > &  partition1,
vector< Vertex * > &  partition2,
int initialedgecut,
int  parent 
)

void adjustgain ( ObjGraph ogr,
vector< Vertex * > &  partition,
BQueue que 
)

Definition at line 467 of file RecBipartLB.C.

References BQueue::getBoundary(), BQueue::getMingain(), Vertex::getVertexId(), max(), BQueue::q, BQueue::setMingain(), BQueue::setSwapid(), BQueue::setVertextoswap(), PUP::u, ObjGraph::vertices, and vhelpers.

Referenced by adjustqueues(), and modifypartitions().

Here is the call graph for this function:

Here is the caller graph for this function:

void RefineBoundary ( ObjGraph ogr,
vector< Vertex * > &  partition1,
vector< Vertex * > &  partition2,
BQueue que1,
BQueue que2,
int  runs,
int  initialedgecut,
int  parent,
double  part1load,
double  part2load,
double  ratio 
)

Definition at line 498 of file RecBipartLB.C.

References BQueue::getVertextoswap(), modifypartitions(), BQueue::q, r, PUP::t, and ObjGraph::vertices.

Referenced by RecursiveBiPart().

Here is the call graph for this function:

Here is the caller graph for this function:

int modifypartitions ( ObjGraph ogr,
vector< Vertex * > &  partition1,
vector< Vertex * > &  partition2,
BQueue q1,
BQueue q2,
int  ec,
int  parent 
)

Definition at line 536 of file RecBipartLB.C.

References adjustgain(), e1, BQueue::getBoundary(), BQueue::getVertextoswap(), removePtr(), swapQ1toQ2(), and vhelpers.

Referenced by RefineBoundary().

Here is the call graph for this function:

Here is the caller graph for this function:

void swapQ1toQ2 ( ObjGraph ogr,
BQueue q1,
BQueue q2,
int  parent 
)

Definition at line 566 of file RecBipartLB.C.

References BQueue::push(), and removeinSwap().

Referenced by modifypartitions().

Here is the call graph for this function:

Here is the caller graph for this function:

Vertex * removeinSwap ( ObjGraph ogr,
BQueue q1,
BQueue q2,
int  parent 
)

Definition at line 573 of file RecBipartLB.C.

References BQueue::getBoundary(), Edge::getNumBytes(), BQueue::getVertextoswap(), level, BQueue::push(), Vertex::recvFromList, BQueue::removeComplete(), Vertex::sendToList, stats::swap(), PUP::u, ObjGraph::vertices, vhelpers, and PUP::w.

Referenced by swapQ1toQ2().

Here is the call graph for this function:

Here is the caller graph for this function:

Vertex * removePtr ( vector< Vertex * > &  vec,
int  id 
)

Definition at line 695 of file RecBipartLB.C.

Referenced by modifypartitions().

Here is the caller graph for this function:

CreateLBFunc_Def ( RecBipartLB  ,
"Algorithm for load balacing based on recursive bipartitioning of object graph  
)

Definition at line 111 of file RecBipartLB.C.

Graph * g_initGraph ( int  v,
int  e 
)

Status: does not support processor avail bitvector does not support nonmigratable attrib.

FIXME: need to remove outlier object load. Outlier object can cause failure of partitioning and often causes: "too few objects to paritition" error.

Definition at line 341 of file RecBisectBfLB.C.

References Graph::currentEdge, Graph::currentVertex, Graph::E, Graph::edges, int, malloc(), Graph::V, and Graph::vertices.

Referenced by RecBisectBfLB::convertGraph().

Here is the call graph for this function:

Here is the caller graph for this function:

void g_freeGraph ( Graph g  ) 

Definition at line 355 of file RecBisectBfLB.C.

References Graph::edges, free(), and Graph::vertices.

Referenced by RecBisectBfLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void g_nextVertex ( Graph g,
int  v,
float  w 
)

void g_finishVertex ( Graph g  ) 

Definition at line 407 of file RecBisectBfLB.C.

References Graph::currentEdge, Graph::currentVertex, VertexRecord::firstEdge, VertexRecord::numEdges, and Graph::vertices.

Referenced by RecBisectBfLB::convertGraph().

Here is the caller graph for this function:

void g_addEdge ( Graph g,
int  w,
float  w2 
)

Definition at line 381 of file RecBisectBfLB.C.

References Graph::currentEdge, Graph::currentVertex, Graph::edges, VertexRecord::firstEdge, VertexRecord::numEdges, and Graph::vertices.

Referenced by RecBisectBfLB::convertGraph().

Here is the caller graph for this function:

float graph_weightof ( Graph g,
int  vertex 
)

Definition at line 477 of file RecBisectBfLB.C.

References Graph::vertices, and VertexRecord::weight.

Referenced by RecBisectBfLB::addToQ(), and RecBisectBfLB::partitionInTwo().

Here is the caller graph for this function:

int g_numNeighbors ( Graph g,
int  node 
)

Definition at line 461 of file RecBisectBfLB.C.

References VertexRecord::numEdges, and Graph::vertices.

Referenced by RecBisectBfLB::enqChildren().

Here is the caller graph for this function:

int g_getNeighbor ( Graph g,
int  d,
int  i 
)

Definition at line 466 of file RecBisectBfLB.C.

References Graph::edges, VertexRecord::firstEdge, VertexRecord::numEdges, and Graph::vertices.

Referenced by RecBisectBfLB::enqChildren().

Here is the caller graph for this function:

void g_printGraph ( Graph g  ) 

Definition at line 450 of file RecBisectBfLB.C.

References CmiPrintf(), Graph::E, Graph::edges, VertexRecord::firstEdge, VertexRecord::numEdges, Graph::V, and Graph::vertices.

Here is the call graph for this function:

CreateLBFunc_Def ( RecBisectBfLB  ,
"Recursive partitioning with Breadth first enumeration"   
)

Definition at line 42 of file RecBisectBfLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void printPartition ( Graph g,
int  nodes[],
int  numNodes 
)

Definition at line 325 of file RecBisectBfLB.C.

int intSqrt ( int  x  ) 

Definition at line 334 of file RecBisectBfLB.C.

Referenced by generateRandomGraph().

Here is the caller graph for this function:

Graph * generateRandomGraph ( int  numNodes  ) 

void CreateRecBisectBfLB (  ) 

BaseLB* AllocateRecBisectBfLB (  ) 

CreateLBFunc_Def ( RefineCommLB  ,
"Average load among processors by moving objects away from overloaded   processor,
communication aware"   
)

Definition at line 12 of file RefineCommLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void CreateRefineCommLB (  ) 

BaseLB* AllocateRefineCommLB (  ) 

CreateLBFunc_Def ( RefineKLB  ,
"Move objects away from overloaded processor to reach average"   
)

Definition at line 16 of file RefineKLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void CreateRefineKLB (  ) 

BaseLB* AllocateRefineKLB (  ) 

CreateLBFunc_Def ( RefineLB  ,
"Move objects away from overloaded processor to reach average"   
)

Definition at line 12 of file RefineLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void CreateRefineLB (  ) 

BaseLB* AllocateRefineLB (  ) 

Referenced by CreateLBFunc_Def().

Here is the caller graph for this function:

CreateLBFunc_Def ( RefineSwapLB  ,
"always assign the heaviest obj onto lightest loaded processor."   
)

Definition at line 25 of file RefineSwapLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void addObjToProc ( ProcArray parr,
ObjGraph ogr,
std::vector< int > *  pe_obj,
int  pe_index,
int  obj_index 
) [inline]

Definition at line 68 of file RefineSwapLB.C.

References ProcArray::procs, and ObjGraph::vertices.

Referenced by IsSwapPossWithPe(), and refine().

Here is the caller graph for this function:

void removeObjFromProc ( ProcArray parr,
ObjGraph ogr,
std::vector< int > *  pe_obj,
int  pe_index,
int  arr_index 
) [inline]

Definition at line 81 of file RefineSwapLB.C.

References ProcArray::procs, and ObjGraph::vertices.

Referenced by IsSwapPossWithPe(), and refine().

Here is the caller graph for this function:

int getMax ( ProcArray parr,
std::vector< int > &  max_pe_heap 
) [inline]

Definition at line 93 of file RefineSwapLB.C.

Referenced by bbox3d::print(), and RefineSwapLB::work().

Here is the caller graph for this function:

bool refine ( ProcArray parr,
ObjGraph ogr,
std::vector< int > &  max_pe_heap,
std::vector< int > &  min_pe_heap,
std::vector< int > *  pe_obj,
int  max_pe,
double  avg_load,
double  threshold 
)

Definition at line 101 of file RefineSwapLB.C.

References addObjToProc(), allocated(), ProcArray::procs, removeObjFromProc(), size, sort(), and ObjGraph::vertices.

Referenced by CreateLBFunc_Def(), and RefineSwapLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

bool IsSwapPossWithPe ( ProcArray parr,
ObjGraph ogr,
std::vector< int > *  pe_obj,
std::vector< int > &  max_pe_heap,
std::vector< int > &  min_pe_heap,
int  max_pe,
int  pe_considered,
int  pe_cons_iter,
double  diff,
double  avg_load,
double  threshold 
)

Definition at line 162 of file RefineSwapLB.C.

References addObjToProc(), ProcArray::procs, removeObjFromProc(), size, and ObjGraph::vertices.

Referenced by refineSwap().

Here is the call graph for this function:

Here is the caller graph for this function:

bool refineSwap ( ProcArray parr,
ObjGraph ogr,
std::vector< int > &  max_pe_heap,
std::vector< int > &  min_pe_heap,
std::vector< int > *  pe_obj,
int  max_pe,
double  avg_load,
double  threshold 
)

Definition at line 218 of file RefineSwapLB.C.

References IsSwapPossWithPe(), ProcArray::procs, and sort().

Referenced by RefineSwapLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void CreateRefineSwapLB (  ) 

BaseLB* AllocateRefineSwapLB (  ) 

CreateLBFunc_Def ( ScotchLB  ,
"Load balancing using the Scotch graph partitioning library"   
)

Definition at line 20 of file ScotchLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void CreateScotchLB (  ) 

CreateLBFunc_Def ( ScotchRefineLB  ,
"Load balancing using the Scotch graph partitioning library"   
)

Definition at line 17 of file ScotchRefineLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void CreateScotchRefineLB (  ) 

CreateLBFunc_Def ( ScotchTopoLB  ,
"Load balancing using the Scotch graph partitioning library"   
)

Definition at line 21 of file ScotchTopoLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void CreateScotchTopoLB (  ) 

CreateLBFunc_Def ( TeamLB  ,
"Use Metis(tm) to partition object graph at two levels: team level and processor level  
)

Definition at line 17 of file TeamLB.C.

References _lb_args, Converse::CkMyPe(), Converse::CkNumPes(), quietModeRequested, CkLBArgs::teamSize(), and teamSize.

Here is the call graph for this function:

void CreateTeamLB (  ) 

BaseLB* AllocateTeamLB (  ) 

CreateLBFunc_Def ( TempAwareGreedyLB  ,
"always assign the heaviest obj onto lightest loaded processor."   
)

Definition at line 22 of file TempAwareGreedyLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void CreateTempAwareGreedyLB (  ) 

BaseLB* AllocateTempAwareGreedyLB (  ) 

CreateLBFunc_Def ( TempAwareRefineLB  ,
"always assign the heaviest obj onto lightest loaded processor."   
)

Definition at line 23 of file TempAwareRefineLB.C.

References Converse::CkMyPe(), and fd.

Here is the call graph for this function:

void printCurrentTemperature ( void *  LB,
double  curWallTime 
)

Definition at line 94 of file TempAwareRefineLB.C.

References Converse::CkMyPe(), cpufreq_sysfs_read(), and TempAwareRefineLB::getTemp().

Here is the call graph for this function:

int getProcFreqPtr ( int freqs,
int  numAvail,
int  freq 
)

Definition at line 103 of file TempAwareRefineLB.C.

int getTaskIdForMigration ( ObjGraph ogr,
int  pe,
int  start 
)

Definition at line 257 of file TempAwareRefineLB.C.

References CkExit(), and ObjGraph::vertices.

Here is the call graph for this function:

int getNumTasks ( ObjGraph ogr,
int  pe 
)

Definition at line 267 of file TempAwareRefineLB.C.

References c, and ObjGraph::vertices.

int getTaskIdForMigration ( ObjGraph ogr,
int  pe,
std::vector< int assTasks 
)

Definition at line 277 of file TempAwareRefineLB.C.

References ObjGraph::vertices.

bool saneFreqNormLds ( double *  loads,
int  numProcs 
)

Definition at line 306 of file TempAwareRefineLB.C.

References r.

void CreateTempAwareRefineLB (  ) 

BaseLB* AllocateTempAwareRefineLB (  ) 

CreateLBFunc_Def ( TreeMatchLB  ,
"TreeMatch load   balancer,
like a normal one but with empty strategy"   
)

Definition at line 15 of file TreeMatchLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

double* get_comm_speed ( int depth  ) 

Definition at line 32 of file TreeMatchLB.C.

References malloc().

Here is the call graph for this function:

tm_topology_t* build_abe_topology ( int  nb_procs  ) 

Definition at line 47 of file TreeMatchLB.C.

References build_synthetic_topology().

Referenced by TreeMatchLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void CreateTreeMatchLB (  ) 

CreateLBFunc_Def ( WSLB  ,
"Workstation load balancer"   
)

Definition at line 25 of file WSLB.C.

References WSLB::Migrated().

Here is the call graph for this function:

void CreateWSLB (  ) 

static int get_number_of_vertices ( void *  data,
int ierr 
) [static]

Definition at line 271 of file ZoltanLB.C.

References HGRAPH_DATA::numMyVertices.

Referenced by ZoltanLB::work().

Here is the caller graph for this function:

static void get_vertex_list ( void *  data,
int  sizeGID,
int  sizeLID,
ZOLTAN_ID_PTR  globalID,
ZOLTAN_ID_PTR  localID,
int  wgt_dim,
float obj_wgts,
int ierr 
) [static]

Definition at line 278 of file ZoltanLB.C.

References HGRAPH_DATA::numMyVertices, HGRAPH_DATA::vtxGID, and HGRAPH_DATA::vtxWgt.

Referenced by ZoltanLB::work().

Here is the caller graph for this function:

static void get_hypergraph_size ( void *  data,
int num_lists,
int num_nonzeroes,
int format,
int ierr 
) [static]

Definition at line 298 of file ZoltanLB.C.

References HGRAPH_DATA::numAllNbors, and HGRAPH_DATA::numMyHEdges.

Referenced by ZoltanLB::work().

Here is the caller graph for this function:

static void get_hypergraph ( void *  data,
int  sizeGID,
int  num_edges,
int  num_nonzeroes,
int  format,
ZOLTAN_ID_PTR  edgeGID,
int vtxPtr,
ZOLTAN_ID_PTR  vtxGID,
int ierr 
) [static]

Definition at line 316 of file ZoltanLB.C.

References HGRAPH_DATA::edgeGID, HGRAPH_DATA::nborGID, HGRAPH_DATA::nborIndex, HGRAPH_DATA::numAllNbors, and HGRAPH_DATA::numMyHEdges.

Referenced by ZoltanLB::work().

Here is the caller graph for this function:

static void get_hypergraph_edge_size ( void *  data,
int num_edges,
int ierr 
) [static]

Definition at line 343 of file ZoltanLB.C.

References HGRAPH_DATA::numMyHEdges.

Referenced by ZoltanLB::work().

Here is the caller graph for this function:

static void get_hypergraph_edge_wgts ( void *  data,
int  numGID,
int  numLID,
int  num_edges,
int  edge_weight_dim,
ZOLTAN_ID_PTR  edgeGID,
ZOLTAN_ID_PTR  edgeLID,
float edge_wgts,
int ierr 
) [static]

Definition at line 349 of file ZoltanLB.C.

References HGRAPH_DATA::edgeGID, and HGRAPH_DATA::edgWgt.

Referenced by ZoltanLB::work().

Here is the caller graph for this function:

CreateLBFunc_Def ( ZoltanLB  ,
"Use Zoltan(tm) to partition object graph  
)

Definition at line 59 of file ZoltanLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

void CreateZoltanLB (  ) 

BaseLB* AllocateZoltanLB (  ) 

template<int ppn>
virtual int LBTopo_smp_n< ppn >::max_neighbors (  )  [inline, virtual, inherited]

Implements LBTopology.

Definition at line 136 of file topology.C.

References LBTopology::npes.

template<int ppn>
virtual void LBTopo_smp_n< ppn >::neighbors ( int  mype,
int _n,
int nb 
) [inline, virtual, inherited]

Implements LBTopology.

Definition at line 138 of file topology.C.

References LBTopology::npes.

template<int ppn>
int LBTopo_smp_n< ppn >::get_hop_count ( int  src,
int  dest 
) [inline, virtual, inherited]

Reimplemented from LBTopology.

Definition at line 146 of file topology.C.

References PUP::a, and PUP::b.

LBTOPO_MACRO ( LBTopo_smp_n_1   ) 

Definition at line 174 of file topology.C.

References LBTopology::npes.

LBTOPO_MACRO ( LBTopo_torus2d   ) 

Definition at line 216 of file topology.C.

References int, LBTopology::npes, and width().

Here is the call graph for this function:

static int checkuniq ( int arr,
int  nb,
int  val 
) [static]

Definition at line 238 of file topology.C.

Referenced by LBTopo_mesh3d::neighbors(), LBTopo_torus3d::neighbors(), and LBTopo_torus2d::neighbors().

Here is the caller graph for this function:

LBTOPO_MACRO ( LBTopo_torus3d   ) 

Definition at line 394 of file topology.C.

References LBTopology::npes, and LBTopo_torus2d::width.

LBTOPO_MACRO ( LBTopo_mesh3d   ) 

Definition at line 498 of file topology.C.

References LBTopology::npes, and LBTopo_torus3d::width.

template<int dimension>
int LBTopo_torus_nd< dimension >::GetNeighborID ( int  ProcessorID,
int  number 
) [inline, private, inherited]

Definition at line 585 of file topology.C.

References LBTopology::get_processor_coordinates(), LBTopology::get_processor_id(), index, LBTopo_mesh3d::max_neighbors(), and LBTopology::npes.

Here is the call graph for this function:

template<int dimension>
LBTopo_torus_nd< dimension >::LBTopo_torus_nd ( int  p  )  [inline, inherited]

Definition at line 599 of file topology.C.

References int.

template<int dimension>
LBTopo_torus_nd< dimension >::~LBTopo_torus_nd (  )  [inline, inherited]

Definition at line 616 of file topology.C.

template<int dimension>
virtual int LBTopo_torus_nd< dimension >::max_neighbors (  )  [inline, virtual, inherited]

Implements LBTopology.

Definition at line 620 of file topology.C.

template<int dimension>
virtual void LBTopo_torus_nd< dimension >::neighbors ( int  mype,
int _n,
int nb 
) [inline, virtual, inherited]

Implements LBTopology.

Definition at line 623 of file topology.C.

template<int dimension>
virtual int LBTopo_torus_nd< dimension >::get_dimension (  )  [inline, virtual, inherited]

Reimplemented from LBTopology.

Definition at line 630 of file topology.C.

template<int dimension>
virtual bool LBTopo_torus_nd< dimension >::get_processor_coordinates ( int  processor_id,
int processor_coordinates 
) [inline, virtual, inherited]

Reimplemented from LBTopology.

Definition at line 633 of file topology.C.

template<int dimension>
virtual bool LBTopo_torus_nd< dimension >::get_processor_id ( const int processor_coordinates,
int processor_id 
) [inline, virtual, inherited]

Reimplemented from LBTopology.

Definition at line 642 of file topology.C.

template<int dimension>
virtual bool LBTopo_torus_nd< dimension >::coordinate_difference ( const int my_coordinates,
const int target_coordinates,
int difference 
) [inline, virtual, inherited]

Reimplemented from LBTopology.

Definition at line 655 of file topology.C.

References abs().

Here is the call graph for this function:

template<int dimension>
virtual bool LBTopo_torus_nd< dimension >::coordinate_difference ( int  my_processor_id,
int  target_processor_id,
int difference 
) [inline, virtual, inherited]

Reimplemented from LBTopology.

Definition at line 674 of file topology.C.

References LBTopology::coordinate_difference(), and LBTopology::get_processor_coordinates().

Here is the call graph for this function:

LBTOPO_MACRO ( LBTopo_torus_nd_1   ) 

LBTOPO_MACRO ( LBTopo_torus_nd_smp_1   ) 

LBTOPO_MACRO ( LBTopo_itorus_nd_1   ) 

LBTOPO_MACRO ( LBTopo_imesh_nd_1   ) 

Definition at line 1109 of file topology.C.

void gengraph ( int  ,
int  ,
int  ,
int ,
int ,
int   
)

template<int dimension>
int LBTopo_graph_nc< dimension >::max_neighbors (  )  [inline, virtual, inherited]

Implements LBTopology.

Definition at line 1140 of file topology.C.

template<int dimension>
void LBTopo_graph_nc< dimension >::neighbors ( int  mype,
int na,
int nb 
) [inline, virtual, inherited]

Implements LBTopology.

Definition at line 1145 of file topology.C.

References gengraph().

Here is the call graph for this function:

LBTOPO_MACRO ( LBTopo_graph_nc_2   ) 

Definition at line 1166 of file topology.C.

References LBTopology::LBTopology(), LBTopo_graph::max_neighbors(), LBTopo_graph::neighbors(), LBTopology::npes, and p.

Here is the call graph for this function:

LBTOPO_MACRO ( LBTopo_complete   ) 

Definition at line 1196 of file topology.C.

References LBTopology::LBTopology(), LBTopo_graph::max_neighbors(), LBTopo_graph::neighbors(), LBTopology::npes, and p.

Here is the call graph for this function:

LBTOPO_MACRO ( LBTopo_2_arytree   ) 

Definition at line 1222 of file topology.C.

References name, p, and PUP::s.

LBTopoVec::LBTopoVec (  )  [inline, inherited]

Definition at line 1242 of file topology.C.

LBTopoVec::~LBTopoVec (  )  [inline, inherited]

Definition at line 1311 of file topology.C.

void LBTopoVec::push_back ( LBTopoMap *  map  )  [inline, inherited]

Definition at line 1315 of file topology.C.

int LBTopoVec::length (  )  [inline, inherited]

Definition at line 1316 of file topology.C.

Referenced by LBTopoLookup().

Here is the caller graph for this function:

LBTopoMap* LBTopoVec::operator[] ( size_t  n  )  [inline, inherited]

Definition at line 1317 of file topology.C.

void LBTopoVec::print (  )  [inline, inherited]

Definition at line 1318 of file topology.C.

References CmiPrintf().

Referenced by printoutTopo().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBTopoInit (  ) 

Definition at line 1329 of file topology.C.

References CmiCreateLock(), lbTopoInitialized, and lbTopoMapInitLock.

Referenced by _initCharm().

Here is the call graph for this function:

Here is the caller graph for this function:

LBtopoFn LBTopoLookup ( const char *  name  ) 

Definition at line 1336 of file topology.C.

References CmiLock(), CmiUnlock(), lbTopoMapInitLock, and LBTopoVec::length().

Referenced by CldComputeNeighborData(), NborBaseLB::NborBaseLB(), NeighborCommLB::Strategy(), TopologyAgent::TopologyAgent(), TopoLB::work(), TopoCentLB::work(), RefineTopoLB::work(), and WSLB::WSLB().

Here is the call graph for this function:

Here is the caller graph for this function:

void getTopoNeighbors ( void *  topo,
int  myid,
int narray,
int n 
)

Definition at line 1352 of file topology.C.

Referenced by CldComputeNeighborData().

Here is the caller graph for this function:

int getTopoMaxNeighbors ( void *  topo  ) 

Definition at line 1357 of file topology.C.

Referenced by CldComputeNeighborData().

Here is the caller graph for this function:

void printoutTopo (  ) 

Definition at line 1362 of file topology.C.

References LBTopoVec::print().

Referenced by CldComputeNeighborData(), NeighborCommLB::Strategy(), TopologyAgent::TopologyAgent(), TopoLB::work(), TopoCentLB::work(), and RefineTopoLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

LBTopology::LBTopology ( int  p  )  [inline, inherited]

Definition at line 19 of file topology.h.

Referenced by LBTOPO_MACRO().

Here is the caller graph for this function:

virtual LBTopology::~LBTopology (  )  [inline, virtual, inherited]

Definition at line 20 of file topology.h.

virtual int LBTopology::max_neighbors (  )  [pure virtual, inherited]

virtual void LBTopology::neighbors ( int  mype,
int _n,
int nb 
) [pure virtual, inherited]

virtual int LBTopology::get_dimension (  )  [inline, virtual, inherited]

Reimplemented in LBTopo_torus_nd< dimension >.

Definition at line 24 of file topology.h.

Referenced by LBTOPO_MACRO(), and NeighborCommLB::Strategy().

Here is the caller graph for this function:

virtual bool LBTopology::get_processor_coordinates ( int  processor_id,
int processor_coordinates 
) [inline, virtual, inherited]

Reimplemented in LBTopo_torus_nd< dimension >.

Definition at line 25 of file topology.h.

Referenced by LBTopo_torus_nd< dimension >::coordinate_difference(), LBTopo_torus_nd< dimension >::GetNeighborID(), LBTOPO_MACRO(), and NeighborCommLB::Strategy().

Here is the caller graph for this function:

virtual bool LBTopology::get_processor_id ( const int processor_coordinates,
int processor_id 
) [inline, virtual, inherited]

Reimplemented in LBTopo_torus_nd< dimension >.

Definition at line 26 of file topology.h.

Referenced by LBTopo_torus_nd< dimension >::GetNeighborID(), and LBTOPO_MACRO().

Here is the caller graph for this function:

virtual bool LBTopology::coordinate_difference ( const int my_coordinates,
const int target_coordinates,
int difference 
) [inline, virtual, inherited]

Reimplemented in LBTopo_torus_nd< dimension >.

Definition at line 27 of file topology.h.

Referenced by LBTopo_torus_nd< dimension >::coordinate_difference(), LBTOPO_MACRO(), and NeighborCommLB::Strategy().

Here is the caller graph for this function:

virtual bool LBTopology::coordinate_difference ( int  my_processor_id,
int  target_processor_id,
int difference 
) [inline, virtual, inherited]

Reimplemented in LBTopo_torus_nd< dimension >.

Definition at line 28 of file topology.h.

int LBTopology::get_hop_count ( int  src,
int  dest 
) [virtual, inherited]

Reimplemented in LBTopo_smp_n< ppn >, LBTopo_ring, and LBTopo_torus2d.

Definition at line 15 of file topology.C.

References count, LBTopology::max_neighbors(), LBTopology::npes, and LBTopology::rec_hop_count().

Referenced by TopologyAgent::my_preferred_procs().

Here is the call graph for this function:

Here is the caller graph for this function:

int LBTopology::rec_hop_count ( int  src,
int  dest,
int  max_neigh,
int  count,
int visited_srcs,
int  min_hop_cnt 
) [virtual, inherited]

Definition at line 32 of file topology.C.

References LBTopology::neighbors().

Referenced by LBTopology::get_hop_count().

Here is the call graph for this function:

Here is the caller graph for this function:

double LBTopology::per_hop_delay ( int  last_hop  )  [virtual, inherited]

Definition at line 73 of file topology.C.

void LBTopology::get_pairwise_hop_count ( double **  dist  )  [virtual, inherited]

Definition at line 81 of file topology.C.

References PUP::d, index, LBTopology::max_neighbors(), LBTopology::neighbors(), and LBTopology::npes.

Referenced by TopoCentLB::calculateMST(), and TopoLB::initDataStructures().

Here is the call graph for this function:

Here is the caller graph for this function:

virtual int LBTopo_ring::max_neighbors (  )  [virtual, inherited]

Implements LBTopology.

void LBTopo_ring::neighbors ( int  mype,
int _n,
int nb 
) [virtual, inherited]

Implements LBTopology.

Definition at line 196 of file topology.C.

References LBTopology::npes.

int LBTopo_ring::get_hop_count ( int  src,
int  dest 
) [virtual, inherited]

Reimplemented from LBTopology.

Definition at line 203 of file topology.C.

References LBTopology::npes.

int LBTopo_torus2d::goodcoor ( int  x,
int  y 
) [private, inherited]

Definition at line 229 of file topology.C.

References LBTopo_torus2d::width.

Referenced by LBTopo_torus2d::neighbors().

Here is the caller graph for this function:

LBTopo_torus2d::LBTopo_torus2d ( int  p  )  [inherited]

int LBTopo_torus2d::max_neighbors (  )  [virtual, inherited]

Implements LBTopology.

Definition at line 224 of file topology.C.

void LBTopo_torus2d::neighbors ( int  mype,
int _n,
int nb 
) [virtual, inherited]

Implements LBTopology.

Definition at line 243 of file topology.C.

References checkuniq(), LBTopo_torus2d::goodcoor(), LBTopo_torus2d::width, and x.

Here is the call graph for this function:

int LBTopo_torus2d::get_hop_count ( int  src,
int  dest 
) [virtual, inherited]

Reimplemented from LBTopology.

Definition at line 272 of file topology.C.

References LBTopology::npes, and LBTopo_torus2d::width.

int LBTopo_torus3d::goodcoor ( int  x,
int  y,
int  z 
) [private, inherited]

Definition at line 408 of file topology.C.

References LBTopo_torus3d::width.

Referenced by LBTopo_torus3d::neighbors().

Here is the caller graph for this function:

LBTopo_torus3d::LBTopo_torus3d ( int  p  )  [inherited]

int LBTopo_torus3d::max_neighbors (  )  [virtual, inherited]

Implements LBTopology.

Definition at line 403 of file topology.C.

void LBTopo_torus3d::neighbors ( int  mype,
int _n,
int nb 
) [virtual, inherited]

Implements LBTopology.

Definition at line 418 of file topology.C.

References checkuniq(), LBTopo_torus3d::goodcoor(), LBTopo_torus3d::width, and x.

Here is the call graph for this function:

int LBTopo_mesh3d::goodcoor ( int  x,
int  y,
int  z 
) [private, inherited]

Definition at line 512 of file topology.C.

References LBTopo_mesh3d::width.

Referenced by LBTopo_mesh3d::neighbors().

Here is the caller graph for this function:

LBTopo_mesh3d::LBTopo_mesh3d ( int  p  )  [inherited]

int LBTopo_mesh3d::max_neighbors (  )  [virtual, inherited]

Implements LBTopology.

Definition at line 507 of file topology.C.

Referenced by LBTopo_torus_nd< dimension >::GetNeighborID(), and LBTOPO_MACRO().

Here is the caller graph for this function:

void LBTopo_mesh3d::neighbors ( int  mype,
int _n,
int nb 
) [virtual, inherited]

Implements LBTopology.

Definition at line 522 of file topology.C.

References checkuniq(), LBTopo_mesh3d::goodcoor(), LBTopo_mesh3d::width, and x.

Referenced by LBTOPO_MACRO().

Here is the call graph for this function:

Here is the caller graph for this function:

virtual int LBTopo_graph::max_neighbors (  )  [virtual, inherited]

Implements LBTopology.

Referenced by LBTOPO_MACRO().

Here is the caller graph for this function:

void LBTopo_graph::neighbors ( int  mype,
int _n,
int nb 
) [virtual, inherited]

Implements LBTopology.

Definition at line 1129 of file topology.C.

References gengraph().

Referenced by LBTOPO_MACRO().

Here is the call graph for this function:

Here is the caller graph for this function:

void AdaptiveLB::work ( LDStats *  stats  )  [protected, virtual, inherited]

the object load is normalized to an integer between 0 and 256

Definition at line 71 of file AdaptiveLB.C.

References alpha, beta, AdaptiveLB::commRefineLB, MetaBalancer::GetLBDataForLB(), MetaBalancer::GetPrevLBData(), AdaptiveLB::greedyLB, AdaptiveLB::metabalancer, AdaptiveLB::metisLB, AdaptiveLB::refineLB, ObjGraph::vertices, and CentralLB::work().

Here is the call graph for this function:

void BaseLB::initLB ( const CkLBOptions opt  )  [private, inherited]

Definition at line 12 of file BaseLB.C.

References _lbdb, LBDatabase::addLoadbalancer(), CkLBOptions::getSeqNo(), BaseLB::lbname, BaseLB::seqno, and BaseLB::theLbdb.

Referenced by BaseLB::BaseLB(), and BaseLB::pup().

Here is the call graph for this function:

Here is the caller graph for this function:

BaseLB::~BaseLB (  )  [virtual, inherited]

Definition at line 25 of file BaseLB.C.

void BaseLB::unregister (  )  [inherited]

Definition at line 29 of file BaseLB.C.

References LBDatabase::RemoveLocalBarrierReceiver(), and BaseLB::theLbdb.

Here is the call graph for this function:

void BaseLB::pup ( PUP::er p  )  [virtual, inherited]

Definition at line 34 of file BaseLB.C.

References Converse::CkMyPe(), LBDatabase::getLoadbalancerTicket(), BaseLB::initLB(), PUP::er::isUnpacking(), LBDatabaseObj(), and BaseLB::seqno.

Here is the call graph for this function:

void BaseLB::flushStates (  )  [virtual, inherited]

Definition at line 48 of file BaseLB.C.

References LBDatabase::ClearLoads(), Group::flushStates(), and BaseLB::theLbdb.

Here is the call graph for this function:

BaseLB::LDStats::LDStats ( int  c = 0,
int  complete_flag = 1 
) [inherited]

Definition at line 69 of file BaseLB.C.

References Converse::CkNumPes(), BaseLB::LDStats::count, and BaseLB::LDStats::procs.

Here is the call graph for this function:

void BaseLB::LDStats::makeCommHash (  )  [inherited]

void BaseLB::LDStats::deleteCommHash (  )  [inherited]

Definition at line 170 of file BaseLB.C.

References BaseLB::LDStats::commData, BaseLB::LDStats::n_comm, and BaseLB::LDStats::objHash.

Referenced by BaseLB::LDStats::clear().

Here is the caller graph for this function:

int BaseLB::LDStats::getHash ( const CmiUInt8 oid,
const LDOMid mid 
) [inherited]

Definition at line 178 of file BaseLB.C.

References BaseLB::LDStats::hashSize, index, LDOMidEqual(), BaseLB::LDStats::objData, BaseLB::LDStats::objHash, and ObjKey().

Here is the call graph for this function:

int BaseLB::LDStats::getHash ( const LDObjKey objKey  )  [inherited]

given an LDObjKey, returns the index in the objData vector this index changes every time one does load balancing even within a run

Definition at line 196 of file BaseLB.C.

References _LDObjKey::objID(), and _LDObjKey::omID().

Referenced by BaseLB::LDStats::computeNonlocalComm(), LBInfo::getInfo(), getPredictedLoadWithMsg(), BaseLB::LDStats::getRecvHash(), BaseLB::LDStats::getSendHash(), MulticastAgent::MulticastAgent(), ObjGraph::ObjGraph(), and TreeMatchLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

int BaseLB::LDStats::getSendHash ( LDCommData cData  )  [inherited]

Definition at line 203 of file BaseLB.C.

References BaseLB::LDStats::getHash(), _LDCommData::sender, and _LDCommData::sendHash.

Here is the call graph for this function:

int BaseLB::LDStats::getRecvHash ( LDCommData cData  )  [inherited]

Definition at line 211 of file BaseLB.C.

References _LDCommDesc::get_destObj(), BaseLB::LDStats::getHash(), _LDCommData::receiver, and _LDCommData::recvHash.

Here is the call graph for this function:

void BaseLB::LDStats::clearCommHash (  )  [inherited]

Definition at line 219 of file BaseLB.C.

References BaseLB::LDStats::commData, and BaseLB::LDStats::n_comm.

void BaseLB::LDStats::computeNonlocalComm ( int nmsgs,
int nbytes 
) [inherited]

void BaseLB::LDStats::normalize_speed (  )  [inherited]

Definition at line 296 of file BaseLB.C.

References BaseLB::LDStats::nprocs(), BaseLB::ProcStats::pe_speed, and BaseLB::LDStats::procs.

Here is the call graph for this function:

void BaseLB::LDStats::print (  )  [inherited]

double BaseLB::LDStats::computeAverageLoad (  )  [inherited]

Definition at line 365 of file BaseLB.C.

References BaseLB::ProcStats::bg_walltime, BaseLB::LDStats::n_objs, BaseLB::LDStats::nprocs(), BaseLB::LDStats::objData, and BaseLB::LDStats::procs.

Here is the call graph for this function:

void BaseLB::LDStats::removeObject ( int  obj  )  [inherited]

void BaseLB::LDStats::pup ( PUP::er p  )  [inherited]

int BaseLB::LDStats::useMem (  )  [inherited]

Definition at line 450 of file BaseLB.C.

References BaseLB::LDStats::n_comm, BaseLB::LDStats::n_objs, and BaseLB::LDStats::nprocs().

Here is the call graph for this function:

void CentralLB::staticMigrated ( void *  me,
LDObjHandle  h,
int  waitBarrier = 1 
) [static, inherited]

Definition at line 76 of file CentralLB.C.

References CentralLB::Migrated().

Referenced by CentralLB::initLB().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::staticAtSync ( void *  data  )  [static, inherited]

Definition at line 82 of file CentralLB.C.

References CentralLB::AtSync().

Referenced by CentralLB::initLB().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::initLB ( const CkLBOptions opt  )  [private, inherited]

CentralLB::~CentralLB (  )  [virtual, inherited]

Definition at line 144 of file CentralLB.C.

References _lbdb, CentralLB::staticStartLB(), CentralLB::statsData, and CentralLB::statsMsgsList.

Here is the call graph for this function:

void CentralLB::turnOn (  )  [inherited]

Definition at line 159 of file CentralLB.C.

void CentralLB::turnOff (  )  [inherited]

Definition at line 171 of file CentralLB.C.

Referenced by CentralLB::initLB().

Here is the caller graph for this function:

void CentralLB::SetPESpeed ( int  speed  )  [inherited]

Definition at line 183 of file CentralLB.C.

References CentralLB::myspeed.

int CentralLB::GetPESpeed (  )  [inherited]

Definition at line 188 of file CentralLB.C.

References CentralLB::myspeed.

void CentralLB::AtSync ( void   )  [inherited]

Definition at line 193 of file CentralLB.C.

References Converse::CkMyPe(), Converse::CkNumPes(), CkSetInLdb(), CentralLB::MigrationDone(), and CentralLB::QueryBalanceNow().

Referenced by CentralLB::staticAtSync().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::ProcessAtSync ( void   )  [inherited]

float CentralLB::getTemp ( int  cpu  )  [inherited]

Definition at line 307 of file CentralLB.C.

Referenced by CentralLB::BuildStatsMsg().

Here is the caller graph for this function:

void CentralLB::ReceiveCounts ( int counts,
int  n 
) [inherited]

Definition at line 328 of file CentralLB.C.

References cb, Converse::CkMyPe(), CentralLB::concurrent, CentralLB::SendStats(), and CentralLB::statsData.

Referenced by CentralLB::ProcessAtSync().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::BuildStatsMsg (  )  [private, inherited]

void CentralLB::SendStats (  )  [inherited]

Definition at line 412 of file CentralLB.C.

References Converse::CkMyPe(), Converse::CkNumPes(), CmiMyPe(), CentralLB::cur_ld_balancer, h, _LDOMid::id, LDOMHandle::id, _ckGroupID::idx, CentralLB::reduction_started, and CentralLB::statsMsg.

Referenced by CentralLB::ProcessAtSync(), and CentralLB::ReceiveCounts().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::Migrated ( int  waitBarrier = 1  )  [inherited]

void CentralLB::MissMigrate ( int  waitForBarrier  )  [inherited]

Definition at line 478 of file CentralLB.C.

References CentralLB::Migrated().

Here is the call graph for this function:

void CentralLB::buildStats (  )  [private, inherited]

Definition at line 485 of file CentralLB.C.

References Converse::CkNumPes(), CLBStatsMsg::commData, LDObjData::migratable, msg, CLBStatsMsg::n_comm, CLBStatsMsg::n_objs, CLBStatsMsg::objData, CentralLB::stats_msg_count, CentralLB::statsData, and CentralLB::statsMsgsList.

Referenced by CentralLB::LoadBalance().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::depositData ( CLBStatsMsg m  )  [inherited]

void CentralLB::ReceiveStatsFromRoot ( CkMarshalledCLBStatsMessage &&  msg  )  [inherited]

Definition at line 566 of file CentralLB.C.

References Converse::CkMyPe(), CentralLB::cur_ld_balancer, msg, and CentralLB::ReceiveStats().

Here is the call graph for this function:

void CentralLB::ReceiveStats ( CkMarshalledCLBStatsMessage &&  msg  )  [inherited]

void CentralLB::ReceiveStatsViaTree ( CkMarshalledCLBStatsMessage &&  msg  )  [inherited]

added by Abhinav for receiving msgs via spanning tree

Definition at line 671 of file CentralLB.C.

References CkMarshalledCLBStatsMessage::add(), CentralLB::bufMsg, Converse::CkMyPe(), CentralLB::count_msgs, CkMarshalledCLBStatsMessage::free(), msg, SpanningTree::numChildren, SpanningTree::parent, and CentralLB::st.

Here is the call graph for this function:

void CentralLB::LoadBalance ( void   )  [inherited]

void CentralLB::ApplyDecision ( void   )  [inherited]

void CentralLB::t_LoadBalance ( void   )  [inherited]

Definition at line 834 of file CentralLB.C.

References CentralLB::LoadBalance().

Here is the call graph for this function:

void CentralLB::InitiateScatter ( LBMigrateMsg msg  )  [inherited]

void CentralLB::ScatterMigrationResults ( LBScatterMsg msg  )  [inherited]

Definition at line 891 of file CentralLB.C.

References Converse::CkMyPe(), LBScatterMsg::firstPeInSpan, MigrateDecision::fromPe, LBScatterMsg::lastPeInSpan, LBScatterMsg::moves, LBScatterMsg::numMigrates, LBScatterMsg::numMigratesPerPe, envelope::shrinkUsersize(), and UsrToEnv().

Referenced by CentralLB::InitiateScatter().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::removeNonMigratable ( LDStats *  statsDataList,
int  count 
) [protected, inherited]

void CentralLB::ReceiveMigration ( LBScatterMsg m  )  [inherited]

void CentralLB::ReceiveMigration ( LBMigrateMsg m  )  [inherited]

void CentralLB::ProcessMigrationDecision (  )  [inherited]

void CentralLB::ProcessReceiveMigration (  )  [inherited]

void CentralLB::ReceiveDummyMigration ( int  _step  )  [inherited]

Definition at line 1260 of file CentralLB.C.

References Converse::CkMyPe().

Referenced by _recvGlobalStepHandler(), _recvRestartCheckpointHandler(), _sendDetsReplyHandler(), and _updateHomeAckHandler().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::CheckForRealloc (  )  [inherited]

void CentralLB::ResumeFromReallocCheckpoint (  )  [inherited]

Definition at line 1289 of file CentralLB.C.

References Converse::CkNumPes(), free(), numProcessAfterRestart, and se_avail_vector.

Here is the call graph for this function:

void CentralLB::WillIbekilled ( std::vector< char >  avail,
int  newnumProcessAfterRestart 
) [inherited]

Definition at line 1310 of file CentralLB.C.

References cb, Converse::CkMyPe(), GetNewPeNumber(), mynewpe, numProcessAfterRestart, and willContinue.

Here is the call graph for this function:

void CentralLB::StartCleanup (  )  [inherited]

Definition at line 1320 of file CentralLB.C.

References CkCleanup().

Here is the call graph for this function:

void CentralLB::MigrationDone ( int  balancing  )  [inherited]

Definition at line 1325 of file CentralLB.C.

References cb, and CentralLB::MigrationDoneImpl().

Referenced by CentralLB::AtSync(), CentralLB::Migrated(), CentralLB::ProcessMigrationDecision(), and CentralLB::ProcessReceiveMigration().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::MigrationDoneImpl ( int  balancing  )  [inherited]

void CentralLB::endMigrationDone ( int  balancing  )  [inherited]

Definition at line 1380 of file CentralLB.C.

References _lb_args, Converse::CkMyPe(), CentralLB::ResumeClients(), and CkLBArgs::syncResume().

Referenced by resumeCentralLbAfterChkpt().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::ResumeClients ( void   )  [inherited]

Definition at line 1411 of file CentralLB.C.

Referenced by CentralLB::endMigrationDone(), and CentralLB::MigrationDoneImpl().

Here is the caller graph for this function:

void CentralLB::ResumeClients ( int  balancing  )  [inherited]

void CentralLB::CheckMigrationComplete (  )  [inherited]

void CentralLB::removeCommDataOfDeletedObjs ( LDStats *  stats  )  [inherited]

Definition at line 1478 of file CentralLB.C.

References _LDCommDesc::dest, _LDCommDesc::destObjs, _LDCommData::from_proc(), _LDCommDesc::get_destObjs(), _LDCommDesc::get_type(), idx, _LDCommData::receiver, and CkVec< T >::resize().

Referenced by CentralLB::LoadBalance().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::preprocess ( LDStats *  stats  )  [inherited]

Definition at line 1525 of file CentralLB.C.

References _lb_args, _lb_predict, CentralLB::FuturePredictor(), CkLBArgs::ignoreBgLoad(), and CentralLB::statsData.

Referenced by CentralLB::LoadBalance(), and CentralLB::simulationRead().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::printStrategyStats ( LBMigrateMsg msg  )  [private, inherited]

Definition at line 1534 of file CentralLB.C.

References Converse::CkMyPe(), envelope::getTotalsize(), LBMigrateMsg::n_moves, LBDatabase::Object(), CentralLB::strat_start_time, CentralLB::useMem(), LBDatabase::useMem(), and UsrToEnv().

Referenced by CentralLB::ApplyDecision(), and CentralLB::Strategy().

Here is the call graph for this function:

Here is the caller graph for this function:

LBMigrateMsg * CentralLB::Strategy ( LDStats *  stats  )  [virtual, inherited]

void CentralLB::changeFreq ( int  n  )  [virtual, inherited]

Definition at line 1597 of file CentralLB.C.

References Converse::CkMyPe(), CmiAbort(), cpufreq_sysfs_write(), and CentralLB::physicalCoresPerNode.

Here is the call graph for this function:

void CentralLB::work ( LDStats *  stats  )  [virtual, inherited]

Definition at line 1617 of file CentralLB.C.

Referenced by CentralLB::Strategy(), PhasebyArrayLB::work(), NodeLevelLB::work(), HybridLB::work(), and AdaptiveLB::work().

Here is the caller graph for this function:

LBMigrateMsg * CentralLB::createMigrateMsg ( LDStats *  stats  )  [virtual, inherited]

LBMigrateMsg * CentralLB::extractMigrateMsg ( LBMigrateMsg m,
int  p 
) [virtual, inherited]

Definition at line 1656 of file CentralLB.C.

References LBMigrateMsg::avail_vector, Converse::CkNumPes(), LBMigrateMsg::expectedLoad, MigrateInfo::from_pe, LBMigrateMsg::level, LBMigrateMsg::moves, msg, LBMigrateMsg::n_moves, LBMigrateMsg::next_lb, and MigrateInfo::to_pe.

Referenced by CentralLB::ApplyDecision().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::simulationWrite (  )  [protected, inherited]

Definition at line 1690 of file CentralLB.C.

References CkExit(), CmiPrintf(), LBSimulation::dumpFile, LBSimulation::dumpStep, LBSimulation::dumpStepSize, free(), malloc(), and CentralLB::writeStatsMsgs().

Referenced by CentralLB::ApplyDecision().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::simulationRead (  )  [protected, inherited]

void CentralLB::readStatsMsgs ( const char *  filename  )  [inherited]

Definition at line 1781 of file CentralLB.C.

References _lb_args, CmiAbort(), CmiPrintf(), CkLBArgs::lbversion(), p, LBSimulation::procsChanged, LBSimulation::simProcs, CentralLB::stats_msg_count, CentralLB::statsData, and CentralLB::statsMsgsList.

Referenced by CentralLB::simulationRead().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::writeStatsMsgs ( const char *  filename  )  [inherited]

Definition at line 1829 of file CentralLB.C.

References _lb_args, CmiAbort(), CmiPrintf(), PUP::machineInfo::current(), CkLBArgs::lbversion(), p, CentralLB::stats_msg_count, and CentralLB::statsData.

Referenced by CentralLB::simulationWrite().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::findSimResults ( LDStats *  stats,
int  count,
LBMigrateMsg msg,
LBSimulation simResults 
) [protected, inherited]

Definition at line 1874 of file CentralLB.C.

References CmiPrintf(), getPredictedLoadWithMsg(), LBSimulation::lbinfo, LBSimulation::numPes, and startT.

Referenced by CentralLB::simulationRead().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::pup ( PUP::er p  )  [inherited]

int CentralLB::useMem (  )  [inherited]

Definition at line 1904 of file CentralLB.C.

References Converse::CkNumPes(), and CentralLB::statsData.

Referenced by CentralLB::ApplyDecision(), CentralLB::printStrategyStats(), and CentralLB::simulationRead().

Here is the call graph for this function:

Here is the caller graph for this function:

CLBStatsMsg::CLBStatsMsg ( int  osz,
int  csz 
) [inherited]

CLBStatsMsg is not a real message now.

CLBStatsMsg is used for all processors to fill in their local load and comm statistics and send to processor 0

Definition at line 1916 of file CentralLB.C.

References CLBStatsMsg::avail_vector, CLBStatsMsg::commData, CLBStatsMsg::n_comm, CLBStatsMsg::n_objs, and CLBStatsMsg::objData.

CLBStatsMsg::~CLBStatsMsg (  )  [inherited]

void CLBStatsMsg::pup ( PUP::er p  )  [inherited]

void CkMarshalledCLBStatsMessage::free (  )  [inherited]

Definition at line 1971 of file CentralLB.C.

References count, and CkMarshalledCLBStatsMessage::msgs.

Referenced by CentralLB::ReceiveStatsViaTree(), and CkMarshalledCLBStatsMessage::~CkMarshalledCLBStatsMessage().

Here is the caller graph for this function:

void CkMarshalledCLBStatsMessage::add ( CkMarshalledCLBStatsMessage &&  msg  )  [inherited]

Definition at line 1980 of file CentralLB.C.

References count, and PUP::m.

void CkMarshalledCLBStatsMessage::pup ( PUP::er p  )  [inherited]

Definition at line 1986 of file CentralLB.C.

References count, PUP::er::isUnpacking(), msg, CkMarshalledCLBStatsMessage::msgs, and CLBStatsMsg::pup().

Here is the call graph for this function:

SpanningTree::SpanningTree (  )  [inherited]

Definition at line 2001 of file CentralLB.C.

References SpanningTree::arity, SpanningTree::calcNumChildren(), SpanningTree::calcParent(), Converse::CkMyPe(), Converse::CkNumPes(), and int.

Here is the call graph for this function:

void SpanningTree::calcParent ( int  n  )  [inherited]

Definition at line 2009 of file CentralLB.C.

References SpanningTree::arity, and SpanningTree::parent.

Referenced by SpanningTree::SpanningTree().

Here is the caller graph for this function:

void SpanningTree::calcNumChildren ( int  n  )  [inherited]

Definition at line 2016 of file CentralLB.C.

References SpanningTree::arity, Converse::CkNumPes(), and SpanningTree::numChildren.

Referenced by SpanningTree::SpanningTree().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::staticPredictorOn ( void *  data,
void *  model 
) [static, inherited]

Definition at line 10 of file CentralPredictor.C.

References CentralLB::predictorOn().

Referenced by CentralLB::initLB().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::staticPredictorOnWin ( void *  data,
void *  model,
int  wind 
) [static, inherited]

Definition at line 16 of file CentralPredictor.C.

References CentralLB::predictorOn().

Referenced by CentralLB::initLB().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::staticPredictorOff ( void *  data  )  [static, inherited]

Definition at line 22 of file CentralPredictor.C.

References CentralLB::predictorOff().

Referenced by CentralLB::initLB().

Here is the call graph for this function:

Here is the caller graph for this function:

void CentralLB::staticChangePredictor ( void *  data,
void *  model 
) [static, inherited]

Definition at line 28 of file CentralPredictor.C.

References CentralLB::changePredictor().

Referenced by CentralLB::initLB().

Here is the call graph for this function:

Here is the caller graph for this function:

ProcArray::ProcArray ( BaseLB::LDStats stats  )  [inherited]

Definition at line 16 of file ckgraph.C.

References ProcArray::avgLoad, BaseLB::LDStats::nprocs(), BaseLB::LDStats::procs, and ProcArray::procs.

Here is the call graph for this function:

void ProcArray::resetTotalLoad (  )  [inherited]

Definition at line 35 of file ckgraph.C.

References ProcArray::procs.

Referenced by TreeMatchLB::work(), TempAwareGreedyLB::work(), RecBipartLB::work(), and GraphBFTLB::work().

Here is the caller graph for this function:

ObjGraph::ObjGraph ( BaseLB::LDStats stats  )  [inherited]

void ObjGraph::convertDecisions ( BaseLB::LDStats stats  )  [inherited]

void ProcArrayTemp::convertToInsts ( BaseLB::LDStats stats  )  [inherited]

Definition at line 17 of file ckgraphTemp.C.

References ProcArray::avgLoad, BaseLB::LDStats::nprocs(), ProcArrayTemp::procFreq, and ProcArray::procs.

Referenced by TempAwareCommLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void ObjGraphTemp::convertToInsts ( BaseLB::LDStats stats  )  [inherited]

Definition at line 32 of file ckgraphTemp.C.

References BaseLB::LDStats::n_objs, ObjGraphTemp::procFreq, and ObjGraph::vertices.

Referenced by TempAwareCommLB::work().

Here is the caller graph for this function:

minHeap::minHeap ( int  size  )  [inherited]

Definition at line 14 of file ckheap.C.

References minHeap::count, minHeap::h, and minHeap::size.

minHeap::~minHeap (  )  [inherited]

Definition at line 21 of file ckheap.C.

References minHeap::h.

int minHeap::insert ( InfoRecord x  )  [inherited]

InfoRecord * minHeap::deleteMin (  )  [inherited]

InfoRecord * minHeap::iterator ( heapIterator iter  )  [inherited]

Definition at line 92 of file ckheap.C.

References minHeap::count, minHeap::h, heapRecord::info, and heapIterator::next.

InfoRecord * minHeap::next ( heapIterator iter  )  [inherited]

Definition at line 98 of file ckheap.C.

References minHeap::count, minHeap::h, heapRecord::info, and heapIterator::next.

int minHeap::least ( int  a,
int  b,
int  c 
) [private, inherited]

Definition at line 105 of file ckheap.C.

References minHeap::h, heapRecord::info, info, and InfoRecord::load.

Referenced by minHeap::update().

Here is the caller graph for this function:

void minHeap::update ( InfoRecord x  )  [inherited]

Definition at line 119 of file ckheap.C.

References CmiAbort(), minHeap::h, index, info, and minHeap::numElements().

Referenced by minHeap::update(), and GreedyCommLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void minHeap::update ( int  index  )  [private, inherited]

Definition at line 131 of file ckheap.C.

References minHeap::h, info, heapRecord::info, minHeap::least(), InfoRecord::load, minHeap::numElements(), parent(), minHeap::swap(), and minHeap::update().

Here is the call graph for this function:

maxHeap::maxHeap ( int  size  )  [inherited]

Definition at line 160 of file ckheap.C.

References maxHeap::count, maxHeap::h, and maxHeap::size.

maxHeap::~maxHeap (  )  [inherited]

Definition at line 167 of file ckheap.C.

References maxHeap::h.

int maxHeap::numElements (  )  [inherited]

Definition at line 172 of file ckheap.C.

References maxHeap::count.

Referenced by NeighborCommLB::Strategy().

Here is the caller graph for this function:

int maxHeap::insert ( InfoRecord x  )  [inherited]

InfoRecord * maxHeap::deleteMax (  )  [inherited]

InfoRecord * maxHeap::iterator ( heapIterator iter  )  [inherited]

Definition at line 243 of file ckheap.C.

References maxHeap::count, maxHeap::h, heapRecord::info, and heapIterator::next.

InfoRecord * maxHeap::next ( heapIterator iter  )  [inherited]

Definition at line 250 of file ckheap.C.

References maxHeap::count, maxHeap::h, heapRecord::info, and heapIterator::next.

Set::Set (  )  [inherited]

Definition at line 8 of file ckset.C.

References Set::head.

Set::~Set (  )  [inherited]

Definition at line 13 of file ckset.C.

References Set::head, listNode::next, and p.

void Set::insert ( InfoRecord info  )  [inherited]

void Set::myRemove ( listNode **  n,
InfoRecord r 
) [inherited]

Definition at line 36 of file ckset.C.

References listNode::next.

void Set::remove ( InfoRecord r  )  [inherited]

Definition at line 44 of file ckset.C.

References Set::head, listNode::info, listNode::next, and p.

Referenced by RefinerTemp::deAssign(), RefinerComm::deAssign(), Refiner::deAssign(), RefinerTemp::refine(), RefinerApprox::refine(), Refiner::refine(), and VectorStrategy().

Here is the caller graph for this function:

int Set::find ( InfoRecord r  )  [inherited]

Definition at line 70 of file ckset.C.

References Set::head, listNode::info, listNode::next, and p.

Referenced by Set::insert().

Here is the caller graph for this function:

InfoRecord * Set::iterator ( Iterator iter  )  [inherited]

InfoRecord * Set::next ( Iterator iter  )  [inherited]

int Set::numElements (  )  [inherited]

void Set::print (  )  [inherited]

Definition at line 114 of file ckset.C.

References Set::head, InfoRecord::Id, listNode::info, listNode::next, and p.

void ComboCentLB::work ( LDStats *  stats  )  [protected, virtual, inherited]

Definition at line 43 of file ComboCentLB.C.

References ComboCentLB::clbs, and CkVec< T >::length().

Here is the call graph for this function:

bool CommAwareRefineLB::QueryBalanceNow ( int  step  )  [private, inherited]

Definition at line 63 of file CommAwareRefineLB.C.

void CommAwareRefineLB::work ( LDStats *  stats  )  [inherited]

========================== INITIALIZATION =============================

============================= STRATEGY ================================

============================== CLEANUP ================================

Definition at line 155 of file CommAwareRefineLB.C.

References _lb_args, Converse::CkMyPe(), ObjGraph::convertDecisions(), CkLBArgs::debug(), ProcArray::getAverageLoad(), getPossiblePes(), ProcInfo::getProcId(), handleTransfer(), lower_threshold, p, popFromProcHeap(), ProcArray::procs, stats::time(), updateLoadInfo(), upper_threshold, ObjGraph::vertices, and x.

Here is the call graph for this function:

bool CommLB::QueryBalanceNow ( int  step  )  [private, inherited]

Definition at line 37 of file CommLB.C.

void CommLB::alloc ( int  pe,
int  id,
double  load,
int  nmsg,
int  nbyte 
) [private, inherited]

Definition at line 43 of file CommLB.C.

References CommLB::alloc_array, alloc_struct::load, alloc_struct::nbyte, alloc_struct::nmsg, CommLB::nobj, and CommLB::npe.

Referenced by CommLB::work().

Here is the caller graph for this function:

double CommLB::compute_cost ( int  id,
int  pe,
int  n_alloc,
int out_msg,
int out_byte 
) [private, inherited]

Definition at line 53 of file CommLB.C.

References CommLB::alloc_array, alpha, beta, graph::data, alloc_struct::load, graph::next, alloc_struct::nmsg, CommLB::nobj, CommLB::npe, and CommLB::object_graph.

Referenced by CommLB::work().

Here is the caller graph for this function:

void CommLB::add_graph ( int  x,
int  y,
int  data,
int  nmsg 
) [private, inherited]

Definition at line 88 of file CommLB.C.

References graph::data, graph::id, graph::next, graph::nmsg, and CommLB::object_graph.

Referenced by CommLB::work().

Here is the caller graph for this function:

void CommLB::work ( LDStats *  stats  )  [private, inherited]

ObjectHeap::ObjectHeap ( int  size  )  [inherited]

Definition at line 9 of file CommLBHeap.C.

References ObjectHeap::count, ObjectHeap::h, and ObjectHeap::size.

int ObjectHeap::numElements (  )  [inherited]

Definition at line 15 of file CommLBHeap.C.

References ObjectHeap::count.

int ObjectHeap::insert ( ObjectRecord x  )  [inherited]

Definition at line 19 of file CommLBHeap.C.

References ObjectHeap::count, hRecord::deleted, ObjectHeap::h, info, hRecord::info, parent(), ObjectHeap::size, ObjectHeap::swap(), and ObjectRecord::val.

Referenced by GreedyCommLB::work(), and CommLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

ObjectRecord * ObjectHeap::deleteMax (  )  [inherited]

Definition at line 44 of file CommLBHeap.C.

References ObjectHeap::count, ObjectHeap::h, info, hRecord::info, ObjectHeap::swap(), and ObjectRecord::val.

Referenced by GreedyCommLB::work(), and CommLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

ObjectRecord * ObjectHeap::iterator ( hIterator iter  )  [inherited]

Definition at line 79 of file CommLBHeap.C.

References ObjectHeap::count, ObjectHeap::h, hRecord::info, and hIterator::next.

ObjectRecord * ObjectHeap::next ( hIterator iter  )  [inherited]

Definition at line 86 of file CommLBHeap.C.

References ObjectHeap::count, ObjectHeap::h, hRecord::info, and hIterator::next.

bool DummyLB::QueryBalanceNow ( int  step  )  [private, inherited]

Definition at line 21 of file DummyLB.C.

bool GraphBFTLB::QueryBalanceNow ( int  _step  )  [private, inherited]

Definition at line 28 of file GraphBFTLB.C.

void GraphBFTLB::work ( LDStats *  stats  )  [inherited]

========================== INITIALIZATION =============================

============================= STRATEGY ================================

============================== CLEANUP ================================

Definition at line 32 of file GraphBFTLB.C.

References ObjGraph::convertDecisions(), ProcArray::getAverageLoad(), ProcArray::procs, ProcArray::resetTotalLoad(), and ObjGraph::vertices.

Here is the call graph for this function:

bool GraphPartLB::QueryBalanceNow ( int  _step  )  [private, inherited]

Definition at line 27 of file GraphPartLB.C.

void GraphPartLB::work ( LDStats *  stats  )  [inherited]

========================== INITIALIZATION =============================

============================= STRATEGY ================================

============================== CLEANUP ================================

Definition at line 31 of file GraphPartLB.C.

References ObjGraph::convertDecisions().

Here is the call graph for this function:

bool GreedyAgentLB::QueryBalanceNow ( int  step  )  [private, inherited]

Definition at line 37 of file GreedyAgentLB.C.

bool GreedyAgentLB::Compare ( double  x,
double  y,
HeapCmp  cmp 
) [private, inherited]

Definition at line 43 of file GreedyAgentLB.C.

References GreedyAgentLB::GT.

Referenced by GreedyAgentLB::Heapify().

Here is the caller graph for this function:

void GreedyAgentLB::Heapify ( HeapData heap,
int  node,
int  heapSize,
HeapCmp  cmp 
) [private, inherited]

Definition at line 52 of file GreedyAgentLB.C.

References GreedyAgentLB::Compare(), left(), and right().

Referenced by GreedyAgentLB::BuildHeap(), GreedyAgentLB::HeapSort(), and GreedyAgentLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void GreedyAgentLB::BuildHeap ( HeapData data,
int  heapSize,
HeapCmp  cmp 
) [private, inherited]

Definition at line 75 of file GreedyAgentLB.C.

References GreedyAgentLB::Heapify().

Referenced by GreedyAgentLB::BuildCpuArray(), and GreedyAgentLB::HeapSort().

Here is the call graph for this function:

Here is the caller graph for this function:

void GreedyAgentLB::HeapSort ( HeapData data,
int  heapSize,
HeapCmp  cmp 
) [private, inherited]

Definition at line 82 of file GreedyAgentLB.C.

References GreedyAgentLB::BuildHeap(), GreedyAgentLB::Heapify(), and key.

Referenced by GreedyAgentLB::BuildObjectArray().

Here is the call graph for this function:

Here is the caller graph for this function:

GreedyAgentLB::HeapData * GreedyAgentLB::BuildObjectArray ( CentralLB::LDStats *  stats,
int  count,
int objCount 
) [private, inherited]

Definition at line 105 of file GreedyAgentLB.C.

References CmiAbort(), GreedyAgentLB::GT, GreedyAgentLB::HeapSort(), GreedyAgentLB::HeapData::id, GreedyAgentLB::HeapData::load, LDObjData::migratable, GreedyAgentLB::HeapData::pe, and LDObjData::wallTime.

Referenced by GreedyAgentLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

GreedyAgentLB::HeapData * GreedyAgentLB::BuildCpuArray ( CentralLB::LDStats *  stats,
int  count,
int peCount 
) [private, inherited]

Definition at line 140 of file GreedyAgentLB.C.

References GreedyAgentLB::BuildHeap(), CmiAbort(), data, GreedyAgentLB::HeapData::id, GreedyAgentLB::HeapData::load, GreedyAgentLB::LT, LDObjData::migratable, GreedyAgentLB::HeapData::pe, and LDObjData::wallTime.

Referenced by GreedyAgentLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void GreedyAgentLB::work ( LDStats *  stats  )  [inherited]

GreedyCommLB::GreedyCommLB ( const CkLBOptions opt  )  [inherited]

Definition at line 34 of file GreedyCommLB.C.

References Converse::CkMyPe(), GreedyCommLB::init(), and quietModeRequested.

Here is the call graph for this function:

GreedyCommLB::GreedyCommLB ( CkMigrateMessage m  )  [inherited]

Definition at line 41 of file GreedyCommLB.C.

References GreedyCommLB::init().

Here is the call graph for this function:

bool GreedyCommLB::QueryBalanceNow ( int  step  )  [inherited]

Definition at line 45 of file GreedyCommLB.C.

void GreedyCommLB::alloc ( int  pe,
int  id,
double  load 
) [private, inherited]

Definition at line 52 of file GreedyCommLB.C.

References GreedyCommLB::assigned_array, InfoRecord::load, and GreedyCommLB::processors.

Referenced by GreedyCommLB::work().

Here is the caller graph for this function:

double GreedyCommLB::compute_com ( LDStats *  stats,
int  id,
int  pe 
) [private, inherited]

Definition at line 59 of file GreedyCommLB.C.

References GreedyCommLB::alpha, GreedyCommLB::assigned_array, GreedyCommLB::beta, graph::id, graph::next, GreedyCommLB::nobj, and GreedyCommLB::object_graph.

Referenced by GreedyCommLB::work().

Here is the caller graph for this function:

void GreedyCommLB::update ( LDStats *  stats,
int  id,
int  pe 
) [private, inherited]

void GreedyCommLB::add_graph ( int  x,
int  y,
int  data,
int  nmsg 
) [private, inherited]

Definition at line 100 of file GreedyCommLB.C.

References graph::data, graph::id, graph::next, graph::nmsg, and GreedyCommLB::object_graph.

Referenced by GreedyCommLB::work().

Here is the caller graph for this function:

void GreedyCommLB::work ( LDStats *  stats  )  [inherited]

bool GreedyLB::QueryBalanceNow ( int  step  )  [private, inherited]

Definition at line 36 of file GreedyLB.C.

void GreedyLB::work ( LDStats *  stats  )  [inherited]

GreedyRefineLB::GreedyRefineLB ( CkMigrateMessage m  )  [inherited]

Definition at line 195 of file GreedyRefineLB.C.

References _lb_args, GreedyRefineLB::migrationTolerance, and CkLBArgs::percentMovesAllowed().

Here is the call graph for this function:

double GreedyRefineLB::greedyLB ( const std::vector< GObj * > &  pobjs,
GreedyRefineLB::PHeap procHeap,
const BaseLB::LDStats stats 
) const [private, inherited]

void GreedyRefineLB::dumpObjLoads ( std::vector< GObj > &  objs  )  [private, inherited]

Definition at line 232 of file GreedyRefineLB.C.

References endl(), and GreedyRefineLB::GObj::load.

Here is the call graph for this function:

void GreedyRefineLB::dumpProcLoads ( std::vector< GProc > &  procs  )  [private, inherited]

Definition at line 242 of file GreedyRefineLB.C.

References endl(), GreedyRefineLB::GProc::load, and p.

Here is the call graph for this function:

double GreedyRefineLB::fillData ( LDStats *  stats,
std::vector< GObj > &  objs,
std::vector< GObj * > &  pobjs,
std::vector< GProc > &  procs,
PHeap procHeap 
) [private, inherited]

void GreedyRefineLB::sendSolution ( double  maxLoad,
int  migrations 
) [private, inherited]

Definition at line 367 of file GreedyRefineLB.C.

References _lb_args, cb, Converse::CkMyPe(), CkLBArgs::debug(), free(), malloc(), CkReduction::set, and GreedyRefineLB::strategyStartTime.

Referenced by GreedyRefineLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void GreedyRefineLB::work ( LDStats *  stats  )  [inherited]

void GreedyRefineLB::receiveTotalTime ( double  time  )  [inherited]

Definition at line 486 of file GreedyRefineLB.C.

References Converse::CkNumPes().

Referenced by GreedyRefineLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void GreedyRefineLB::receiveSolutions ( CkReductionMsg msg  )  [inherited]

void HbmLB::staticAtSync ( void *  data  )  [static, inherited]

Definition at line 25 of file HbmLB.C.

References HbmLB::AtSync().

Referenced by HbmLB::HbmLB().

Here is the call graph for this function:

Here is the caller graph for this function:

HbmLB::HbmLB ( const CkLBOptions opt  )  [inherited]

HbmLB::~HbmLB (  )  [inherited]

Definition at line 61 of file HbmLB.C.

References _lbdb, and HbmLB::tree.

void HbmLB::FindNeighbors (  )  [private, inherited]

void HbmLB::AtSync ( void   )  [inherited]

Definition at line 105 of file HbmLB.C.

References Converse::CkMyPe(), Converse::CkNumPes(), HbmLB::FindNeighbors(), HbmLB::MigrationDone(), and HbmLB::QueryBalanceNow().

Referenced by HbmLB::staticAtSync().

Here is the call graph for this function:

Here is the caller graph for this function:

void HbmLB::ProcessAtSync ( void   )  [inherited]

Definition at line 122 of file HbmLB.C.

References _lb_args, Converse::CkMyPe(), CkLBArgs::debug(), HbmLB::levelData, HbmLB::myStats, parent(), and HbmLB::start_lb_time.

Here is the call graph for this function:

void HbmLB::ReceiveStats ( double  t,
int  frompe,
int  fromlevel 
) [inherited]

void HbmLB::Loadbalancing ( int  level  )  [virtual, inherited]

void HbmLB::LoadbalancingDone ( int  level  )  [inherited]

Definition at line 243 of file HbmLB.C.

References Converse::CkMyPe(), HbmLB::levelData, MyHmbHierarchyTree::numLevels(), HbmLB::LevelData::parent, HbmLB::LevelData::statsList, HbmLB::totalLoad, and HbmLB::tree.

Referenced by HbmLB::Loadbalancing(), and HbmLB::NotifyObjectMigrationDone().

Here is the call graph for this function:

Here is the caller graph for this function:

void HbmLB::ReceiveResumeClients ( int  fromlevel,
int  balancing 
) [inherited]

Definition at line 261 of file HbmLB.C.

References HbmLB::LevelData::children, HbmLB::levelData, HbmLB::LevelData::nChildren, and HbmLB::ResumeClients().

Here is the call graph for this function:

void HbmLB::ReceiveMigrationDelta ( double  t,
int  lblevel,
int  level 
) [inherited]

void HbmLB::collectCommData ( int  objIdx,
CkVec< LDCommData > &  comms 
) [inherited]

Definition at line 333 of file HbmLB.C.

References _LDCommData::from_proc(), HbmLB::levelData, HbmLB::myStats, LDObjData::objID(), _LDObjKey::objID(), LDObjData::omID(), _LDObjKey::omID(), CkVec< T >::push_back(), and _LDCommData::sender.

Referenced by HbmLB::ReceiveMigrationDelta().

Here is the call graph for this function:

Here is the caller graph for this function:

void HbmLB::ObjMigrated ( LDObjData  data,
LDCommData cdata,
int  n 
) [inherited]

void HbmLB::ReceiveMigrationCount ( int  count,
int  lblevel 
) [inherited]

Definition at line 381 of file HbmLB.C.

References HbmLB::lbLevel, HbmLB::levelData, HbmLB::LevelData::migrates_expected, HbmLB::MigrationDone(), and HbmLB::LevelData::migrationDone().

Here is the call graph for this function:

void HbmLB::Migrated ( LDObjHandle  h,
int  waitBarrier 
) [inherited]

Definition at line 393 of file HbmLB.C.

References Converse::CkMyPe(), HbmLB::levelData, HbmLB::LevelData::migrates_completed, HbmLB::LevelData::migrates_expected, HbmLB::MigrationDone(), HbmLB::LevelData::migrationDone(), HbmLB::newObjs, and CkVec< T >::push_back().

Referenced by CreateLBFunc_Def().

Here is the call graph for this function:

Here is the caller graph for this function:

void HbmLB::NotifyObjectMigrationDone ( int  level,
int  lblevel 
) [inherited]

void HbmLB::MigrationDone ( int  balancing  )  [inherited]

void HbmLB::ResumeClients ( double  result  )  [inherited]

Definition at line 484 of file HbmLB.C.

References _lb_args, Converse::CkMyPe(), and CkLBArgs::printSummary().

Referenced by HbmLB::ReceiveResumeClients().

Here is the call graph for this function:

Here is the caller graph for this function:

void HbmLB::ResumeClients ( int  balancing  )  [inherited]

void HbmLB::reportLBQulity ( double  mload,
double  mCpuLoad,
double  totalload,
int  nmsgs,
double  bytesentry 
) [inherited]

Definition at line 530 of file HbmLB.C.

References Converse::CkMyPe(), Converse::CkNumPes(), HbmLB::maxCommBytes, HbmLB::maxCommCount, HbmLB::maxCpuLoad, HbmLB::maxLoad, and HbmLB::totalLoad.

Here is the call graph for this function:

void HbmLB::work ( LDStats *  stats  )  [protected, virtual, inherited]

Definition at line 551 of file HbmLB.C.

References Converse::CkMyPe().

Here is the call graph for this function:

int HbmLB::NeighborIndex ( int  pe,
int  atlevel 
) [protected, inherited]

Definition at line 558 of file HbmLB.C.

References HbmLB::levelData.

Referenced by HbmLB::ReceiveStats().

Here is the caller graph for this function:

int HbmLB::useMem (  )  [protected, virtual, inherited]

Definition at line 570 of file HbmLB.C.

References HbmLB::levelData.

Referenced by HbmLB::ResumeClients().

Here is the caller graph for this function:

void HybridBaseLB::staticMigrated ( void *  me,
LDObjHandle  h,
int  waitBarrier 
) [static, inherited]

Definition at line 23 of file HybridBaseLB.C.

References HybridBaseLB::Migrated().

Referenced by HybridBaseLB::HybridBaseLB().

Here is the call graph for this function:

Here is the caller graph for this function:

void HybridBaseLB::staticAtSync ( void *  data  )  [static, inherited]

Definition at line 30 of file HybridBaseLB.C.

References HybridBaseLB::AtSync(), and CkSetInLdb().

Referenced by HybridBaseLB::HybridBaseLB().

Here is the call graph for this function:

Here is the caller graph for this function:

HybridBaseLB::HybridBaseLB ( const CkLBOptions opt  )  [inherited]

void HybridBaseLB::initTree (  )  [protected, inherited]

HybridBaseLB::~HybridBaseLB (  )  [inherited]

Definition at line 109 of file HybridBaseLB.C.

References _lbdb, and HybridBaseLB::tree.

void HybridBaseLB::FindNeighbors (  )  [private, inherited]

void HybridBaseLB::AtSync ( void   )  [inherited]

Definition at line 156 of file HybridBaseLB.C.

References Converse::CkMyPe(), Converse::CkNumPes(), HybridBaseLB::FindNeighbors(), HybridBaseLB::MigrationDone(), and HybridBaseLB::QueryBalanceNow().

Referenced by HybridBaseLB::staticAtSync().

Here is the call graph for this function:

Here is the caller graph for this function:

void HybridBaseLB::ProcessAtSync ( void   )  [inherited]

Definition at line 173 of file HybridBaseLB.C.

References _lb_args, HybridBaseLB::AssembleStats(), Converse::CkMyPe(), CkLBArgs::debug(), HybridBaseLB::levelData, msg, and HybridBaseLB::start_lb_time.

Here is the call graph for this function:

CLBStatsMsg * HybridBaseLB::AssembleStats (  )  [protected, virtual, inherited]

void HybridBaseLB::ReceiveStats ( CkMarshalledCLBStatsMessage &&  m,
int  fromlevel 
) [inherited]

void HybridBaseLB::depositLBStatsMessage ( CLBStatsMsg msg,
int  atlevel 
) [private, inherited]

void HybridBaseLB::buildStats ( int  level  )  [private, inherited]

CLBStatsMsg * HybridBaseLB::buildCombinedLBStatsMessage ( int  atlevel  )  [private, inherited]

void HybridBaseLB::Loadbalancing ( int  level  )  [virtual, inherited]

LBMigrateMsg * HybridBaseLB::Strategy ( LDStats *  stats  )  [protected, virtual, inherited]

Definition at line 539 of file HybridBaseLB.C.

References _lb_args, HybridBaseLB::createMigrateMsg(), CkLBArgs::debug(), and HybridBaseLB::work().

Referenced by HybridBaseLB::Loadbalancing(), and HybridBaseLB::Strategy().

Here is the call graph for this function:

Here is the caller graph for this function:

void HybridBaseLB::ReceiveMigration ( LBMigrateMsg msg  )  [inherited]

LBVectorMigrateMsg * HybridBaseLB::VectorStrategy ( LDStats *  stats  )  [protected, virtual, inherited]

void HybridBaseLB::ReceiveVectorMigration ( LBVectorMigrateMsg msg  )  [inherited]

void HybridBaseLB::GetObjsToMigrate ( int  toPe,
double  load,
LDStats *  stats,
int  atlevel,
CkVec< LDCommData > &  comms,
CkVec< LDObjData > &  objs 
) [virtual, inherited]

Definition at line 707 of file HybridBaseLB.C.

References _lb_args, Converse::CkMyPe(), HybridBaseLB::collectCommData(), HybridBaseLB::CreateMigrationOutObjs(), CkLBArgs::debug(), LDObjData::migratable, CkVec< T >::push_back(), and LDObjData::wallTime.

Referenced by HybridBaseLB::ReceiveVectorMigration().

Here is the call graph for this function:

Here is the caller graph for this function:

void HybridBaseLB::CreateMigrationOutObjs ( int  atlevel,
LDStats *  stats,
int  objidx 
) [inherited]

Definition at line 729 of file HybridBaseLB.C.

References HybridBaseLB::LevelData::children, LDObjData::handle, HybridBaseLB::levelData, and HybridBaseLB::LevelData::outObjs.

Referenced by HybridBaseLB::GetObjsToMigrate().

Here is the caller graph for this function:

void HybridBaseLB::ObjsMigrated ( CkVec< LDObjData > &&  data,
int  m,
LDCommData cdata,
int  n,
int  level 
) [inherited]

void HybridBaseLB::VectorDone ( int  atlevel  )  [inherited]

void HybridBaseLB::TotalObjMigrated ( int  count,
int  level 
) [inherited]

void HybridBaseLB::Migrated ( LDObjHandle  h,
int  waitBarrier 
) [inherited]

void HybridBaseLB::collectCommData ( int  objIdx,
CkVec< LDCommData > &  comm,
int  atlevel 
) [protected, inherited]

void HybridBaseLB::ObjMigrated ( LDObjData  data,
LDCommData cdata,
int  n,
int  level 
) [inherited]

void HybridBaseLB::StatsDone ( int  level  )  [inherited]

void HybridBaseLB::NotifyObjectMigrationDone ( int  level  )  [inherited]

void HybridBaseLB::StartCollectInfo ( DummyMsg *  m  )  [inherited]

void HybridBaseLB::CollectInfo ( Location loc,
int  n,
int  fromlevel 
) [inherited]

void HybridBaseLB::PropagateInfo ( Location loc,
int  n,
int  fromlevel 
) [inherited]

void HybridBaseLB::MigrationDone ( int  balancing  )  [inherited]

void HybridBaseLB::ResumeClients ( double  result  )  [inherited]

Definition at line 1155 of file HybridBaseLB.C.

Referenced by HybridBaseLB::MigrationDone().

Here is the caller graph for this function:

void HybridBaseLB::ResumeClients ( int  balancing  )  [inherited]

Definition at line 1166 of file HybridBaseLB.C.

References _lb_args, Converse::CkMyPe(), CkLBArgs::debug(), and HybridBaseLB::start_lb_time.

Here is the call graph for this function:

void HybridBaseLB::work ( LDStats *  stats  )  [protected, virtual, inherited]

Definition at line 1186 of file HybridBaseLB.C.

References Converse::CkMyPe().

Referenced by HybridBaseLB::Strategy().

Here is the call graph for this function:

Here is the caller graph for this function:

LBMigrateMsg * HybridBaseLB::createMigrateMsg ( LDStats *  stats  )  [protected, virtual, inherited]

LBMigrateMsg * HybridBaseLB::createMigrateMsg ( CkVec< MigrateInfo * > &  migrateInfo,
int  count 
) [protected, inherited]

int HybridBaseLB::NeighborIndex ( int  pe,
int  atlevel 
) [protected, inherited]

Definition at line 1320 of file HybridBaseLB.C.

References HybridBaseLB::levelData.

Referenced by HybridBaseLB::buildStats(), and HybridBaseLB::depositLBStatsMessage().

Here is the caller graph for this function:

void HybridBaseLB::printSummary ( LDStats *  stats,
int  count 
) [protected, inherited]

Definition at line 1332 of file HybridBaseLB.C.

References Converse::CkMyPe(), HybridBaseLB::currentLevel, LBInfo::getInfo(), LBInfo::getSummary(), info, MyHierarchyTree::numLevels(), HybridBaseLB::totalLoad, HybridBaseLB::tree, and HybridBaseLB::useMem().

Referenced by HybridBaseLB::createMigrateMsg().

Here is the call graph for this function:

Here is the caller graph for this function:

void HybridBaseLB::reportLBQulity ( double  mload,
double  mCpuLoad,
double  totalload,
int  nmsgs,
double  bytesentry 
) [inherited]

void HybridBaseLB::reportLBMem ( double  mem  )  [inherited]

Definition at line 1378 of file HybridBaseLB.C.

References Converse::CkMyPe(), HybridBaseLB::maxMem, MyHierarchyTree::numLevels(), MyHierarchyTree::numNodes(), and HybridBaseLB::tree.

Here is the call graph for this function:

int HybridBaseLB::useMem (  )  [protected, virtual, inherited]

Definition at line 1391 of file HybridBaseLB.C.

References HybridBaseLB::levelData, HybridBaseLB::newObjs, and CkVec< T >::size().

Referenced by HybridBaseLB::Loadbalancing(), and HybridBaseLB::printSummary().

Here is the call graph for this function:

Here is the caller graph for this function:

HybridLB::~HybridLB (  )  [inherited]

Definition at line 46 of file HybridLB.C.

References HybridLB::greedy, and HybridLB::refine.

void HybridLB::work ( LDStats *  stats  )  [protected, virtual, inherited]

Definition at line 52 of file HybridLB.C.

References HybridLB::greedy, HybridLB::refine, and CentralLB::work().

Here is the call graph for this function:

LBCommData * LBCommTable::HashInsert ( const LBCommData data  )  [inherited]

Definition at line 28 of file LBComm.C.

References CmiPrintf(), LBCommTable::cur_sz, LBCommData::hash(), LBCommTable::in_use, LBCommTable::InUse, LBCommTable::nil, LBCommTable::Resize(), and LBCommTable::state.

Referenced by LBCommTable::HashInsertUnique(), and LBCommTable::Resize().

Here is the call graph for this function:

Here is the caller graph for this function:

LBCommData * LBCommTable::HashSearch ( const LBCommData data  )  [inherited]

Definition at line 51 of file LBComm.C.

References LBCommTable::cur_sz, LBCommData::hash(), LBCommTable::nil, and LBCommTable::state.

Referenced by LBCommTable::HashInsertUnique().

Here is the call graph for this function:

Here is the caller graph for this function:

LBCommData * LBCommTable::HashInsertUnique ( const LBCommData data  )  [inherited]

Definition at line 65 of file LBComm.C.

References LBCommTable::HashInsert(), and LBCommTable::HashSearch().

Referenced by LBDB::MulticastSend(), and LBDB::Send().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBCommTable::Resize (  )  [private, inherited]

Definition at line 74 of file LBComm.C.

References LBCommTable::cur_sz, LBCommTable::HashInsert(), LBCommTable::InUse, LBCommTable::NewTable(), and LBCommTable::state.

Referenced by LBCommTable::HashInsert().

Here is the call graph for this function:

Here is the caller graph for this function:

bool LBCommData::equal ( const LBCommData _d2  )  const [inherited]

Definition at line 89 of file LBComm.C.

References LBCommData::destObj, LBCommData::from_proc(), LDObjHandle::objID(), LDObjHandle::omID(), LBCommData::src_proc, and LBCommData::srcObj.

Here is the call graph for this function:

int LBCommData::compute_key (  )  [private, inherited]

int LBCommData::hash ( const int  i,
const int  m 
) const [private, inherited]

Definition at line 149 of file LBComm.C.

References PUP::a, int, and LBCommData::key().

Referenced by LBCommTable::HashInsert(), and LBCommTable::HashSearch().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBCommTable::GetCommData ( LDCommData data  )  [inherited]

void LBCommTable::GetCommInfo ( int bytes,
int msgs,
int withinpebytes,
int outsidepebytes,
int num_nghbor,
int hops,
int hopbytes 
) [inherited]

Definition at line 194 of file LBComm.C.

References Converse::CkMyPe(), Converse::CkNumPes(), LBCommTable::cur_sz, h, LBCommTable::InUse, LBCommTable::state, and TopoManager_getHopsBetweenPeRanks().

Referenced by LBDB::GetCommInfo().

Here is the call graph for this function:

Here is the caller graph for this function:

LBDBInit::LBDBInit ( CkArgMsg m  )  [inherited]

Definition at line 123 of file LBDatabase.C.

References CmiPrintf(), LBDBRegistry::compile_lbs, createLoadBalancer(), LBSimulation::doSimulation, LBDBRegistry::runtime_lbs, and CkVec< T >::size().

Here is the call graph for this function:

void LBDatabase::initnodeFn ( void   )  [static, inherited]

Definition at line 367 of file LBDatabase.C.

References _expectedLoad, _registerCommandLineOpt(), LBDatabase::avail_vector, avail_vector_lock, Converse::CkNumPes(), and CmiCreateLock().

Here is the call graph for this function:

void LBDatabase::init ( void   )  [private, inherited]

Definition at line 413 of file LBDatabase.C.

References LDCreate(), LBDatabase::manualOn, LBDatabase::metabalancer, LBDatabase::myLDHandle, LBDatabase::mystep, LBDatabase::new_ld_balancer, LBDatabase::nloadbalancers, and LBDatabase::TurnManualLBOn().

Referenced by LBDatabase::LBDatabase().

Here is the call graph for this function:

Here is the caller graph for this function:

LBDatabase::LastLBInfo::LastLBInfo (  )  [inherited]

Definition at line 427 of file LBDatabase.C.

References _expectedLoad, and LBDatabase::LastLBInfo::expectedLoad.

void LBDatabase::get_avail_vector ( char *  bitmap  )  [inherited]

Definition at line 432 of file LBDatabase.C.

References LBDatabase::avail_vector, and Converse::CkNumPes().

Referenced by CentralLB::ApplyDecision(), CentralLB::BuildStatsMsg(), get_avail_vector(), and handler().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDatabase::set_avail_vector ( char *  bitmap,
int  new_ld = -1 
) [inherited]

Definition at line 443 of file LBDatabase.C.

References LBDatabase::avail_vector, Converse::CkNumPes(), count, and LBDatabase::new_ld_balancer.

Referenced by handler(), CentralLB::ProcessReceiveMigration(), CentralLB::ReceiveStats(), and set_avail_vector().

Here is the call graph for this function:

Here is the caller graph for this function:

int LBDatabase::getLoadbalancerTicket (  )  [inherited]

Definition at line 465 of file LBDatabase.C.

References LBDatabase::loadbalancers, LBDatabase::nloadbalancers, and CkVec< T >::resize().

Referenced by BaseLB::pup().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDatabase::addLoadbalancer ( BaseLB lb,
int  seq 
) [inherited]

Definition at line 473 of file LBDatabase.C.

References Converse::CkMyPe(), CmiAbort(), CmiPrintf(), LBDatabase::loadbalancers, LBDatabase::nloadbalancers, and CkVec< T >::resize().

Referenced by BaseLB::initLB().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDatabase::nextLoadbalancer ( int  seq  )  [inherited]

Definition at line 490 of file LBDatabase.C.

References LBDatabase::loadbalancers, CkLBArgs::loop(), and LBDatabase::nloadbalancers.

Here is the call graph for this function:

void LBDatabase::switchLoadbalancer ( int  switchFrom,
int  switchTo 
) [inherited]

Definition at line 507 of file LBDatabase.C.

References LBDatabase::loadbalancers.

Referenced by MetaBalancer::MetaLBSetLBOnChares().

Here is the caller graph for this function:

const char * LBDatabase::loadbalancer ( int  seq  )  [inherited]

Definition at line 518 of file LBDatabase.C.

References LBDBRegistry::compile_lbs, CkVec< T >::length(), and LBDBRegistry::runtime_lbs.

Here is the call graph for this function:

void LBDatabase::pup ( PUP::er p  )  [virtual, inherited]

Pack/UnPack - tell the runtime how to serialize this class's data for migration, checkpoint, etc.

Reimplemented from IrrGroup.

Definition at line 529 of file LBDatabase.C.

References _metalb, LBDatabase::avail_vector, avail_vector_lock, LBDatabase::avail_vector_set, CkLocalBranch(), Converse::CkNumPes(), CmiLock(), CmiUnlock(), PUP::er::isUnpacking(), LBDatabase::metabalancer, CkLBArgs::metaLbOn(), LBDatabase::mystep, LBDatabase::nloadbalancers, p, and IrrGroup::pup().

Here is the call graph for this function:

void LBDatabase::EstObjLoad ( const LDObjHandle h,
double  cpuload 
) [inherited]

Definition at line 569 of file LBDatabase.C.

References LDHandle::handle, LBDB::LbObj(), LDOMHandle::ldb, LDObjHandle::omhandle, and LBObj::setTiming().

Referenced by CkLocRec::setObjTime().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDatabase::ResetAdaptive (  )  [inherited]

Definition at line 580 of file LBDatabase.C.

References _metalb, LBDatabase::metabalancer, CkLBArgs::metaLbOn(), and MetaBalancer::ResetAdaptive().

Here is the call graph for this function:

void LBDatabase::ResumeClients ( void   )  [inherited]

Definition at line 593 of file LBDatabase.C.

References _metalb, LDResumeClients(), LBDatabase::metabalancer, CkLBArgs::metaLbOn(), LBDatabase::myLDHandle, and MetaBalancer::ResumeClients().

Here is the call graph for this function:

void LBDatabase::SetMigrationCost ( double  cost  )  [inherited]

Definition at line 607 of file LBDatabase.C.

References _metalb, CkLocalBranch(), LBDatabase::metabalancer, CkLBArgs::metaLbOn(), and MetaBalancer::SetMigrationCost().

Here is the call graph for this function:

void LBDatabase::SetStrategyCost ( double  cost  )  [inherited]

Definition at line 620 of file LBDatabase.C.

References _metalb, CkLocalBranch(), LBDatabase::metabalancer, CkLBArgs::metaLbOn(), and MetaBalancer::SetStrategyCost().

Here is the call graph for this function:

void LBDatabase::UpdateDataAfterLB ( double  mLoad,
double  mCpuLoad,
double  avgLoad 
) [inherited]

Definition at line 633 of file LBDatabase.C.

References _metalb, CkLocalBranch(), LBDatabase::metabalancer, CkLBArgs::metaLbOn(), and MetaBalancer::UpdateAfterLBData().

Here is the call graph for this function:

void LBDB::batsyncer::gotoSync ( void *  bs  )  [static, private, inherited]

Definition at line 21 of file LBDBManager.C.

References LBDB::AtLocalBarrier(), LBDB::batsyncer::BH, LBDB::batsyncer::db, LBDB::batsyncer::gotoSyncCalled, and PUP::s.

Referenced by LBDB::batsyncer::resumeFromSync().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDB::batsyncer::resumeFromSync ( void *  bs  )  [static, private, inherited]

Definition at line 28 of file LBDBManager.C.

References CcdCallFnAfterOnPE(), Converse::CkMyPe(), CmiWallTimer(), LBDB::batsyncer::gotoSync(), LBDB::batsyncer::gotoSyncCalled, LBDB::batsyncer::nextT, LBDB::batsyncer::period, and PUP::s.

Referenced by LBDB::batsyncer::init().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDB::batsyncer::init ( LBDB _db,
double  initPeriod 
) [inherited]

Definition at line 46 of file LBDBManager.C.

References LBDB::AddLocalBarrierClient(), LBDB::batsyncer::BH, CmiWallTimer(), LBDB::batsyncer::db, LBDB::batsyncer::gotoSyncCalled, LBDB::batsyncer::nextT, LBDB::batsyncer::period, and LBDB::batsyncer::resumeFromSync().

Referenced by LBDB::LBDB().

Here is the call graph for this function:

Here is the caller graph for this function:

LBDB::LBDB (  )  [inherited]

LDOMHandle LBDB::AddOM ( LDOMid  _userID,
void *  _userData,
LDCallbacks  _callbacks 
) [inherited]

Definition at line 78 of file LBDBManager.C.

References LBOM::DepositHandle(), LDOMHandle::handle, LDHandle::handle, LDOMHandle::id, CkVec< T >::insertAtEnd(), LDOMHandle::ldb, CkVec< T >::length(), LBDB::omCount, and LBDB::oms.

Referenced by LDRegisterOM().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDB::RemoveOM ( LDOMHandle  om  )  [inherited]

Definition at line 97 of file LBDBManager.C.

References LDOMHandle::handle, LBDB::omCount, and LBDB::oms.

Referenced by LDUnregisterOM().

Here is the caller graph for this function:

LDObjHandle LBDB::AddObj ( LDOMHandle  _h,
CmiUInt8  _id,
void *  _userData,
bool  _migratable 
) [inherited]

Definition at line 109 of file LBDBManager.C.

References _BgOutOfCoreFlag, LDObjHandle::handle, LDObjHandle::id, LBDB::objs, LBDB::objsEmptyHead, and LDObjHandle::omhandle.

Referenced by LDRegisterObj().

Here is the caller graph for this function:

void LBDB::UnregisterObj ( LDObjHandle  _h  )  [inherited]

Definition at line 167 of file LBDBManager.C.

References _BgOutOfCoreFlag, LDObjHandle::handle, LBDB::objs, and LBDB::objsEmptyHead.

Referenced by LDUnregisterObj().

Here is the caller graph for this function:

void LBDB::RegisteringObjects ( LDOMHandle  _h  )  [inherited]

Definition at line 191 of file LBDBManager.C.

References LDOMHandle::handle, _LDOMid::id, LDOMHandle::id, _ckGroupID::idx, LBDB::localBarrier, LBDB::oms, LBDB::oms_registering, LBOM::RegisteringObjs(), LBOM::SetRegisteringObjs(), and LocalBarrier::TurnOff().

Referenced by LDRegisteringObjects().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDB::DoneRegisteringObjects ( LDOMHandle  _h  )  [inherited]

Definition at line 210 of file LBDBManager.C.

References LDOMHandle::handle, _LDOMid::id, LDOMHandle::id, _ckGroupID::idx, LBDB::localBarrier, LBDB::oms, LBDB::oms_registering, LBOM::RegisteringObjs(), LBOM::SetRegisteringObjs(), LocalBarrier::TurnOn(), and LBDB::useBarrier.

Referenced by LDDoneRegisteringObjects().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDB::Send ( const LDOMHandle destOM,
const CmiUInt8 destid,
unsigned int  bytes,
int  destObjProc 
) [inherited]

Definition at line 230 of file LBDBManager.C.

References LBCommData::addMessage(), Converse::CkMyPe(), LBDB::commTable, LBCommTable::HashInsertUnique(), LDObjHandle::id, LDOMHandle::id, LDOMidEqual(), LBDB::obj_running, LDObjHandle::omhandle, and LBDB::RunningObj().

Referenced by LDSend().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDB::MulticastSend ( const LDOMHandle destOM,
CmiUInt8 destids,
int  ndests,
unsigned int  bytes,
int  nMsgs 
) [inherited]

Definition at line 254 of file LBDBManager.C.

References LBCommData::addMessage(), LBDB::commTable, LBCommTable::HashInsertUnique(), LDOMHandle::id, LBDB::obj_running, and LBDB::RunningObj().

Referenced by LDMulticastSend().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDB::ClearLoads ( void   )  [inherited]

Definition at line 267 of file LBDBManager.C.

References LBMachineUtil::Clear(), LBDB::commTable, LDObjData::cpuTime, LBObj::data, LBObj::lastCpuTime, LBObj::lastWallTime, LBDB::machineUtil, LBDB::obj_cputime, LBDB::obj_walltime, LBDB::objs, and LDObjData::wallTime.

Referenced by controlPointManager::gotoNextPhase(), and LDClearLoads().

Here is the call graph for this function:

Here is the caller graph for this function:

int LBDB::ObjDataCount (  )  [inherited]

void LBDB::GetObjData ( LDObjData data  )  [inherited]

Definition at line 312 of file LBDBManager.C.

References _lb_args, LBObj::data, CkLBArgs::migObjOnly(), LDObjData::migratable, LBObj::ObjData(), and LBDB::objs.

Referenced by LDGetObjData().

Here is the call graph for this function:

Here is the caller graph for this function:

int LBDB::Migrate ( LDObjHandle  h,
int  dest 
) [inherited]

Definition at line 330 of file LBDBManager.C.

References Converse::CkMyPe(), CmiAbort(), CmiPrintf(), LDObjHandle::handle, LBOM::Migrate(), LBDB::objs, and LBDB::oms.

Referenced by LDMigrate().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDB::MetaLBResumeWaitingChares ( int  lb_ideal_period  )  [inherited]

Definition at line 349 of file LBDBManager.C.

References LBObj::GetLDObjHandle(), h, LDOMHandle::handle, LBOM::MetaLBResumeWaitingChares(), LBDB::objs, LBDB::oms, and LBObj::parentOM().

Referenced by LDOMMetaLBResumeWaitingChares().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDB::MetaLBCallLBOnChares (  )  [inherited]

Definition at line 360 of file LBDBManager.C.

References LBObj::GetLDObjHandle(), h, LDOMHandle::handle, LBOM::MetaLBCallLBOnChares(), LBDB::objs, LBDB::oms, and LBObj::parentOM().

Referenced by LDOMMetaLBCallLBOnChares().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDB::Migrated ( LDObjHandle  h,
int  waitBarrier = 1 
) [inherited]

Definition at line 371 of file LBDBManager.C.

References cb, LBDB::MigrateCB::data, LBDB::MigrateCB::fn, LBDB::migrateCBList, and LBDB::MigrateCB::on.

Referenced by LDMigrated().

Here is the caller graph for this function:

int LBDB::NotifyMigrated ( LDMigratedFn  fn,
void *  data 
) [inherited]

Definition at line 386 of file LBDBManager.C.

References LBDB::MigrateCB::data, LBDB::MigrateCB::fn, LBDB::migrateCBList, and LBDB::MigrateCB::on.

Referenced by LDNotifyMigrated().

Here is the caller graph for this function:

void LBDB::RemoveNotifyMigrated ( int  handle  )  [inherited]

Definition at line 398 of file LBDBManager.C.

References LBDB::migrateCBList.

int LBDB::AddStartLBFn ( LDStartLBFn  fn,
void *  data 
) [inherited]

Definition at line 405 of file LBDBManager.C.

References LBDB::StartLBCB::data, LBDB::StartLBCB::fn, LBDB::StartLBCB::on, LBDB::startLBFn_count, and LBDB::startLBFnList.

Referenced by LDAddStartLBFn().

Here is the caller graph for this function:

void LBDB::RemoveStartLBFn ( LDStartLBFn  fn  )  [inherited]

Definition at line 418 of file LBDBManager.C.

References LBDB::StartLBCB::fn, LBDB::startLBFn_count, and LBDB::startLBFnList.

Referenced by LDRemoveStartLBFn().

Here is the caller graph for this function:

void LBDB::StartLB (  )  [inherited]

Definition at line 431 of file LBDBManager.C.

References CmiAbort(), LBDB::StartLBCB::data, LBDB::StartLBCB::fn, LBDB::StartLBCB::on, LBDB::startLBFn_count, and LBDB::startLBFnList.

Referenced by LDStartLB().

Here is the call graph for this function:

Here is the caller graph for this function:

int LBDB::AddMigrationDoneFn ( LDMigrationDoneFn  fn,
void *  data 
) [inherited]

Definition at line 442 of file LBDBManager.C.

References LBDB::MigrationDoneCB::data, LBDB::MigrationDoneCB::fn, and LBDB::migrationDoneCBList.

Referenced by LDAddMigrationDoneFn().

Here is the caller graph for this function:

void LBDB::RemoveMigrationDoneFn ( LDMigrationDoneFn  fn  )  [inherited]

Definition at line 452 of file LBDBManager.C.

References LBDB::MigrationDoneCB::fn, and LBDB::migrationDoneCBList.

Referenced by LDRemoveMigrationDoneFn().

Here is the caller graph for this function:

void LBDB::MigrationDone ( void   )  [inherited]

Definition at line 463 of file LBDBManager.C.

References LBDB::MigrationDoneCB::data, LBDB::MigrationDoneCB::fn, and LBDB::migrationDoneCBList.

Referenced by LDMigrationDone().

Here is the caller graph for this function:

void LBDB::SetupPredictor ( LDPredictModelFn  on,
LDPredictWindowFn  onWin,
LDPredictFn  off,
LDPredictModelFn  change,
void *  data 
) [inherited]

void LBDB::BackgroundLoad ( LBRealType walltime,
LBRealType cputime 
) [inherited]

Definition at line 480 of file LBDBManager.C.

References LBDB::IdleTime(), LBDB::obj_cputime, LBDB::obj_walltime, and LBDB::TotalTime().

Referenced by LDBackgroundLoad().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDB::GetTime ( LBRealType total_walltime,
LBRealType total_cputime,
LBRealType idletime,
LBRealType bg_walltime,
LBRealType bg_cputime 
) [inherited]

Definition at line 498 of file LBDBManager.C.

References LBDB::IdleTime(), LBDB::obj_cputime, LBDB::obj_walltime, and LBDB::TotalTime().

Referenced by LDGetTime().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBDB::DumpDatabase ( void   )  [inherited]

Definition at line 515 of file LBDBManager.C.

References CmiPrintf(), LBDB::objs, and LBDB::omCount.

Referenced by LDDumpDatabase().

Here is the call graph for this function:

Here is the caller graph for this function:

int LBDB::useMem (  )  [inherited]

Definition at line 523 of file LBDBManager.C.

References LBDB::commTable, CkVec< T >::length(), LBDB::migrateCBList, LBDB::ObjDataCount(), LBDB::oms, size, LBDB::startLBFnList, and LBCommTable::useMem().

Referenced by LDMemusage().

Here is the call graph for this function:

Here is the caller graph for this function:

LDBarrierClient LocalBarrier::AddClient ( LDResumeFn  fn,
void *  data 
) [inherited]

Definition at line 546 of file LBDBManager.C.

References _BgOutOfCoreFlag, LocalBarrier::client_count, LocalBarrier::clients, LocalBarrier::cur_refcount, client::data, client::fn, and client::refcount.

Referenced by LBDB::AddLocalBarrierClient().

Here is the caller graph for this function:

void LocalBarrier::RemoveClient ( LDBarrierClient  h  )  [inherited]

Definition at line 566 of file LBDBManager.C.

References _BgOutOfCoreFlag, LocalBarrier::client_count, LocalBarrier::clients, and LDBarrierClient::i.

Referenced by LBDB::RemoveLocalBarrierClient().

Here is the caller graph for this function:

LDBarrierReceiver LocalBarrier::AddReceiver ( LDBarrierFn  fn,
void *  data 
) [inherited]

Definition at line 583 of file LBDBManager.C.

References receiver::data, receiver::fn, receiver::on, and LocalBarrier::receivers.

Referenced by LBDB::AddLocalBarrierReceiver().

Here is the caller graph for this function:

void LocalBarrier::RemoveReceiver ( LDBarrierReceiver  h  )  [inherited]

Definition at line 593 of file LBDBManager.C.

References LDBarrierReceiver::i, and LocalBarrier::receivers.

Referenced by LBDB::RemoveLocalBarrierReceiver().

Here is the caller graph for this function:

void LocalBarrier::TurnOnReceiver ( LDBarrierReceiver  h  )  [inherited]

Definition at line 599 of file LBDBManager.C.

References LDBarrierReceiver::i, and LocalBarrier::on.

Referenced by LBDB::TurnOnBarrierReceiver().

Here is the caller graph for this function:

void LocalBarrier::TurnOffReceiver ( LDBarrierReceiver  h  )  [inherited]

Definition at line 604 of file LBDBManager.C.

References LDBarrierReceiver::i, and LocalBarrier::on.

Referenced by LBDB::TurnOffBarrierReceiver().

Here is the caller graph for this function:

void LocalBarrier::AtBarrier ( LDBarrierClient  h  )  [inherited]

Definition at line 609 of file LBDBManager.C.

References LocalBarrier::at_count, LocalBarrier::CheckBarrier(), LDBarrierClient::i, and refcount.

Referenced by LBDB::AtLocalBarrier().

Here is the call graph for this function:

Here is the caller graph for this function:

void LocalBarrier::DecreaseBarrier ( LDBarrierClient  h,
int  c 
) [inherited]

Definition at line 616 of file LBDBManager.C.

References LocalBarrier::at_count.

Referenced by LBDB::DecreaseLocalBarrier().

Here is the caller graph for this function:

void LocalBarrier::CheckBarrier (  )  [private, inherited]

Definition at line 621 of file LBDBManager.C.

References LocalBarrier::at_count, LocalBarrier::CallReceivers(), LocalBarrier::client_count, LocalBarrier::clients, LocalBarrier::cur_refcount, and LocalBarrier::on.

Referenced by LocalBarrier::AtBarrier(), and LocalBarrier::TurnOn().

Here is the call graph for this function:

Here is the caller graph for this function:

void LocalBarrier::CallReceivers ( void   )  [private, inherited]

Definition at line 646 of file LBDBManager.C.

References receiver::data, receiver::fn, receiver::on, LocalBarrier::receivers, and LocalBarrier::ResumeClients().

Referenced by LocalBarrier::CheckBarrier().

Here is the call graph for this function:

Here is the caller graph for this function:

void LocalBarrier::ResumeClients ( void   )  [private, inherited]

Definition at line 663 of file LBDBManager.C.

References LocalBarrier::clients.

Referenced by LocalBarrier::CallReceivers(), and LBDB::ResumeClients().

Here is the caller graph for this function:

void LBMachineUtil::IdleStart ( double  curWallTime  )  [inline, private, inherited]

Definition at line 10 of file LBMachineUtil.C.

References LBMachineUtil::start_idle.

Referenced by LBMachineUtil::staticIdleStart().

Here is the caller graph for this function:

void LBMachineUtil::IdleEnd ( double  curWallTime  )  [inline, private, inherited]

Definition at line 15 of file LBMachineUtil.C.

References LBMachineUtil::on, LBMachineUtil::start_idle, LBMachineUtil::state, and LBMachineUtil::total_idletime.

Referenced by LBMachineUtil::staticIdleEnd().

Here is the caller graph for this function:

void LBMachineUtil::staticIdleStart ( LBMachineUtil util,
double  curWallTime 
) [static, private, inherited]

Definition at line 24 of file LBMachineUtil.C.

References LBMachineUtil::IdleStart().

Referenced by LBMachineUtil::StatsOn().

Here is the call graph for this function:

Here is the caller graph for this function:

void LBMachineUtil::staticIdleEnd ( LBMachineUtil util,
double  curWallTime 
) [static, private, inherited]

Definition at line 28 of file LBMachineUtil.C.

References LBMachineUtil::IdleEnd().

Referenced by LBMachineUtil::StatsOn().

Here is the call graph for this function:

Here is the caller graph for this function:

LBMachineUtil::LBMachineUtil (  )  [inherited]

void LBMachineUtil::StatsOn ( void   )  [inherited]

void LBMachineUtil::StatsOff (  )  [inherited]

void LBMachineUtil::Clear ( void   )  [inherited]

void LBMachineUtil::TotalTime ( LBRealType walltime,
LBRealType cputime 
) [inherited]

void LBObj::Clear ( void   )  [inherited]

Definition at line 18 of file LBObj.C.

References LDObjData::cpuTime, LBObj::data, LDObjData::maxWall, LDObjData::minWall, and LDObjData::wallTime.

Referenced by LBObj::LBObj().

Here is the caller graph for this function:

void LBObj::IncrementTime ( LBRealType  walltime,
LBRealType  cputime 
) [inherited]

Definition at line 34 of file LBObj.C.

References LDObjData::cpuTime, LBObj::data, LDObjData::maxWall, LDObjData::minWall, and LDObjData::wallTime.

Referenced by LDObjectStop(), and LDObjTime().

Here is the caller graph for this function:

int LBProfit::profitable ( BaseLB::ProcStats procArray,
int  np 
) [virtual, inherited]

void MetisLB::work ( LDStats *  stats  )  [private, inherited]

========================== INITIALIZATION =============================

============================= STRATEGY ================================

remove duplicate edges from recvFrom

the object load is normalized to an integer between 0 and 256

============================== CLEANUP ================================

Definition at line 26 of file MetisLB.C.

References _lb_args, adjncy, adjwgt, Converse::CkMyPe(), ObjGraph::convertDecisions(), CkLBArgs::debug(), edgecut, int, METIS_OPTION_NUMBERING, METIS_PartGraphRecursive(), METIS_SetDefaultOptions(), ncon, ProcArray::procs, tpwgts, ubvec, ObjGraph::vertices, vsize, vwgt, and xadj.

Here is the call graph for this function:

void NborBaseLB::staticMigrated ( void *  me,
LDObjHandle  h,
int  waitBarrier 
) [static, inherited]

Definition at line 15 of file NborBaseLB.C.

References NborBaseLB::Migrated().

Referenced by NborBaseLB::NborBaseLB().

Here is the call graph for this function:

Here is the caller graph for this function:

void NborBaseLB::staticAtSync ( void *  data  )  [static, inherited]

Definition at line 22 of file NborBaseLB.C.

References NborBaseLB::AtSync().

Referenced by NborBaseLB::NborBaseLB().

Here is the call graph for this function:

Here is the caller graph for this function:

NborBaseLB::NborBaseLB ( const CkLBOptions opt  )  [inherited]

NborBaseLB::~NborBaseLB (  )  [inherited]

void NborBaseLB::FindNeighbors (  )  [private, inherited]

void NborBaseLB::AtSync ( void   )  [inherited]

NLBStatsMsg * NborBaseLB::AssembleStats (  )  [private, inherited]

void NborBaseLB::Migrated ( LDObjHandle  h,
int  waitBarrier 
) [inherited]

Definition at line 225 of file NborBaseLB.C.

References NborBaseLB::migrates_completed, NborBaseLB::migrates_expected, and NborBaseLB::MigrationDone().

Referenced by NborBaseLB::staticMigrated().

Here is the call graph for this function:

Here is the caller graph for this function:

void NborBaseLB::ReceiveStats ( CkMarshalledNLBStatsMessage &&  m  )  [inherited]

void NborBaseLB::ReceiveMigration ( LBMigrateMsg msg  )  [inherited]

void NborBaseLB::MigrationDone ( int  balancing  )  [inherited]

Definition at line 361 of file NborBaseLB.C.

References _lb_args, Converse::CkMyPe(), NborBaseLB::migrates_completed, NborBaseLB::migrates_expected, NborBaseLB::ResumeClients(), and CkLBArgs::syncResume().

Referenced by NborBaseLB::AtSync(), NborBaseLB::Migrated(), and NborBaseLB::ReceiveMigration().

Here is the call graph for this function:

Here is the caller graph for this function:

void NborBaseLB::ResumeClients ( void   )  [inherited]

Definition at line 382 of file NborBaseLB.C.

Referenced by NborBaseLB::MigrationDone().

Here is the caller graph for this function:

void NborBaseLB::ResumeClients ( int  balancing  )  [inherited]

Definition at line 387 of file NborBaseLB.C.

References _lb_args, Converse::CkMyPe(), CkLBArgs::debug(), and NborBaseLB::start_lb_time.

Here is the call graph for this function:

LBMigrateMsg * NborBaseLB::Strategy ( LDStats stats,
int  n_nbrs 
) [protected, virtual, inherited]

Definition at line 403 of file NborBaseLB.C.

References Converse::CkMyPe(), Converse::CkNumPes(), msg, LBMigrateMsg::n_moves, and sizes.

Referenced by NborBaseLB::ReceiveStats().

Here is the call graph for this function:

Here is the caller graph for this function:

int NborBaseLB::NeighborIndex ( int  pe  )  [protected, inherited]

Definition at line 423 of file NborBaseLB.C.

References NborBaseLB::mig_msgs_expected, and NborBaseLB::neighbor_pes.

Referenced by NborBaseLB::ReceiveStats().

Here is the caller graph for this function:

NLBStatsMsg::NLBStatsMsg ( int  osz,
int  csz 
) [inherited]

Definition at line 435 of file NborBaseLB.C.

References NLBStatsMsg::commData, and NLBStatsMsg::objData.

NLBStatsMsg::NLBStatsMsg ( NLBStatsMsg s  )  [inherited]

Definition at line 440 of file NborBaseLB.C.

References buf, p, NLBStatsMsg::pup(), PUP::sizer::size(), and size.

Here is the call graph for this function:

NLBStatsMsg::~NLBStatsMsg (  )  [inherited]

Definition at line 460 of file NborBaseLB.C.

References NLBStatsMsg::commData, and NLBStatsMsg::objData.

void NLBStatsMsg::pup ( PUP::er p  )  [inherited]

CkMarshalledNLBStatsMessage::~CkMarshalledNLBStatsMessage (  )  [inherited]

Definition at line 489 of file NborBaseLB.C.

References CkMarshalledNLBStatsMessage::msg.

void CkMarshalledNLBStatsMessage::pup ( PUP::er p  )  [inherited]

Definition at line 493 of file NborBaseLB.C.

References PUP::er::isPacking(), PUP::er::isUnpacking(), CkMarshalledNLBStatsMessage::msg, and NLBStatsMsg::pup().

Here is the call graph for this function:

LBMigrateMsg * NeighborCommLB::Strategy ( NborBaseLB::LDStats stats,
int  n_nbrs 
) [private, inherited]

LBMigrateMsg * NeighborLB::Strategy ( NborBaseLB::LDStats stats,
int  n_nbrs 
) [private, inherited]

void NullLB::init ( void   )  [private, inherited]

Definition at line 59 of file NullLB.C.

References CmiMyRank(), NullLB::staticAtSync(), and staticStartLB().

Referenced by NullLB::NullLB(), and NullLB::pup().

Here is the call graph for this function:

Here is the caller graph for this function:

NullLB::~NullLB (  )  [inherited]

Definition at line 73 of file NullLB.C.

References _lbdb, and staticStartLB().

Here is the call graph for this function:

void NullLB::staticAtSync ( void *  data  )  [static, inherited]

if there is other LBs, just ignore return

Definition at line 83 of file NullLB.C.

References NullLB::AtSync().

Referenced by NullLB::init().

Here is the call graph for this function:

Here is the caller graph for this function:

void NullLB::AtSync ( void   )  [inherited]

Definition at line 95 of file NullLB.C.

References _migDoneHandle, CkAllocSysMsg(), Converse::CkMyPe(), Converse::CmiSyncSendAndFree(), envelope::getTotalsize(), and UsrToEnv().

Referenced by NullLB::staticAtSync().

Here is the call graph for this function:

Here is the caller graph for this function:

void NullLB::migrationsDone ( void   )  [inherited]

Definition at line 118 of file NullLB.C.

Referenced by migrationDone().

Here is the caller graph for this function:

ObjGraph::ObjGraph ( int  count,
BaseLB::LDStats stats 
) [inherited]

ObjGraph::~ObjGraph (  )  [inline, inherited]

Definition at line 163 of file ckgraph.h.

double ObjGraph::EdgeWeight ( Edge e  )  [inherited]

Definition at line 136 of file ObjGraph.C.

References alpha, beta, _LDCommData::bytes, ObjGraph::Edge::index, and _LDCommData::messages.

int ObjGraph::calc_hashval ( LDOMid  omid,
CmiUInt8  id 
) [private, inherited]

Definition at line 141 of file ObjGraph.C.

References ObjGraph::hash_max, _LDOMid::id, _ckGroupID::idx, and int.

Referenced by ObjGraph::find_node(), and ObjGraph::ObjGraph().

Here is the caller graph for this function:

ObjGraph::Node * ObjGraph::find_node ( const LDObjKey edge_key  )  [private, inherited]

Definition at line 148 of file ObjGraph.C.

References ObjGraph::calc_hashval(), ObjGraph::Node::index, LDOMidEqual(), ObjGraph::node_table, ObjGraph::Node::nxt_hash, _LDObjKey::objID(), and _LDObjKey::omID().

Referenced by ObjGraph::ObjGraph().

Here is the call graph for this function:

Here is the caller graph for this function:

OrbLB::OrbLB ( const CkLBOptions opt,
bool  userdata 
) [inherited]

Definition at line 34 of file OrbLB.C.

References Converse::CkMyPe(), OrbLB::init(), quietModeRequested, and OrbLB::use_udata.

Here is the call graph for this function:

OrbLB::OrbLB ( const CkLBOptions opt  )  [inherited]

Definition at line 42 of file OrbLB.C.

References Converse::CkMyPe(), OrbLB::init(), and OrbLB::use_udata.

Here is the call graph for this function:

bool OrbLB::QueryBalanceNow ( int  step  )  [inherited]

Definition at line 50 of file OrbLB.C.

void OrbLB::rec_divide ( int  n,
Partition p 
) [private, inherited]

void OrbLB::setVal ( int  x,
int  y,
int  z 
) [private, inherited]

Definition at line 176 of file OrbLB.C.

References CmiPrintf(), OrbLB::computeLoad, OrbLB::nObjs, tv, OrbLB::ComputeLoad::tv, and OrbLB::ComputeLoad::v.

Referenced by OrbLB::quicksort().

Here is the call graph for this function:

Here is the caller graph for this function:

int OrbLB::sort_partition ( int  x,
int  p,
int  r 
) [private, inherited]

Definition at line 192 of file OrbLB.C.

References CmiAbort(), OrbLB::computeLoad, OrbLB::VecArray::id, tv, OrbLB::ComputeLoad::tv, and OrbLB::vArray.

Referenced by OrbLB::qsort().

Here is the call graph for this function:

Here is the caller graph for this function:

void OrbLB::qsort ( int  x,
int  p,
int  r 
) [private, inherited]

Definition at line 217 of file OrbLB.C.

References OrbLB::sort_partition().

Referenced by OrbLB::quicksort().

Here is the call graph for this function:

Here is the caller graph for this function:

void OrbLB::quicksort ( int  x  )  [private, inherited]

Definition at line 227 of file OrbLB.C.

References CmiPrintf(), OrbLB::computeLoad, OrbLB::nObjs, OrbLB::qsort(), OrbLB::setVal(), tv, and OrbLB::vArray.

Referenced by OrbLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void OrbLB::mapPartitionsToNodes (  )  [private, inherited]

Definition at line 242 of file OrbLB.C.

References _lb_args, OrbLB::Partition::bkpes, CmiPrintf(), OrbLB::computeLoad, count, CkLBArgs::debug(), CkLBArgs::ignoreBgLoad(), index, OrbLB::Partition::mapped, n, OrbLB::Partition::node, OrbLB::npartition, OrbLB::P, OrbLB::partitions, OrbLB::refno, and OrbLB::statsData.

Referenced by OrbLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void OrbLB::work ( LDStats *  stats  )  [inherited]

bool PhasebyArrayLB::QueryBalanceNow ( int  step  )  [private, inherited]

Definition at line 36 of file PhasebyArrayLB.C.

void PhasebyArrayLB::copyStats ( BaseLB::LDStats stats,
BaseLB::LDStats tempStats 
) [private, inherited]

void PhasebyArrayLB::updateStats ( BaseLB::LDStats stats,
BaseLB::LDStats tempStats 
) [private, inherited]

Definition at line 72 of file PhasebyArrayLB.C.

References BaseLB::LDStats::hashSize, BaseLB::LDStats::n_objs, BaseLB::LDStats::objData, and BaseLB::LDStats::objHash.

Referenced by PhasebyArrayLB::work().

Here is the caller graph for this function:

void PhasebyArrayLB::work ( LDStats *  stats  )  [private, inherited]

bool RandCentLB::QueryBalanceNow ( int  step  )  [private, inherited]

Definition at line 25 of file RandCentLB.C.

void RandCentLB::work ( LDStats *  stats  )  [inherited]

Definition at line 35 of file RandCentLB.C.

References _lb_args, chooseProc(), Converse::CkMyPe(), CmiAbort(), CkLBArgs::debug(), dest, and LDObjData::migratable.

Here is the call graph for this function:

void BQueue::removeComplete ( Vertex vert  )  [inherited]

Definition at line 131 of file RecBipartLB.C.

References Vertex::getVertexId(), BQueue::q, and vhelpers.

Referenced by removeinSwap().

Here is the call graph for this function:

Here is the caller graph for this function:

void BQueue::push ( Vertex vert  )  [inherited]

Definition at line 149 of file RecBipartLB.C.

References Vertex::getVertexId(), BQueue::q, and vhelpers.

Referenced by adjustqueues(), RecursiveBiPart(), removeinSwap(), and swapQ1toQ2().

Here is the call graph for this function:

Here is the caller graph for this function:

RecBipartLB::RecBipartLB ( const CkLBOptions opt  )  [inherited]

Definition at line 157 of file RecBipartLB.C.

References Converse::CkMyPe(), and quietModeRequested.

Here is the call graph for this function:

bool RecBipartLB::QueryBalanceNow ( int  _step  )  [private, inherited]

Definition at line 163 of file RecBipartLB.C.

void RecBipartLB::work ( LDStats *  stats  )  [inherited]

========================== INITIALIZATION =============================

============================= STRATEGY ================================

============================== CLEANUP ================================

Definition at line 167 of file RecBipartLB.C.

References Converse::CkNumPes(), ObjGraph::convertDecisions(), ProcArray::getAverageLoad(), level, numparts, peno, ProcArray::procs, RecursiveBiPart(), ProcArray::resetTotalLoad(), TOTALLOAD, ObjGraph::vertices, and vhelpers.

Here is the call graph for this function:

bool RecBisectBfLB::QueryBalanceNow ( int  step  )  [private, inherited]

Definition at line 51 of file RecBisectBfLB.C.

void RecBisectBfLB::work ( LDStats *  stats  )  [private, inherited]

Graph * RecBisectBfLB::convertGraph ( ObjGraph og  )  [private, inherited]

void RecBisectBfLB::partitionInTwo ( Graph g,
int  nodes[],
int  numNodes,
int **  pp1,
int numP1,
int **  pp2,
int numP2,
int  ratio1,
int  ratio2 
) [private, inherited]

Definition at line 156 of file RecBisectBfLB.C.

References RecBisectBfLB::addToQ(), bvset_enumerate(), bvset_size(), destroySet(), CkQ< T >::enq(), graph_weightof(), makeEmptySet(), makeSet(), Graph::V, and PUP::w.

Referenced by RecBisectBfLB::recursivePartition().

Here is the call graph for this function:

Here is the caller graph for this function:

int RecBisectBfLB::findNextUnassigned ( int  max,
BV_Set all,
BV_Set s1,
BV_Set s2 
) [private, inherited]

Definition at line 224 of file RecBisectBfLB.C.

References bvset_find().

Referenced by RecBisectBfLB::addToQ().

Here is the call graph for this function:

Here is the caller graph for this function:

float RecBisectBfLB::addToQ ( IntQueue q,
Graph g,
BV_Set all,
BV_Set s1,
BV_Set s2 
) [private, inherited]

Definition at line 236 of file RecBisectBfLB.C.

References bvset_find(), bvset_insert(), CkQ< T >::deq(), CkQ< T >::enq(), RecBisectBfLB::enqChildren(), RecBisectBfLB::findNextUnassigned(), graph_weightof(), CkQ< T >::isEmpty(), V, and Graph::V.

Referenced by RecBisectBfLB::partitionInTwo().

Here is the call graph for this function:

Here is the caller graph for this function:

void RecBisectBfLB::enqChildren ( IntQueue q,
Graph g,
BV_Set all,
BV_Set s1,
BV_Set s2,
int  node 
) [private, inherited]

Definition at line 261 of file RecBisectBfLB.C.

References bvset_find(), CkQ< T >::enq(), g_getNeighbor(), and g_numNeighbors().

Referenced by RecBisectBfLB::addToQ().

Here is the call graph for this function:

Here is the caller graph for this function:

void RecBisectBfLB::addPartition ( PartitionList partitions,
int nodes,
int  num 
) [private, inherited]

Definition at line 277 of file RecBisectBfLB.C.

References PartitionList::next, PartitionRecord::nodeArray, PartitionList::partitions, and PartitionRecord::size.

Referenced by RecBisectBfLB::recursivePartition().

Here is the caller graph for this function:

void RecBisectBfLB::printPartitions ( PartitionList partitions  )  [private, inherited]

Definition at line 287 of file RecBisectBfLB.C.

References CmiPrintf(), PartitionList::max, PartitionRecord::nodeArray, PartitionList::partitions, and PartitionRecord::size.

Here is the call graph for this function:

void RecBisectBfLB::recursivePartition ( int  numParts,
Graph g,
int  nodes[],
int  numNodes,
PartitionList partitions 
) [private, inherited]

Definition at line 301 of file RecBisectBfLB.C.

References RecBisectBfLB::addPartition(), free(), and RecBisectBfLB::partitionInTwo().

Referenced by RecBisectBfLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

bool RefineCommLB::QueryBalanceNow ( int  step  )  [private, inherited]

Definition at line 21 of file RefineCommLB.C.

void RefineCommLB::work ( LDStats *  stats  )  [private, inherited]

Definition at line 26 of file RefineCommLB.C.

References Refiner::AllocProcs(), Refiner::FreeProcs(), and RefinerComm::Refine().

Here is the call graph for this function:

void RefineKLB::work ( LDStats *  stats  )  [inherited]

Definition at line 25 of file RefineKLB.C.

References _lb_args, Refiner::AllocProcs(), Refiner::FreeProcs(), CkLBArgs::percentMovesAllowed(), RefineKLB::performGreedyMoves(), and RefinerApprox::Refine().

Here is the call graph for this function:

void RefineKLB::performGreedyMoves ( int  count,
BaseLB::LDStats stats,
int from_procs,
int to_procs,
int  numMoves 
) [protected, inherited]

Definition at line 97 of file RefineKLB.C.

References c, maxHeap::deleteMax(), minHeap::deleteMin(), InfoRecord::Id, minHeap::insert(), maxHeap::insert(), InfoRecord::load, BaseLB::LDStats::n_objs, BaseLB::LDStats::objData, and BaseLB::LDStats::procs.

Referenced by RefineKLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void RefineLB::work ( LDStats *  stats  )  [inherited]

int * Refiner::AllocProcs ( int  count,
BaseLB::LDStats stats 
) [static, inherited]

This code is derived from RefineLB.C, and RefineLB.C should be rewritten to use this, so there is no code duplication.

Definition at line 12 of file Refiner.C.

References BaseLB::LDStats::n_objs.

Referenced by RefineLB::work(), RefineKLB::work(), and RefineCommLB::work().

Here is the caller graph for this function:

void Refiner::FreeProcs ( int bufs  )  [static, inherited]

Definition at line 17 of file Refiner.C.

Referenced by RefineLB::work(), RefineKLB::work(), and RefineCommLB::work().

Here is the caller graph for this function:

void Refiner::create ( int  count,
BaseLB::LDStats stats,
int cur_p 
) [protected, inherited]

void Refiner::assign ( computeInfo c,
int  p 
) [protected, inherited]

Reimplemented in RefinerComm.

Definition at line 65 of file Refiner.C.

References Refiner::processors.

Referenced by Refiner::multirefine(), RefinerApprox::Refine(), RefinerApprox::refine(), Refiner::Refine(), Refiner::refine(), RefinerApprox::reinitAssignment(), and Refiner::removeComputes().

Here is the caller graph for this function:

void Refiner::assign ( computeInfo c,
processorInfo p 
) [protected, inherited]

void Refiner::deAssign ( computeInfo c,
processorInfo pRec 
) [protected, inherited]

double Refiner::computeAverageLoad (  )  [inherited]

Definition at line 88 of file Refiner.C.

References Refiner::averageLoad, and Refiner::computeAverage().

Referenced by RefineLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

void Refiner::computeAverage (  )  [protected, virtual, inherited]

double Refiner::computeMax (  )  [inherited]

Definition at line 106 of file Refiner.C.

References InfoRecord::load, max(), Refiner::P, and Refiner::processors.

Referenced by RefinerApprox::multirefine(), Refiner::multirefine(), and RefineLB::work().

Here is the call graph for this function:

Here is the caller graph for this function:

bool Refiner::isHeavy ( processorInfo p  )  [protected, inherited]

Definition at line 117 of file Refiner.C.

References processorInfo::available, Refiner::averageLoad, processorInfo::computeSet, InfoRecord::load, Set::numElements(), and Refiner::overLoad.

Referenced by RefinerComm::refine(), and Refiner::refine().

Here is the call graph for this function:

Here is the caller graph for this function:

bool Refiner::isLight ( processorInfo p  )  [protected, inherited]

Definition at line 126 of file Refiner.C.

References processorInfo::available, Refiner::averageLoad, and InfoRecord::load.

Referenced by RefinerComm::refine(), and Refiner::refine().

Here is the caller graph for this function:

void Refiner::removeComputes (  )  [protected, inherited]

Definition at line 135 of file Refiner.C.

References Refiner::assign(), c, CmiAbort(), Refiner::deAssign(), Iterator::id, Refiner::numAvail, Refiner::P, and Refiner::processors.

Referenced by RefinerComm::Refine(), RefinerApprox::Refine(), and Refiner::Refine().

Here is the call graph for this function:

Here is the caller graph for this function:

int Refiner::refine (  )  [protected, virtual, inherited]

int Refiner::multirefine ( bool  reset = 1  )  [protected, inherited]

void Refiner::Refine ( int  count,
BaseLB::LDStats stats,
int cur_p,
int new_p 
) [inherited]

void RefinerComm::create ( int  count,
BaseLB::LDStats _stats,
int cur_p 
) [private, inherited]

This code is derived from RefineLB.C, and RefineLB.C should be rewritten to use this, so there is no code duplication.

Reimplemented from Refiner.

Definition at line 15 of file RefinerComm.C.

References comm, Refiner::computes, Refiner::create(), _LDCommData::from_proc(), _LDCommDesc::get_type(), Refiner::numComputes, CkVec< T >::push_back(), _LDCommData::receiver, computeInfo::recvmessages, and computeInfo::sendmessages.

Referenced by RefinerComm::Refine().

Here is the call graph for this function:

Here is the caller graph for this function:

void RefinerComm::computeAverage (  )  [private, virtual, inherited]

Reimplemented from Refiner.

Definition at line 41 of file RefinerComm.C.

References Refiner::averageLoad, processorInfo::backgroundLoad, RefinerComm::commTable, Refiner::computes, Refiner::numAvail, Refiner::numComputes, RefinerComm::CommTable::overheadOnPe(), Refiner::P, and Refiner::processors.

Referenced by RefinerComm::Refine(), and RefinerComm::refine().

Here is the call graph for this function:

Here is the caller graph for this function:

void RefinerComm::processorCommCost (  )  [private, inherited]

Definition at line 58 of file RefinerComm.C.

References _lb_args, RefinerComm::commTable, Refiner::computes, _LDCommData::from_proc(), idx, RefinerComm::CommTable::increase(), CkLBArgs::migObjOnly(), computeInfo::oldProcessor, and _LDCommData::src_proc.

Referenced by RefinerComm::Refine().

Here is the call graph for this function:

Here is the caller graph for this function:

void RefinerComm::assign ( computeInfo c,
int  p 
) [private, inherited]

Reimplemented from Refiner.

Definition at line 117 of file RefinerComm.C.

References Refiner::processors.

Referenced by RefinerComm::Refine(), and RefinerComm::refine().

Here is the caller graph for this function:

void RefinerComm::assign ( computeInfo c,
processorInfo p 
) [private, inherited]

void RefinerComm::deAssign ( computeInfo c,
processorInfo pRec 
) [private, inherited]

void RefinerComm::commAffinity ( int  c,
int  pe,
Messages m 
) [private, inherited]

void RefinerComm::objCommCost ( int  c,
int  pe,
Messages m 
) [private, inherited]

int RefinerComm::refine (  )  [private, virtual, inherited]

void RefinerComm::Refine ( int  count,
BaseLB::LDStats stats,
int cur_p,
int new_p 
) [inherited]

RefinerComm::CommTable::CommTable ( int  p  )  [inherited]

RefinerComm::CommTable::~CommTable (  )  [inherited]

void RefinerComm::CommTable::clear (  )  [inherited]

void RefinerComm::CommTable::increase ( bool  issend,
int  pe,
int  msgs,
int  bytes 
) [inherited]

double RefinerComm::CommTable::overheadOnPe ( int  pe  )  [inherited]

int * RefinerTemp::AllocProcs ( int  count,
BaseLB::LDStats stats 
) [static, inherited]

This code is derived from RefineLB.C, and RefineLB.C should be rewritten to use this, so there is no code duplication.

Definition at line 12 of file RefinerTemp.C.

References BaseLB::LDStats::n_objs.

Referenced by TempAwareRefineLB::work().

Here is the caller graph for this function:

void RefinerTemp::FreeProcs ( int bufs  )  [static, inherited]

Definition at line 17 of file RefinerTemp.C.

Referenced by TempAwareRefineLB::work().

Here is the caller graph for this function:

void RefinerTemp::create ( int  count,
BaseLB::LDStats stats,
int cur_p 
) [protected, inherited]

void RefinerTemp::assign ( computeInfo c,
int  p 
) [protected, inherited]

Definition at line 68 of file RefinerTemp.C.

References RefinerTemp::processors.

Referenced by RefinerTemp::Refine(), RefinerTemp::refine(), and RefinerTemp::removeComputes().

Here is the caller graph for this function:

void RefinerTemp::assign ( computeInfo c,
processorInfo p 
) [protected, inherited]

void RefinerTemp::deAssign ( computeInfo c,
processorInfo pRec 
) [protected, inherited]

Definition at line 87 of file RefinerTemp.C.

References processorInfo::backgroundLoad, processorInfo::computeLoad, processorInfo::computeSet, InfoRecord::Id, InfoRecord::load, computeInfo::oldProcessor, computeInfo::processor, RefinerTemp::procFreq, and Set::remove().

Referenced by RefinerTemp::refine(), and RefinerTemp::removeComputes().

Here is the call graph for this function:

Here is the caller graph for this function:

void RefinerTemp::computeAverage (  )  [protected, virtual, inherited]

double RefinerTemp::computeMax (  )  [protected, inherited]

Definition at line 110 of file RefinerTemp.C.

References InfoRecord::Id, InfoRecord::load, max(), RefinerTemp::P, RefinerTemp::processors, and RefinerTemp::procFreqNew.

Referenced by RefinerTemp::multirefine().

Here is the call graph for this function:

Here is the caller graph for this function:

double RefinerTemp::computeMax ( int maxPe  )  [protected, inherited]

Definition at line 122 of file RefinerTemp.C.

References InfoRecord::Id, InfoRecord::load, max(), RefinerTemp::P, RefinerTemp::processors, and RefinerTemp::procFreqNew.

Here is the call graph for this function:

bool RefinerTemp::isHeavy ( processorInfo p  )  [protected, inherited]

Definition at line 140 of file RefinerTemp.C.

References processorInfo::available, processorInfo::computeSet, InfoRecord::Id, InfoRecord::load, Set::numElements(), RefinerTemp::overLoad, RefinerTemp::procFreqNew, RefinerTemp::sumFreqs, and RefinerTemp::totalInst.

Referenced by RefinerTemp::refine().

Here is the call graph for this function:

Here is the caller graph for this function:

bool RefinerTemp::isLight ( processorInfo p  )  [protected, inherited]

Definition at line 150 of file RefinerTemp.C.

References processorInfo::available, InfoRecord::Id, InfoRecord::load, RefinerTemp::procFreqNew, RefinerTemp::sumFreqs, and RefinerTemp::totalInst.

Referenced by RefinerTemp::refine().

Here is the caller graph for this function:

void RefinerTemp::removeComputes (  )  [protected, inherited]

Definition at line 160 of file RefinerTemp.C.

References RefinerTemp::assign(), c, CmiAbort(), RefinerTemp::deAssign(), Iterator::id, RefinerTemp::numAvail, RefinerTemp::P, and RefinerTemp::processors.

Referenced by RefinerTemp::Refine().

Here is the call graph for this function:

Here is the caller graph for this function:

int RefinerTemp::refine (  )  [protected, virtual, inherited]

int RefinerTemp::multirefine (  )  [protected, inherited]

RefinerTemp::RefinerTemp ( double  _overload,
int p,
int pn,
int  i 
) [inherited]

void RefinerTemp::Refine ( int  count,
BaseLB::LDStats stats,
int cur_p,
int new_p 
) [inherited]

bool RefineSwapLB::QueryBalanceNow ( int  step  )  [private, inherited]

Definition at line 35 of file RefineSwapLB.C.

void RefineSwapLB::work ( LDStats *  stats  )  [inherited]

========================== INITIALIZATION =============================

============================= STRATEGY ================================

============================== CLEANUP ================================

Definition at line 248 of file RefineSwapLB.C.

References _lb_args, Converse::CkMyPe(), ObjGraph::convertDecisions(), CkLBArgs::debug(), endl(), ProcArray::getAverageLoad(), getMax(), ProcArray::procs, refine(), refineSwap(), and ObjGraph::vertices.

Here is the call graph for this function:

bool ScotchLB::QueryBalanceNow ( int  _step  )  [private, inherited]

Definition at line 28 of file ScotchLB.C.

void ScotchLB::work ( LDStats *  stats  )  [inherited]

========================== INITIALIZATION =============================

============================= STRATEGY ================================

remove duplicate edges from recvFrom

the object load is normalized to an integer between 0 and 256

============================== CLEANUP ================================

Definition at line 32 of file ScotchLB.C.

References CmiWallTimer(), ObjGraph::convertDecisions(), free(), int, malloc(), ProcArray::procs, start_time, and ObjGraph::vertices.

Here is the call graph for this function:

bool ScotchRefineLB::QueryBalanceNow ( int  _step  )  [private, inherited]

Definition at line 25 of file ScotchRefineLB.C.

void ScotchRefineLB::work ( LDStats *  stats  )  [inherited]

========================== INITIALIZATION =============================

============================= STRATEGY ================================

remove duplicate edges from recvFrom

the object load is normalized to an integer between 0 and 256

============================== CLEANUP ================================

Definition at line 29 of file ScotchRefineLB.C.

References ObjGraph::convertDecisions(), free(), int, malloc(), ProcArray::procs, and ObjGraph::vertices.

Here is the call graph for this function:

bool ScotchTopoLB::QueryBalanceNow ( int  _step  )  [private, inherited]

Definition at line 29 of file ScotchTopoLB.C.

void ScotchTopoLB::work ( LDStats *  stats  )  [inherited]

========================== INITIALIZATION =============================

============================= STRATEGY ================================

remove duplicate edges from recvFrom

the object load is normalized to an integer between 0 and 256

============================== CLEANUP ================================

Definition at line 33 of file ScotchTopoLB.C.

References CmiWallTimer(), ObjGraph::convertDecisions(), free(), TopoManager::getDimNX(), TopoManager::getDimNY(), TopoManager::getDimNZ(), int, malloc(), ProcArray::procs, start_time, tmgr, and ObjGraph::vertices.

Here is the call graph for this function:

void TeamLB::work ( LDStats *  stats  )  [inherited]

METIS function that performs a balanced k-way partitioning of the graph, considering the communication volume (hence the "V" in the name of the function).

extern "C" void METIS_PartGraphRecursive(int*, int*, int*, int*, int*, int*, int*, int*, int*, int*, int*); Load balancing function. It uses METIS in a two step approach. The first step consists in splitting the objects into teams. METIS is able to minimize the communication volume across the teams while balancing the load among the different teams. The second step goes deep in each team to balance the load in the processors belonging to that particular team.

========================== INITIALIZATION =============================

============================= STRATEGY ================================

both object load and number of bytes exchanged are normalized to an integer between 0 and 256

============================== CLEANUP ================================

Definition at line 47 of file TeamLB.C.

References _lb_args, adjncy, adjwgt, Converse::CkMyPe(), ObjGraph::convertDecisions(), CkLBArgs::debug(), edgecut, int, mapping, METIS_OPTION_NUMBERING, METIS_PartGraphRecursive(), METIS_SetDefaultOptions(), ncon, TeamLB::numberTeams, TeamLB::teamSize, tpwgts, ubvec, ObjGraph::vertices, vsize, vwgt, and xadj.

Here is the call graph for this function:

bool TempAwareGreedyLB::QueryBalanceNow ( int  step  )  [private, inherited]

Definition at line 31 of file TempAwareGreedyLB.C.

void TempAwareGreedyLB::work ( LDStats *  stats  )  [inherited]

========================== INITIALIZATION =============================

============================= STRATEGY ================================

============================== CLEANUP ================================

Definition at line 51 of file TempAwareGreedyLB.C.

References _lb_args, Converse::CkMyPe(), ObjGraph::convertDecisions(), CkLBArgs::debug(), ProcInfo::getProcId(), p, ProcArray::procs, ProcArray::resetTotalLoad(), sort(), ProcInfo::totalLoad(), and ObjGraph::vertices.

Here is the call graph for this function:

float TempAwareRefineLB::getTemp ( int  cpu  )  [inherited]

Definition at line 55 of file TempAwareRefineLB.C.

Referenced by printCurrentTemperature().

Here is the caller graph for this function:

TempAwareRefineLB::TempAwareRefineLB ( const CkLBOptions opt  )  [inherited]

void TempAwareRefineLB::populateEffectiveFreq ( int  numProcs  )  [inherited]

bool TempAwareRefineLB::QueryBalanceNow ( int  step  )  [private, inherited]

Definition at line 233 of file TempAwareRefineLB.C.

void TempAwareRefineLB::changeFreq ( int  nFreq  )  [inherited]

Definition at line 239 of file TempAwareRefineLB.C.

References Converse::CkMyPe(), and cpufreq_sysfs_write().

Here is the call graph for this function:

void TempAwareRefineLB::work ( LDStats *  stats  )  [inherited]

bool TreeMatchLB::QueryBalanceNow ( int  step  )  [private, inherited]

Definition at line 26 of file TreeMatchLB.C.

void TreeMatchLB::work ( BaseLB::LDStats stats  )  [inherited]

========================= 1st Do Load Balancing =======================

========================== INITIALIZATION =============================

============================= STRATEGY ================================

============================== CLEANUP ================================

====================== 2nd do Topology aware mapping ====================

Definition at line 67 of file TreeMatchLB.C.

References _lb_args, build_abe_topology(), build_tree_from_topology(), _LDCommData::bytes, calloc(), Converse::CkMyPe(), BaseLB::LDStats::commData, ObjGraph::convertDecisions(), CkLBArgs::debug(), display_topology(), free(), free_topology(), _LDCommData::from_proc(), _LDCommDesc::get_destObj(), BaseLB::LDStats::getHash(), ProcInfo::getProcId(), CkVec< T >::getVec(), BaseLB::LDStats::makeCommHash(), malloc(), map_topology_simple(), BaseLB::LDStats::n_comm, BaseLB::LDStats::nprocs(), p, ProcArray::procs, _LDCommData::receiver, _LDCommData::recv_type(), ProcArray::resetTotalLoad(), _LDCommData::sender, sort(), BaseLB::LDStats::to_proc, ProcInfo::totalLoad(), and ObjGraph::vertices.

Here is the call graph for this function:

void WSLB::staticAtSync ( void *  data  )  [static, inherited]

Definition at line 34 of file WSLB.C.

References WSLB::AtSync().

Referenced by WSLB::WSLB().

Here is the call graph for this function:

Here is the caller graph for this function:

WSLB::WSLB ( const CkLBOptions opt  )  [inherited]

WSLB::~WSLB (  )  [inherited]

Definition at line 91 of file WSLB.C.

References _lbdb, WSLB::mig_msgs, WSLB::neighbor_pes, WSLB::statsDataList, and WSLB::statsMsgsList.

void WSLB::FindNeighbors (  )  [private, inherited]

Definition at line 108 of file WSLB.C.

References Converse::CkMyPe(), LBTopology::max_neighbors(), maxneighbors, WSLB::mig_msgs, WSLB::mig_msgs_expected, WSLB::neighbor_pes, LBTopology::neighbors(), WSLB::statsDataList, WSLB::statsMsgsList, and WSLB::topo.

Referenced by WSLB::AtSync(), WSLB::ReceiveMigration(), and WSLB::ReceiveStats().

Here is the call graph for this function:

Here is the caller graph for this function:

void WSLB::AtSync ( void   )  [inherited]

Definition at line 126 of file WSLB.C.

References WSLB::AssembleStats(), Converse::CkMyPe(), WSLB::FindNeighbors(), WSLB::mig_msgs_expected, WSLB::MigrationDone(), msg, WSLB::neighbor_pes, WSLB::QueryBalanceNow(), WSLB::ReceiveStats(), WSLB::start_lb_time, and WSLB::step().

Referenced by WSLB::staticAtSync().

Here is the call graph for this function:

Here is the caller graph for this function:

WSLBStatsMsg * WSLB::AssembleStats (  )  [private, inherited]

void WSLB::Migrated ( LDObjHandle  h,
int  waitBarrier 
) [inherited]

Definition at line 235 of file WSLB.C.

References WSLB::migrates_completed, WSLB::migrates_expected, and WSLB::MigrationDone().

Referenced by CreateLBFunc_Def().

Here is the call graph for this function:

Here is the caller graph for this function:

void WSLB::ReceiveStats ( WSLBStatsMsg m  )  [inherited]

void WSLB::ReceiveMigration ( LBMigrateMsg msg  )  [inherited]

void WSLB::MigrationDone ( void   )  [inherited]

Definition at line 367 of file WSLB.C.

References Converse::CkMyPe(), WSLB::migrates_completed, WSLB::migrates_expected, WSLB::mystep, WSLB::start_lb_time, and WSLB::step().

Referenced by WSLB::AtSync(), WSLB::Migrated(), and WSLB::ReceiveMigration().

Here is the call graph for this function:

Here is the caller graph for this function:

void WSLB::ResumeClients ( void   )  [inherited]

Definition at line 383 of file WSLB.C.

bool WSLB::QueryBalanceNow ( int  step  )  [protected, virtual, inherited]

Definition at line 390 of file WSLB.C.

References Converse::CkMyPe(), WSLB::first_step_time, and WSLB::vacate.

Referenced by WSLB::AtSync().

Here is the call graph for this function:

Here is the caller graph for this function:

LBMigrateMsg * WSLB::Strategy ( WSLB::LDStats stats,
int  count 
) [protected, virtual, inherited]

void ZoltanLB::work ( LDStats *  stats  )  [private, inherited]

========================== INITIALIZATION =============================

============================= STRATEGY ================================

remove duplicate edges from recvFrom

the object load is normalized to an integer between 0 and 256

Definition at line 68 of file ZoltanLB.C.

References _lb_args, Converse::CkMyPe(), ObjGraph::convertDecisions(), CkLBArgs::debug(), McastSrc::destList, HGRAPH_DATA::edgeGID, HGRAPH_DATA::edgWgt, free(), get_hypergraph(), get_hypergraph_edge_size(), get_hypergraph_edge_wgts(), get_hypergraph_size(), get_number_of_vertices(), get_vertex_list(), index, int, malloc(), HGRAPH_DATA::nborGID, HGRAPH_DATA::nborIndex, HGRAPH_DATA::numAllNbors, HGRAPH_DATA::numMyHEdges, HGRAPH_DATA::numMyVertices, HGRAPH_DATA::ogr, HGRAPH_DATA::parr, ProcArray::procs, ObjGraph::vertices, HGRAPH_DATA::vtxGID, and HGRAPH_DATA::vtxWgt.

Here is the call graph for this function:


Variable Documentation

const unsigned int doublingPrimes[] [static]

Definition at line 78 of file BaseLB.C.

Referenced by primeLargerThan().

Definition at line 243 of file ckcausalmlog.C.

Referenced by _distributedLocationHandler(), and CentralLB::ResumeClients().

Definition at line 21 of file manager.C.

Referenced by manager_init(), and CentralLB::WillIbekilled().

Cluster Manager Code, Accepts external bit vectors and then feeds it into the loadbalancer so that programs can shrink and expand.

Definition at line 17 of file manager.C.

Definition at line 18 of file manager.C.

Referenced by handler(), and CentralLB::ResumeFromReallocCheckpoint().

int mynewpe = 0

Definition at line 47 of file CentralLB.C.

Referenced by CentralLB::WillIbekilled().

Definition at line 184 of file init.C.

Referenced by _parseCommandLineOpts(), and CentralLB::CheckForRealloc().

Definition at line 52 of file CentralLB.C.

Definition at line 53 of file CentralLB.C.

Definition at line 54 of file CentralLB.C.

Referenced by handler(), and CentralLB::initLB().

Definition at line 693 of file CentralLB.C.

Definition at line 52 of file CentralLB.C.

Definition at line 49 of file CommAwareRefineLB.C.

Referenced by PrintProcLoad(), and CommAwareRefineLB::work().

Definition at line 50 of file CommAwareRefineLB.C.

Referenced by PrintProcLoad(), and CommAwareRefineLB::work().

Author: jjgalvez@illinois.edu (Juan Galvez) Greedy algorithm to minimize cpu max_load and object migrations.

Can find solution equal or close to regular Greedy with less (sometimes much less) migrations. The amount of migrations that the user can tolerate is passed via the command-line option +LBPercentMoves (as percentage of chares that can be moved).

If LBPercentMoves is not passed, strategy assumes it can move all objects. In this case, the algorithm will give preference to minimizing cpu max_load. It will still move less than greedy, but the amount of migrations will depend very much on the particular case (object load distribution and processor background loads),

supports processor avail bitvector supports nonmigratable attrib

const float Avals[] = {1.0, 1.005, 1.01, 1.015, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07, 1.08, 1.16, 1.20, 1.30} [static]

Definition at line 350 of file GreedyRefineLB.C.

Referenced by getGreedyRefineParams().

const float Bvals[] = {1.0, 1.05, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, FLT_MAX} [static]

Definition at line 351 of file GreedyRefineLB.C.

Referenced by getGreedyRefineParams().

Definition at line 29 of file LBDatabase.C.

Referenced by DistributedLB::AfterLBReduction(), CentralLB::ApplyDecision(), WSLB::AssembleStats(), NborBaseLB::AtSync(), DistBaseLB::AtSync(), CkMigratable::AtSync(), HybridBaseLB::buildStats(), CentralLB::CheckMigrationComplete(), CkLocRec::CkLocRec(), HybridBaseLB::CollectInfo(), CkMigratable::commonInit(), TopoLB::computePartitions(), TopoCentLB::computePartitions(), MetaBalancer::ContributeStats(), RefinerComm::Messages::cost(), CreateLBFunc_Def(), HybridBaseLB::createMigrateMsg(), DistBaseLB::DistBaseLB(), DistributedLB::DoneGossip(), DistributedLB::DoneWithLBPhase(), CentralLB::endMigrationDone(), GreedyRefineLB::fillData(), GridHybridSeedLB::Find_Minimum_PE(), GridHybridLB::Find_Minimum_PE(), GridCommLB::Find_Minimum_PE(), LBInfo::getInfo(), LBDB::GetObjData(), HybridBaseLB::GetObjsToMigrate(), GreedyRefineLB::greedyLB(), GreedyRefineLB::GreedyRefineLB(), HbmLB::HbmLB(), HybridBaseLB::HybridBaseLB(), MetaBalancer::init(), GridMetisLB::Initialize_Object_Data(), GridHybridSeedLB::Initialize_Object_Data(), GridHybridLB::Initialize_Object_Data(), DistributedLB::InitLB(), CentralLB::initLB(), LBDB::LBDB(), LDMulticastSend(), LDProcessorSpeed(), LDSend(), DistBaseLB::LoadBalance(), CentralLB::LoadBalance(), HybridBaseLB::Loadbalancing(), HbmLB::Loadbalancing(), DistributedLB::LoadReduction(), GridHybridSeedLB::Map_NonMigratable_Objects_To_PEs(), GridHybridLB::Map_NonMigratable_Objects_To_PEs(), GridCommLB::Map_NonMigratable_Objects_To_PEs(), OrbLB::mapPartitionsToNodes(), MetaLBInit::MetaLBInit(), NborBaseLB::MigrationDone(), HybridBaseLB::MigrationDone(), DistBaseLB::MigrationDone(), CentralLB::MigrationDoneImpl(), MulticastAgent::MulticastAgent(), RefinerTemp::multirefine(), Refiner::multirefine(), MulticastAgent::my_preferred_procs(), NborBaseLB::NborBaseLB(), HybridBaseLB::NotifyObjectMigrationDone(), LBDB::ObjDataCount(), ObjGraph::ObjGraph(), RefinerComm::CommTable::overheadOnPe(), GridMetisLB::Partition_Objects_Into_Clusters(), GridHybridSeedLB::Partition_Objects_Into_Clusters(), GridHybridLB::Partition_Objects_Into_Clusters(), CentralLB::preprocess(), LBInfo::print(), HybridBaseLB::ProcessAtSync(), HbmLB::ProcessAtSync(), DistBaseLB::ProcessMigrationDecision(), RefinerComm::processorCommCost(), CentralLB::ProcessReceiveMigration(), HybridBaseLB::PropagateInfo(), BaseLB::ProcStats::pup(), BaseLB::LDStats::pup(), GridMetisLB::QueryBalanceNow(), GridHybridSeedLB::QueryBalanceNow(), GridHybridLB::QueryBalanceNow(), GridCommRefineLB::QueryBalanceNow(), GridCommLB::QueryBalanceNow(), CentralLB::readStatsMsgs(), OrbLB::rec_divide(), MetaBalancer::ReceiveMinStats(), GreedyRefineLB::receiveSolutions(), NborBaseLB::ReceiveStats(), HybridBaseLB::ReceiveVectorMigration(), RefinerTemp::Refine(), RefinerComm::Refine(), RefinerComm::refine(), RefinerApprox::Refine(), Refiner::Refine(), NborBaseLB::ResumeClients(), HybridBaseLB::ResumeClients(), HbmLB::ResumeClients(), DistBaseLB::ResumeClients(), GreedyRefineLB::sendSolution(), CkMigratable::staticResumeFromSync(), WSLB::Strategy(), NeighborLB::Strategy(), HybridBaseLB::Strategy(), DistributedLB::Strategy(), CentralLB::Strategy(), HybridBaseLB::TotalObjMigrated(), HybridBaseLB::VectorDone(), VectorStrategy(), ZoltanLB::work(), TreeMatchLB::work(), TopoLB::work(), TopoCentLB::work(), TempAwareGreedyLB::work(), TempAwareCommLB::work(), TeamLB::work(), RefineTopoLB::work(), RefineSwapLB::work(), RefineLB::work(), RefineKLB::work(), RandCentLB::work(), OrbLB::work(), MetisLB::work(), GridMetisLB::work(), GridHybridSeedLB::work(), GridHybridLB::work(), GridCommRefineLB::work(), GridCommLB::work(), GreedyRefineLB::work(), GreedyLB::work(), GreedyCommLB::work(), GreedyAgentLB::work(), CommLB::work(), CommAwareRefineLB::work(), CentralLB::writeStatsMsgs(), and CkMigratable::~CkMigratable().

Definition at line 31 of file LBDatabase.C.

Referenced by _loadbalancerInit().

Definition at line 32 of file LBDatabase.C.

Referenced by _loadbalancerInit(), CentralLB::initLB(), and CentralLB::predictorOn().

Definition at line 33 of file LBDatabase.C.

Referenced by CkMigratable::AtSync().

Definition at line 92 of file LBDatabase.C.

Definition at line 363 of file LBDatabase.C.

Referenced by LBDatabase::initnodeFn(), and LBDatabase::pup().

LBRealType* _expectedLoad = NULL [static]

Definition at line 365 of file LBDatabase.C.

Referenced by LBDatabase::initnodeFn(), and LBDatabase::LastLBInfo::LastLBInfo().

flag to write all LB decisions

Definition at line 19 of file LBSimulation.C.

Referenced by CkLBArgs::lbversion(), _LDCommDesc::pup(), and PUPmarshall().

Definition at line 29 of file LBDatabase.C.

Referenced by DistributedLB::AfterLBReduction(), CentralLB::ApplyDecision(), WSLB::AssembleStats(), NborBaseLB::AtSync(), DistBaseLB::AtSync(), CkMigratable::AtSync(), HybridBaseLB::buildStats(), CentralLB::CheckMigrationComplete(), CkLocRec::CkLocRec(), HybridBaseLB::CollectInfo(), CkMigratable::commonInit(), TopoLB::computePartitions(), TopoCentLB::computePartitions(), MetaBalancer::ContributeStats(), RefinerComm::Messages::cost(), CreateLBFunc_Def(), HybridBaseLB::createMigrateMsg(), DistBaseLB::DistBaseLB(), DistributedLB::DoneGossip(), DistributedLB::DoneWithLBPhase(), CentralLB::endMigrationDone(), GreedyRefineLB::fillData(), GridHybridSeedLB::Find_Minimum_PE(), GridHybridLB::Find_Minimum_PE(), GridCommLB::Find_Minimum_PE(), LBInfo::getInfo(), LBDB::GetObjData(), HybridBaseLB::GetObjsToMigrate(), GreedyRefineLB::greedyLB(), GreedyRefineLB::GreedyRefineLB(), HbmLB::HbmLB(), HybridBaseLB::HybridBaseLB(), MetaBalancer::init(), GridMetisLB::Initialize_Object_Data(), GridHybridSeedLB::Initialize_Object_Data(), GridHybridLB::Initialize_Object_Data(), DistributedLB::InitLB(), CentralLB::initLB(), LBDB::LBDB(), LDMulticastSend(), LDProcessorSpeed(), LDSend(), DistBaseLB::LoadBalance(), CentralLB::LoadBalance(), HybridBaseLB::Loadbalancing(), HbmLB::Loadbalancing(), DistributedLB::LoadReduction(), GridHybridSeedLB::Map_NonMigratable_Objects_To_PEs(), GridHybridLB::Map_NonMigratable_Objects_To_PEs(), GridCommLB::Map_NonMigratable_Objects_To_PEs(), OrbLB::mapPartitionsToNodes(), MetaLBInit::MetaLBInit(), NborBaseLB::MigrationDone(), HybridBaseLB::MigrationDone(), DistBaseLB::MigrationDone(), CentralLB::MigrationDoneImpl(), MulticastAgent::MulticastAgent(), RefinerTemp::multirefine(), Refiner::multirefine(), MulticastAgent::my_preferred_procs(), NborBaseLB::NborBaseLB(), HybridBaseLB::NotifyObjectMigrationDone(), LBDB::ObjDataCount(), ObjGraph::ObjGraph(), RefinerComm::CommTable::overheadOnPe(), GridMetisLB::Partition_Objects_Into_Clusters(), GridHybridSeedLB::Partition_Objects_Into_Clusters(), GridHybridLB::Partition_Objects_Into_Clusters(), CentralLB::preprocess(), LBInfo::print(), HybridBaseLB::ProcessAtSync(), HbmLB::ProcessAtSync(), DistBaseLB::ProcessMigrationDecision(), RefinerComm::processorCommCost(), CentralLB::ProcessReceiveMigration(), HybridBaseLB::PropagateInfo(), BaseLB::ProcStats::pup(), BaseLB::LDStats::pup(), GridMetisLB::QueryBalanceNow(), GridHybridSeedLB::QueryBalanceNow(), GridHybridLB::QueryBalanceNow(), GridCommRefineLB::QueryBalanceNow(), GridCommLB::QueryBalanceNow(), CentralLB::readStatsMsgs(), OrbLB::rec_divide(), MetaBalancer::ReceiveMinStats(), GreedyRefineLB::receiveSolutions(), NborBaseLB::ReceiveStats(), HybridBaseLB::ReceiveVectorMigration(), RefinerTemp::Refine(), RefinerComm::Refine(), RefinerComm::refine(), RefinerApprox::Refine(), Refiner::Refine(), NborBaseLB::ResumeClients(), HybridBaseLB::ResumeClients(), HbmLB::ResumeClients(), DistBaseLB::ResumeClients(), GreedyRefineLB::sendSolution(), CkMigratable::staticResumeFromSync(), WSLB::Strategy(), NeighborLB::Strategy(), HybridBaseLB::Strategy(), DistributedLB::Strategy(), CentralLB::Strategy(), HybridBaseLB::TotalObjMigrated(), HybridBaseLB::VectorDone(), VectorStrategy(), ZoltanLB::work(), TreeMatchLB::work(), TopoLB::work(), TopoCentLB::work(), TempAwareGreedyLB::work(), TempAwareCommLB::work(), TeamLB::work(), RefineTopoLB::work(), RefineSwapLB::work(), RefineLB::work(), RefineKLB::work(), RandCentLB::work(), OrbLB::work(), MetisLB::work(), GridMetisLB::work(), GridHybridSeedLB::work(), GridHybridLB::work(), GridCommRefineLB::work(), GridCommLB::work(), GreedyRefineLB::work(), GreedyLB::work(), GreedyCommLB::work(), GreedyAgentLB::work(), CommLB::work(), CommAwareRefineLB::work(), CentralLB::writeStatsMsgs(), and CkMigratable::~CkMigratable().

Definition at line 31 of file LBDatabase.C.

Referenced by _loadbalancerInit().

Definition at line 32 of file LBDatabase.C.

Referenced by _loadbalancerInit(), CentralLB::initLB(), and CentralLB::predictorOn().

Definition at line 33 of file LBDatabase.C.

Referenced by CkMigratable::AtSync().

flag to write all LB decisions

Definition at line 19 of file LBSimulation.C.

LDOMid LDOMHandle::id [inherited]

int LDOMHandle::handle [inherited]

Definition at line 79 of file lbdb.h.

Referenced by _LDObjKey::objID(), _LDObjKey::operator<(), and _LDObjKey::operator==().

int LBUserDataLayout::count [private, inherited]

Definition at line 111 of file lbdb.h.

Referenced by LBUserDataLayout::claim().

Definition at line 157 of file lbdb.h.

Referenced by LBObj::Clear(), and LBObj::IncrementTime().

Definition at line 157 of file lbdb.h.

Referenced by LBObj::Clear(), and LBObj::IncrementTime().

Definition at line 162 of file lbdb.h.

Definition at line 166 of file lbdb.h.

Referenced by LBObj::setPupSize().

Definition at line 180 of file lbdb.h.

Definition at line 181 of file lbdb.h.

int LDObjStats::to_proc [inherited]

Definition at line 182 of file lbdb.h.

Definition at line 196 of file lbdb.h.

int { ... } ::destObjProc [inherited]

Definition at line 196 of file lbdb.h.

struct { ... } _LDCommDesc::destObj [inherited]

LDObjKey { ... } ::destObj [inherited]

Definition at line 195 of file lbdb.h.

struct { ... } ::destObj [inherited]

int _LDCommDesc::len [inherited]

Definition at line 200 of file lbdb.h.

int { ... } ::len [inherited]

Definition at line 200 of file lbdb.h.

struct { ... } _LDCommDesc::destObjs [inherited]

LDObjKey* { ... } ::objs [inherited]

Definition at line 199 of file lbdb.h.

struct { ... } ::destObjs [inherited]

union { ... } _LDCommDesc::dest [inherited]

int { ... } ::destProc [inherited]

Definition at line 193 of file lbdb.h.

int _LDCommData::bytes [inherited]

Definition at line 280 of file lbdb.h.

Definition at line 281 of file lbdb.h.

Definition at line 282 of file lbdb.h.

Referenced by LBOM::MetaLBResumeWaitingChares().

Definition at line 283 of file lbdb.h.

Referenced by LBOM::MetaLBCallLBOnChares().

Cluster Manager Code, Accepts external bit vectors and then feeds it into the loadbalancer so that programs can shrink and expand.

Definition at line 17 of file manager.C.

Referenced by CentralLB::CheckForRealloc(), CkCheckpointMgr::Checkpoint(), handler(), and manager_init().

Definition at line 18 of file manager.C.

Referenced by handler(), and CentralLB::ResumeFromReallocCheckpoint().

Definition at line 19 of file manager.C.

Definition at line 20 of file manager.C.

char willContinue = 0

Definition at line 21 of file manager.C.

Referenced by manager_init(), and CentralLB::WillIbekilled().

Definition at line 54 of file CentralLB.C.

Referenced by handler(), and CentralLB::initLB().

Definition at line 23 of file NullLB.C.

int _migDoneHandle [static]

Definition at line 26 of file NullLB.C.

Referenced by NullLB::AtSync(), and lbprocinit().

const double alpha = 30.e-6 [static]

const double beta = 3.e-9 [static]

double TOTALLOAD

Definition at line 106 of file RecBipartLB.C.

Referenced by RecBipartLB::work().

Definition at line 108 of file RecBipartLB.C.

Referenced by TopoManager_init(), and RecBipartLB::work().

Definition at line 108 of file RecBipartLB.C.

Referenced by RecursiveBiPart(), and RecBipartLB::work().

Definition at line 109 of file RecBipartLB.C.

FILE* migFile

Definition at line 108 of file TempAwareRefineLB.C.

Referenced by CreateLBFunc_Def().

double starting

Definition at line 109 of file TempAwareRefineLB.C.

Referenced by CreateLBFunc_Def().

char* _lbtopo

template<int dimension>
int LBTopo_torus_nd< dimension >::VirtualProcessorCount [private, inherited]

Definition at line 582 of file topology.C.

template<int dimension>
int* LBTopo_torus_nd< dimension >::TempCo [private, inherited]

Definition at line 583 of file topology.C.

LBTopoVec* lbTopoMap [static]

Definition at line 1325 of file topology.C.

Definition at line 1326 of file topology.C.

Referenced by LBTopoInit(), and LBTopoLookup().

bool lbTopoInitialized = false [static]

Definition at line 1327 of file topology.C.

Referenced by LBTopoInit().

bool LBDatabase::manualOn = false [static, inherited]

Definition at line 421 of file LBDatabase.h.

Referenced by LBDatabase::init(), TurnManualLBOff(), and TurnManualLBOn().

char * LBDatabase::avail_vector = NULL [static, private, inherited]

bool LBDatabase::avail_vector_set = false [static, private, inherited]

Definition at line 410 of file LBDatabase.h.

Referenced by LBDatabase::pup().


Generated on Mon Sep 21 08:13:48 2020 for Charm++ by  doxygen 1.5.5