build: fix travis MPI/SMP build
[charm.git] / src / ck-ldb / RefineKLB.h
1 /**
2  * \addtogroup CkLdb
3 */
4 /*@{*/
5
6 #ifndef _REFINEKLB_H_
7 #define _REFINEKLB_H_
8
9 #include "CentralLB.h"
10 #include "RefinerApprox.h"
11 #include "RefineKLB.decl.h"
12
13 class minheap;
14 class maxheap;
15
16 void CreateRefineKLB();
17 BaseLB *AllocateRefineKLB();
18
19 class RefineKLB : public CBase_RefineKLB {
20 protected:
21   computeInfo *computes;
22   processorInfo *processors;
23   minHeap *pes;
24   maxHeap *computesHeap;
25   int P;
26   int numComputes;
27   double averageLoad;
28
29   double overLoad;
30   void performGreedyMoves(int count, BaseLB::LDStats* stats,int *from_procs, int *to_procs, int numMoves);
31
32 public:
33   RefineKLB(const CkLBOptions &);
34   RefineKLB(CkMigrateMessage *m):CBase_RefineKLB(m) { lbname = (char *)"RefineKLB"; }
35   void work(LDStats* stats);
36 private:
37   bool QueryBalanceNow(int step) { return true; }
38
39 protected:
40 /*
41   void create(LDStats* stats, int count);
42   void assign(computeInfo *c, int p);
43   void assign(computeInfo *c, processorInfo *p);
44   void deAssign(computeInfo *c, processorInfo *pRec);
45   void computeAverage();
46   double computeMax();
47   int refine();
48 */
49 };
50
51 #endif /* _REFINEKLB_H_ */
52
53 /*@}*/