changa  3.5
 All Classes Files Functions Variables Typedefs Enumerations Friends Macros Groups Pages
MultistepLB_notopo.h
1 /*****************************************************************************
2  * $Source$
3  * $Author$
4  * $Date$
5  * $Revision$
6  *****************************************************************************/
7 
12 
13 #ifndef _MULTISTEPLB_NOTOPO_H_
14 #define _MULTISTEPLB_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 "MultistepLB_notopo.decl.h"
23 
34 class MultistepLB_notopo : public CBase_MultistepLB_notopo, public Orb3dCommon {
35 private:
36  void init();
37  bool QueryBalanceNow(int step);
38  void makeActiveProcessorList(BaseLB::LDStats *stats, int numActiveObjs);
39 
40 
41 public:
42  MultistepLB_notopo(const CkLBOptions &);
43  MultistepLB_notopo(CkMigrateMessage *m) : CBase_MultistepLB_notopo(m) {
44  init();
45  }
46 
47  void work(BaseLB::LDStats* stats);
48 
49 
50 private:
51 
52  enum {XDIR=0, YDIR, ZDIR};
53 
54 public:
55 
56 //**************************************
57 // ORB3DLB functions
58 //**************************************
59 //
60  void work2(BaseLB::LDStats* stats, int count);
61  void greedy(BaseLB::LDStats* stats, int count);
62 
63  void pup(PUP::er &p);
64 };
65 
66 #endif /* _MultistepLB_notopo */
67 
Common methods among Orb3d class load balancers.
Definition: Orb3dLBCommon.h:38
void work2(BaseLB::LDStats *stats, int count)
ORB3D load balance.
Definition: MultistepLB_notopo.cpp:169
Multistep load balancer where no processor topology information is used.
Definition: MultistepLB_notopo.h:34
void work(BaseLB::LDStats *stats)
Implement load balancing: store loads and determine active processors and objects, then call ORB3D.
Definition: MultistepLB_notopo.cpp:65