doc: Add serial to list of ci file reserved words
[charm.git] / src / ck-ldb / GreedyCommLB.h
1 /**
2  * \addtogroup CkLdb
3 */
4 /*@{*/
5
6 #ifndef _GREEDYCOMMLB_H_
7 #define _GREEDYCOMMLB_H_
8
9 #include "CentralLB.h"
10 #include "GreedyCommLB.decl.h"
11 #include "CommLBHeap.h"
12
13 #define CUT_OFF_FACTOR 1.200
14
15 void CreateGreedyCommLB();
16 BaseLB * AllocateGreedyCommLB();
17
18 struct graph{
19   int id;
20   int data;
21   int nmsg;
22   struct graph * next;
23 };
24
25 class processorInfo;
26
27 class GreedyCommLB : public CentralLB {
28 public:
29   int nobj,npe, nmigobj;
30   int * assigned_array;
31   processorInfo* processors;
32   graph * object_graph;
33   GreedyCommLB(const CkLBOptions &);
34   GreedyCommLB(CkMigrateMessage *m);
35   void pup(PUP::er &p){ CentralLB::pup(p); }
36   CmiBool QueryBalanceNow(int step);
37   void work(LDStats* stats);
38
39 private:
40   void init();
41   void alloc(int pe, int id, double load);
42   double compute_com(LDStats* stats, int id,int pe);
43   void add_graph(int x, int y, int data, int nmsg);
44   void update(LDStats* stats, int id, int pe);
45
46   double alpha, beeta;
47 };
48
49 #endif
50
51
52 /*@}*/
53