
#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 | |
| CmiBool | 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 455 of file TopoCentLB.C.
References _lb_args, _lbtopo, BaseLB::ProcStats::available, LDCommData::bytes, calculateMST(), Converse::CkMyPe(), CmiAbort(), CmiPrintf(), BaseLB::LDStats::commData, computePartitions(), CkLBArgs::debug(), TopoCentLB::PartGraph::edges, findMaxObjs(), LDCommData::from_proc(), BaseLB::LDStats::from_proc, _LDCommDesc::get_destObj(), _LDCommDesc::get_destObjs(), _LDCommDesc::get_type(), BaseLB::LDStats::getHash(), heapMapping, hopCount, LBTopoLookup(), BaseLB::LDStats::makeCommHash(), CkLBArgs::migObjOnly(), n, BaseLB::LDStats::n_comm, BaseLB::LDStats::n_objs, TopoCentLB::PartGraph::nodes, BaseLB::LDStats::nprocs(), TopoCentLB::PartGraph::Node::num_objs, TopoCentLB::PartGraph::Node::obj_list, partgraph, printoutTopo(), BaseLB::LDStats::procs, ptr, LDCommData::receiver, CentralLB::removeNonMigratable(), LDCommData::sender, BaseLB::LDStats::to_proc, topo, and _group_list_t::val.
| void TopoCentLB::pup | ( | PUP::er & | p | ) | [inline, virtual] |
Reimplemented from CentralLB.
Definition at line 46 of file TopoCentLB.h.
References CentralLB::pup().
| void TopoCentLB::calculateMST | ( | PartGraph * | partgraph, | |
| LBTopology * | topo, | |||
| int * | proc_mapping, | |||
| int | max_comm_part | |||
| ) |
Definition at line 316 of file TopoCentLB.C.
References BuildHeap(), TopoCentLB::PartGraph::edges, extractMax(), LBTopology::get_pairwise_hop_count(), heapMapping, hopCount, increaseKey(), TopoCentLB::HeapNode::key, max(), LBTopology::max_neighbors(), TopoCentLB::PartGraph::n_nodes, TopoCentLB::HeapNode::node, and p.
Referenced by work().
Definition at line 291 of file TopoCentLB.C.
References heapMapping, TopoCentLB::HeapNode::key, and TopoCentLB::HeapNode::node.
Referenced by calculateMST().
| TopoCentLB::HeapNode TopoCentLB::extractMax | ( | HeapNode * | heap, | |
| int * | heapSize | |||
| ) |
Definition at line 273 of file TopoCentLB.C.
References CmiAbort(), Heapify(), heapMapping, max(), and TopoCentLB::HeapNode::node.
Referenced by calculateMST().
Definition at line 247 of file TopoCentLB.C.
References heapMapping, left(), and TopoCentLB::HeapNode::node.
Referenced by BuildHeap(), and extractMax().
| void TopoCentLB::computePartitions | ( | CentralLB::LDStats * | stats, | |
| int | count, | |||
| int * | newmap | |||
| ) |
Definition at line 54 of file TopoCentLB.C.
References _lb_args, CmiAbort(), BaseLB::LDStats::commData, CkLBArgs::debug(), factor, LDCommData::from_proc(), BaseLB::LDStats::from_proc, _LDCommDesc::get_destObj(), _LDCommDesc::get_destObjs(), _LDCommDesc::get_type(), BaseLB::LDStats::getHash(), LDObjData::handle, LDCommData::messages, METIS_PartGraphRecursive(), CkLBArgs::migObjOnly(), LDObjData::migratable, BaseLB::LDStats::n_comm, BaseLB::LDStats::n_objs, BaseLB::LDStats::objData, BaseLB::ProcStats::pe_speed, BaseLB::LDStats::procs, LDCommData::receiver, LDCommData::sender, and LDObjData::wallTime.
Referenced by work().
Definition at line 127 of file TopoCentLB.h.
Referenced by calculateMST(), extractMax(), Heapify(), increaseKey(), and work().
1.5.5