PPL Logo

HierarchicalLB Struct Reference

#include <HierarchicalLB.h>

Inheritance diagram for HierarchicalLB:

Inheritance graph
[legend]
Collaboration diagram for HierarchicalLB:

Collaboration graph
[legend]

Public Member Functions

 HierarchicalLB (const CkLBOptions &)
 HierarchicalLB (CkMigrateMessage *m)
void avg_load_reduction (double x)
void done_hier ()
void turnOn ()
void turnOff ()
void setup_tree ()
void calc_load_over ()
void lb_tree_msg (double const child_load, int const child, cont_hier_objid_t load, int child_size)
child_load_t * find_min_child ()
void down_tree_msg (int const &from, cont_hier_objid_t excess_load, bool final_child)
void transfer_objects (int const &to_pe, std::vector< int > const &lst)
void finished_transfer_requests ()
void send_down_tree ()
void distribute_amoung_children ()
bool QueryBalanceNow (int step)

Static Public Member Functions

static hier_objid_t convert_to_hier_objid (int const &obj_id, int const &pe)
static int hier_objid_get_pe (hier_objid_t const &id)
static int hier_objid_get_id (hier_objid_t const &id)

Private Attributes

int rank = 0
int nproc = 0
double my_load = 0.0
double avg_load = 0.0
double thr_avg = 0.0
double total_child_load = 0.0
bool tree_is_setup = false
cont_hier_objid_t obj_sample
cont_hier_objid_t given_objs
cont_hier_objid_t taken_objs
cont_hier_objid_t load_over
std::unordered_map< int,
child_load_t * > 
children
std::unordered_map< int,
child_load_t * > 
live_children

Detailed Description

Definition at line 39 of file HierarchicalLB.h.


Constructor & Destructor Documentation

HierarchicalLB::HierarchicalLB ( const CkLBOptions opt  ) 

Definition at line 37 of file HierarchicalLB.C.

References Converse::CkMyPe().

Here is the call graph for this function:

HierarchicalLB::HierarchicalLB ( CkMigrateMessage m  ) 


Member Function Documentation

void HierarchicalLB::avg_load_reduction ( double  x  ) 

Definition at line 528 of file HierarchicalLB.C.

References avg_load, calc_load_over(), cb, children, Converse::CkMyPe(), Converse::CkNumPes(), CkStartQD(), load_over, my_load, parent(), rank, and thr_avg.

Here is the call graph for this function:

void HierarchicalLB::done_hier (  ) 

Definition at line 555 of file HierarchicalLB.C.

References given_objs, rank, and taken_objs.

void HierarchicalLB::turnOn (  ) 

Definition at line 46 of file HierarchicalLB.C.

void HierarchicalLB::turnOff (  ) 

Definition at line 58 of file HierarchicalLB.C.

HierarchicalLB::hier_objid_t HierarchicalLB::convert_to_hier_objid ( int const &  obj_id,
int const &  pe 
) [static]

Definition at line 86 of file HierarchicalLB.C.

int HierarchicalLB::hier_objid_get_pe ( hier_objid_t const &  id  )  [static]

Definition at line 93 of file HierarchicalLB.C.

int HierarchicalLB::hier_objid_get_id ( hier_objid_t const &  id  )  [static]

Definition at line 99 of file HierarchicalLB.C.

Referenced by calc_load_over().

Here is the caller graph for this function:

void HierarchicalLB::setup_tree (  ) 

Definition at line 150 of file HierarchicalLB.C.

References children, Converse::CkMyPe(), Converse::CkNumPes(), nproc, parent(), rank, and tree_is_setup.

Here is the call graph for this function:

void HierarchicalLB::calc_load_over (  ) 

Definition at line 199 of file HierarchicalLB.C.

References avg_load, hier_objid_get_id(), load_over, my_load, obj_sample, rank, and size.

Referenced by avg_load_reduction().

Here is the call graph for this function:

Here is the caller graph for this function:

void HierarchicalLB::lb_tree_msg ( double const   child_load,
int const   child,
cont_hier_objid_t  load,
int  child_size 
)

Definition at line 237 of file HierarchicalLB.C.

References avg_load, children, given_objs, rank, and total_child_load.

ChildLoadInfo * HierarchicalLB::find_min_child (  ) 

Definition at line 336 of file HierarchicalLB.C.

References c, ChildLoadInfo::cur_load, live_children, ChildLoadInfo::node_size, ChildLoadInfo::pe, and rank.

Referenced by distribute_amoung_children(), and send_down_tree().

Here is the caller graph for this function:

void HierarchicalLB::down_tree_msg ( int const &  from,
cont_hier_objid_t  excess_load,
bool  final_child 
)

Definition at line 361 of file HierarchicalLB.C.

References avg_load, given_objs, my_load, rank, send_down_tree(), and taken_objs.

Here is the call graph for this function:

void HierarchicalLB::transfer_objects ( int const &  to_pe,
std::vector< int > const &  lst 
)

Definition at line 566 of file HierarchicalLB.C.

void HierarchicalLB::finished_transfer_requests (  ) 

void HierarchicalLB::send_down_tree (  ) 

Definition at line 398 of file HierarchicalLB.C.

References avg_load, c, children, Converse::CkMyPe(), ChildLoadInfo::cur_load, find_min_child(), given_objs, ChildLoadInfo::node_size, ChildLoadInfo::pe, rank, and ChildLoadInfo::recs.

Referenced by down_tree_msg().

Here is the call graph for this function:

Here is the caller graph for this function:

void HierarchicalLB::distribute_amoung_children (  ) 

Definition at line 480 of file HierarchicalLB.C.

References avg_load, c, ChildLoadInfo::cur_load, find_min_child(), given_objs, ChildLoadInfo::node_size, parent(), ChildLoadInfo::pe, rank, ChildLoadInfo::recs, and total_child_load.

Here is the call graph for this function:

bool HierarchicalLB::QueryBalanceNow ( int  step  )  [inline]

Definition at line 74 of file HierarchicalLB.h.


Field Documentation

int HierarchicalLB::rank = 0 [private]

int HierarchicalLB::nproc = 0 [private]

Definition at line 77 of file HierarchicalLB.h.

Referenced by setup_tree().

double HierarchicalLB::my_load = 0.0 [private]

double HierarchicalLB::avg_load = 0.0 [private]

double HierarchicalLB::thr_avg = 0.0 [private]

Definition at line 78 of file HierarchicalLB.h.

Referenced by avg_load_reduction(), and finished_transfer_requests().

double HierarchicalLB::total_child_load = 0.0 [private]

Definition at line 79 of file HierarchicalLB.h.

Referenced by setup_tree().

cont_hier_objid_t HierarchicalLB::obj_sample [private]

Definition at line 82 of file HierarchicalLB.h.

Referenced by calc_load_over(), and finished_transfer_requests().

cont_hier_objid_t HierarchicalLB::given_objs [private]

cont_hier_objid_t HierarchicalLB::taken_objs [private]

Definition at line 82 of file HierarchicalLB.h.

Referenced by done_hier(), down_tree_msg(), and finished_transfer_requests().

cont_hier_objid_t HierarchicalLB::load_over [private]

Definition at line 82 of file HierarchicalLB.h.

Referenced by avg_load_reduction(), calc_load_over(), and finished_transfer_requests().

std::unordered_map<int, child_load_t*> HierarchicalLB::children [private]

Definition at line 83 of file HierarchicalLB.h.

Referenced by avg_load_reduction(), lb_tree_msg(), send_down_tree(), and setup_tree().

std::unordered_map<int, child_load_t*> HierarchicalLB::live_children [private]

Definition at line 83 of file HierarchicalLB.h.

Referenced by find_min_child().


The documentation for this struct was generated from the following files:

Generated on Mon Sep 21 08:25:39 2020 for Charm++ by  doxygen 1.5.5