changa  3.5
 All Classes Files Functions Variables Typedefs Enumerations Friends Macros Groups Pages
MultistepNodeLB_notopo.h
1 /*****************************************************************************
2  * $Source$
3  * $Author$
4  * $Date$
5  * $Revision$
6  *****************************************************************************/
7 
12 
13 #ifndef _MULTISTEPNODELB_NOTOPO_H_
14 #define _MULTISTEPNODELB_NOTOPO_H_
15 
16 #define MCLBMS // multistepping enabled
17 #define MCLB_ORBSMOOTH // orbsmooth for large steps
18 #define MCLB_RR // round robin otherwise
19 
20 #include "Orb3dLBCommon.h"
21 
22 #include "MultistepNodeLB_notopo.decl.h"
23 
28 class MultistepNodeLB_notopo : public CBase_MultistepNodeLB_notopo, public Orb3dCommon {
29 private:
30 
31  int prevMaxPredPe;
32 
33  void init();
34  bool QueryBalanceNow(int step);
35 
36 public:
37  MultistepNodeLB_notopo(const CkLBOptions &);
38  MultistepNodeLB_notopo(CkMigrateMessage *m) : CBase_MultistepNodeLB_notopo(m) {
39  init();
40  }
41 
42  void work(BaseLB::LDStats* stats);
43  void balanceTPs(BaseLB::LDStats* stats);
44  void balanceTPsNode(BaseLB::LDStats* stats);
45 
46 private:
47 
48  enum {XDIR=0, YDIR, ZDIR};
49 
50 public:
51 
52 //**************************************
53 // ORB3DLB functions
54 //**************************************
55 //
56  void work2(BaseLB::LDStats* stats, int count);
57  void greedy(BaseLB::LDStats* stats, int count);
58 
59  void pup(PUP::er &p);
60 };
61 
62 #endif /* _MultistepNodeLB_notopo */
63 
Common methods among Orb3d class load balancers.
Definition: Orb3dLBCommon.h:38
void work2(BaseLB::LDStats *stats, int count)
ORB3D load balance across nodes (as opposed to processors).
Definition: MultistepNodeLB_notopo.cpp:175
Multistep load balancer where no processor topology information is used. This first performs orb part...
Definition: MultistepNodeLB_notopo.h:28
void work(BaseLB::LDStats *stats)
Implement load balancing: store loads and decide whether to do ORB3D load balancing.
Definition: MultistepNodeLB_notopo.cpp:51
void balanceTPsNode(BaseLB::LDStats *stats)
Refinement strategy to distribute TreePieces evenly among nodes. If heavily loaded nodes are detect...
Definition: MultistepNodeLB_notopo.cpp:295