#include <TopoLB.h>
Public Member Functions | |
TopoLB (const CkLBOptions &opt) | |
TopoLB (CkMigrateMessage *m) | |
void | work (LDStats *stats) |
void | pup (PUP::er &p) |
Data Fields | |
LBTopology * | topo |
Protected Member Functions | |
virtual void | computePartitions (CentralLB::LDStats *stats, int count, int *newmap) |
virtual void | allocateDataStructures (int num_procs) |
virtual void | freeDataStructures (int num_procs) |
virtual void | initDataStructures (CentralLB::LDStats *stats, int count, int *newmap) |
virtual void | printDataStructures (int num_procs, int num_objs, int *newmap) |
virtual double | getHopBytes (CentralLB::LDStats *stats, int count, CkVec< int >obj_to_proc) |
virtual double | getHopBytesNew (int *assign_map, int count) |
void | performMapping (int *newmap, int count) |
bool | QueryBalanceNow (int step) |
Protected Attributes | |
double ** | dist |
double ** | comm |
double * | commUA |
double ** | hopBytes |
bool * | pfree |
bool * | cfree |
int * | assign |
double | total_comm |
Definition at line 47 of file TopoLB.h.
TopoLB::TopoLB | ( | const CkLBOptions & | opt | ) |
TopoLB::TopoLB | ( | CkMigrateMessage * | m | ) | [inline] |
void TopoLB::work | ( | LDStats * | stats | ) |
Definition at line 699 of file TopoLB.C.
References _lb_args, _lbtopo, allocateDataStructures(), assign, CmiAbort(), CmiPrintf(), computePartitions(), CkLBArgs::debug(), freeDataStructures(), getHopBytesNew(), initDataStructures(), LBTopoLookup(), performMapping(), printDataStructures(), printoutTopo(), randomAssign(), strdup(), PUP::t, topo, and total_comm.
void TopoLB::computePartitions | ( | CentralLB::LDStats * | stats, | |
int | count, | |||
int * | newmap | |||
) | [protected, virtual] |
Definition at line 93 of file TopoLB.C.
References _lb_args, adjncy, CmiAbort(), comm, 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().
void TopoLB::allocateDataStructures | ( | int | num_procs | ) | [protected, virtual] |
void TopoLB::freeDataStructures | ( | int | num_procs | ) | [protected, virtual] |
void TopoLB::initDataStructures | ( | CentralLB::LDStats * | stats, | |
int | count, | |||
int * | newmap | |||
) | [protected, virtual] |
Definition at line 291 of file TopoLB.C.
References assign, _LDCommData::bytes, cfree, comm, commUA, dist, _LDCommData::from_proc(), _LDCommDesc::get_destObj(), _LDCommDesc::get_destObjs(), LBTopology::get_pairwise_hop_count(), _LDCommDesc::get_type(), hopBytes, pfree, _LDCommData::receiver, _LDCommData::sender, topo, and total_comm.
Referenced by work().
double TopoLB::getHopBytes | ( | CentralLB::LDStats * | stats, | |
int | count, | |||
CkVec< int > | obj_to_proc | |||
) | [protected, virtual] |
Definition at line 874 of file TopoLB.C.
References _LDCommData::bytes, dist, _LDCommData::from_proc(), _LDCommDesc::get_destObj(), _LDCommDesc::get_destObjs(), _LDCommDesc::get_type(), _LDCommData::receiver, and _LDCommData::sender.
double** TopoLB::dist [protected] |
Definition at line 61 of file TopoLB.h.
Referenced by allocateDataStructures(), freeDataStructures(), getHopBytes(), getHopBytesNew(), initDataStructures(), performMapping(), and printDataStructures().
double** TopoLB::comm [protected] |
Definition at line 62 of file TopoLB.h.
Referenced by allocateDataStructures(), computePartitions(), freeDataStructures(), getHopBytesNew(), initDataStructures(), and performMapping().
double* TopoLB::commUA [protected] |
Definition at line 63 of file TopoLB.h.
Referenced by allocateDataStructures(), freeDataStructures(), initDataStructures(), and performMapping().
double** TopoLB::hopBytes [protected] |
Definition at line 64 of file TopoLB.h.
Referenced by allocateDataStructures(), freeDataStructures(), initDataStructures(), performMapping(), and printDataStructures().
bool* TopoLB::pfree [protected] |
Definition at line 65 of file TopoLB.h.
Referenced by allocateDataStructures(), freeDataStructures(), initDataStructures(), and performMapping().
bool* TopoLB::cfree [protected] |
Definition at line 66 of file TopoLB.h.
Referenced by allocateDataStructures(), freeDataStructures(), initDataStructures(), and performMapping().
int* TopoLB::assign [protected] |
Definition at line 67 of file TopoLB.h.
Referenced by allocateDataStructures(), freeDataStructures(), initDataStructures(), performMapping(), and work().
double TopoLB::total_comm [protected] |