#include <GridMetisLB.h>
Public Member Functions | |
GridMetisLB (const CkLBOptions &) | |
GridMetisLB (CkMigrateMessage *msg) | |
bool | QueryBalanceNow (int step) |
void | work (LDStats *stats) |
void | pup (PUP::er &p) |
Private Member Functions | |
int | Get_Cluster (int pe) |
void | Initialize_PE_Data (CentralLB::LDStats *stats) |
int | Available_PE_Count () |
int | Compute_Number_Of_Clusters () |
void | Initialize_Object_Data (CentralLB::LDStats *stats) |
void | Initialize_Cluster_Data () |
void | Partition_Objects_Into_Clusters (CentralLB::LDStats *stats) |
void | Partition_ClusterObjects_Into_PEs (CentralLB::LDStats *stats, int cluster) |
Private Attributes | |
int | CK_LDB_GridMetisLB_Mode |
int | CK_LDB_GridMetisLB_Background_Load |
int | Num_PEs |
int | Num_Objects |
int | Num_Clusters |
PE_Data_T * | PE_Data |
Object_Data_T * | Object_Data |
Cluster_Data_T * | Cluster_Data |
Definition at line 73 of file GridMetisLB.h.
GridMetisLB::GridMetisLB | ( | const CkLBOptions & | ) |
GridMetisLB::GridMetisLB | ( | CkMigrateMessage * | msg | ) |
Definition at line 54 of file GridMetisLB.C.
References CK_LDB_GridMetisLB_Background_Load, CK_LDB_GridMetisLB_Mode, manager_init(), and value.
Definition at line 82 of file GridMetisLB.C.
References _lb_args, Converse::CkMyPe(), and CkLBArgs::debug().
void GridMetisLB::work | ( | LDStats * | stats | ) |
Definition at line 779 of file GridMetisLB.C.
References _lb_args, Available_PE_Count(), CK_LDB_GridMetisLB_Background_Load, CK_LDB_GridMetisLB_Mode, Converse::CkMyPe(), Cluster_Data, Compute_Number_Of_Clusters(), CkLBArgs::debug(), Initialize_Cluster_Data(), Initialize_Object_Data(), Initialize_PE_Data(), Num_Clusters, Num_Objects, Num_PEs, Object_Data, Partition_ClusterObjects_Into_PEs(), Partition_Objects_Into_Clusters(), and PE_Data.
void GridMetisLB::pup | ( | PUP::er & | p | ) | [inline] |
Definition at line 81 of file GridMetisLB.h.
Definition at line 104 of file GridMetisLB.C.
Referenced by Initialize_PE_Data().
void GridMetisLB::Initialize_PE_Data | ( | CentralLB::LDStats * | stats | ) | [private] |
Definition at line 114 of file GridMetisLB.C.
References PE_Data_T::available, CK_LDB_GridMetisLB_Background_Load, Get_Cluster(), Num_PEs, and PE_Data.
Referenced by work().
int GridMetisLB::Available_PE_Count | ( | ) | [private] |
Definition at line 150 of file GridMetisLB.C.
References Num_PEs, and PE_Data.
Referenced by work().
int GridMetisLB::Compute_Number_Of_Clusters | ( | ) | [private] |
Definition at line 170 of file GridMetisLB.C.
References Num_PEs, and PE_Data.
Referenced by work().
void GridMetisLB::Initialize_Object_Data | ( | CentralLB::LDStats * | stats | ) | [private] |
Definition at line 194 of file GridMetisLB.C.
References _lb_args, Converse::CkMyPe(), CkLBArgs::debug(), Object_Data_T::migratable, Num_Objects, Object_Data, and PE_Data.
Referenced by work().
void GridMetisLB::Initialize_Cluster_Data | ( | ) | [private] |
Definition at line 226 of file GridMetisLB.C.
References Cluster_Data, Num_Clusters, Num_PEs, and PE_Data.
Referenced by work().
void GridMetisLB::Partition_Objects_Into_Clusters | ( | CentralLB::LDStats * | stats | ) | [private] |
Definition at line 266 of file GridMetisLB.C.
References _lb_args, adjncy, CK_LDB_GridMetisLB_Mode, Converse::CkMyPe(), Cluster_Data, count, CkLBArgs::debug(), edgecut, _LDCommData::from_proc(), _LDCommDesc::get_destObj(), _LDCommDesc::get_destObjs(), _LDCommDesc::get_type(), index, int, _LDCommData::messages, METIS_PartGraphRecursive(), Num_Clusters, Num_Objects, Object_Data, _LDCommData::receiver, _LDCommData::recv_type(), _LDCommData::sender, and xadj.
Referenced by work().
void GridMetisLB::Partition_ClusterObjects_Into_PEs | ( | CentralLB::LDStats * | stats, | |
int | cluster | |||
) | [private] |
Definition at line 511 of file GridMetisLB.C.
References adjncy, CmiAbort(), CmiMyPe(), CmiPrintf(), count, edgecut, _LDCommData::from_proc(), _LDCommDesc::get_destObj(), _LDCommDesc::get_destObjs(), _LDCommDesc::get_type(), index, int, _LDCommData::messages, METIS_PartGraphRecursive(), Num_Objects, Num_PEs, Object_Data, PE_Data, _LDCommData::receiver, _LDCommData::recv_type(), _LDCommData::sender, and xadj.
Referenced by work().
int GridMetisLB::CK_LDB_GridMetisLB_Mode [private] |
Definition at line 93 of file GridMetisLB.h.
Referenced by GridMetisLB(), Partition_Objects_Into_Clusters(), and work().
Definition at line 94 of file GridMetisLB.h.
Referenced by GridMetisLB(), Initialize_PE_Data(), and work().
int GridMetisLB::Num_PEs [private] |
Definition at line 96 of file GridMetisLB.h.
Referenced by Available_PE_Count(), Compute_Number_Of_Clusters(), Initialize_Cluster_Data(), Initialize_PE_Data(), Partition_ClusterObjects_Into_PEs(), and work().
int GridMetisLB::Num_Objects [private] |
Definition at line 97 of file GridMetisLB.h.
Referenced by Initialize_Object_Data(), Partition_ClusterObjects_Into_PEs(), Partition_Objects_Into_Clusters(), and work().
int GridMetisLB::Num_Clusters [private] |
Definition at line 98 of file GridMetisLB.h.
Referenced by Initialize_Cluster_Data(), Partition_Objects_Into_Clusters(), and work().
PE_Data_T* GridMetisLB::PE_Data [private] |
Definition at line 99 of file GridMetisLB.h.
Referenced by Available_PE_Count(), Compute_Number_Of_Clusters(), Initialize_Cluster_Data(), Initialize_Object_Data(), Initialize_PE_Data(), Partition_ClusterObjects_Into_PEs(), and work().
Object_Data_T* GridMetisLB::Object_Data [private] |
Definition at line 100 of file GridMetisLB.h.
Referenced by Initialize_Object_Data(), Partition_ClusterObjects_Into_PEs(), Partition_Objects_Into_Clusters(), and work().
Cluster_Data_T* GridMetisLB::Cluster_Data [private] |
Definition at line 101 of file GridMetisLB.h.
Referenced by Initialize_Cluster_Data(), Partition_Objects_Into_Clusters(), and work().