#include <TopoCentLB.h>
Public Member Functions | |
TopoCentLB (const CkLBOptions &opt) | |
TopoCentLB (CkMigrateMessage *m) | |
~TopoCentLB () | |
void | work (LDStats *stats) |
void | pup (PUP::er &p) |
void | calculateMST (PartGraph *partgraph, LBTopology *topo, int *proc_mapping, int max_comm_part) |
void | increaseKey (HeapNode *heap, int i, double wt) |
HeapNode | extractMax (HeapNode *heap, int *heapSize) |
void | BuildHeap (HeapNode *heap, int heapSize) |
void | Heapify (HeapNode *heap, int node, int heapSize) |
int | findMaxObjs (int *map, int totalobjs, int count) |
void | computePartitions (CentralLB::LDStats *stats, int count, int *newmap) |
Data Fields | |
PartGraph * | partgraph |
LBTopology * | topo |
double ** | hopCount |
int * | heapMapping |
Private Member Functions | |
bool | QueryBalanceNow (int step) |
Data Structures | |
struct | HeapNode |
class | PartGraph |
Definition at line 37 of file TopoCentLB.h.
TopoCentLB::TopoCentLB | ( | const CkLBOptions & | opt | ) |
TopoCentLB::TopoCentLB | ( | CkMigrateMessage * | m | ) | [inline] |
Definition at line 41 of file TopoCentLB.h.
TopoCentLB::~TopoCentLB | ( | ) |
void TopoCentLB::work | ( | LDStats * | stats | ) |
Definition at line 458 of file TopoCentLB.C.
References _lb_args, _lbtopo, _LDCommData::bytes, calculateMST(), Converse::CkMyPe(), CmiAbort(), CmiPrintf(), computePartitions(), CkLBArgs::debug(), TopoCentLB::PartGraph::edges, findMaxObjs(), _LDCommData::from_proc(), _LDCommDesc::get_destObj(), _LDCommDesc::get_destObjs(), _LDCommDesc::get_type(), heapMapping, hopCount, LBTopoLookup(), CkLBArgs::migObjOnly(), n, TopoCentLB::PartGraph::nodes, TopoCentLB::PartGraph::Node::num_objs, TopoCentLB::PartGraph::Node::obj_list, partgraph, printoutTopo(), _LDCommData::receiver, _LDCommData::sender, strdup(), topo, and _group_list_t::val.
void TopoCentLB::pup | ( | PUP::er & | p | ) | [inline] |
Definition at line 46 of file TopoCentLB.h.
void TopoCentLB::calculateMST | ( | PartGraph * | partgraph, | |
LBTopology * | topo, | |||
int * | proc_mapping, | |||
int | max_comm_part | |||
) |
Definition at line 319 of file TopoCentLB.C.
References BuildHeap(), count, TopoCentLB::PartGraph::edges, extractMax(), LBTopology::get_pairwise_hop_count(), heapMapping, hopCount, increaseKey(), TopoCentLB::HeapNode::key, PUP::m, max(), LBTopology::max_neighbors(), TopoCentLB::PartGraph::n_nodes, TopoCentLB::HeapNode::node, and p.
Referenced by work().
Definition at line 294 of file TopoCentLB.C.
References heapMapping, TopoCentLB::HeapNode::key, key, TopoCentLB::HeapNode::node, and parent().
Referenced by calculateMST().
TopoCentLB::HeapNode TopoCentLB::extractMax | ( | HeapNode * | heap, | |
int * | heapSize | |||
) |
Definition at line 276 of file TopoCentLB.C.
References CmiAbort(), Heapify(), heapMapping, max(), and TopoCentLB::HeapNode::node.
Referenced by calculateMST().
Definition at line 289 of file TopoCentLB.C.
References Heapify().
Referenced by calculateMST().
Definition at line 250 of file TopoCentLB.C.
References heapMapping, key, left(), TopoCentLB::HeapNode::node, and right().
Referenced by BuildHeap(), and extractMax().
Definition at line 229 of file TopoCentLB.C.
Referenced by work().
Definition at line 56 of file TopoCentLB.C.
References _lb_args, adjncy, CmiAbort(), comm, CkLBArgs::debug(), edgecut, factor, _LDCommData::from_proc(), _LDCommDesc::get_destObj(), _LDCommDesc::get_destObjs(), _LDCommDesc::get_type(), LDObjData::handle, int, PUP::m, _LDCommData::messages, METIS_PartGraphRecursive(), CkLBArgs::migObjOnly(), LDObjData::migratable, numflag, _LDCommData::receiver, _LDCommData::sender, LDObjData::wallTime, and xadj.
Referenced by work().
Definition at line 45 of file TopoCentLB.C.
double** TopoCentLB::hopCount |
Definition at line 127 of file TopoCentLB.h.
Referenced by calculateMST(), extractMax(), Heapify(), increaseKey(), and work().