Merge remote branch 'origin/charmrun' into charmrun
[charm.git] / src / conv-ldb / cldb.prioritycentralized.h
1 /*****************************************************************************
2  * $Source$
3  * $Author$
4  * $Date$
5  * $Revision$
6  *****************************************************************************/
7
8 #include "cldb.h"
9 /* for sqrt() */
10 #include <math.h>
11
12
13 typedef struct CldNeighborData
14 {
15   int pe, load;
16 } *CldNeighborData;
17
18 typedef struct loadmsg_s {
19   char header[CmiMsgHeaderSizeBytes];
20   int pe, load;
21 } loadmsg;
22
23
24 /* work request message when idle */
25 typedef struct requestmsg_s {
26   char header[CmiMsgHeaderSizeBytes];
27   int from_pe;
28   unsigned int priority;
29   int notidle;
30 } requestmsg;
31
32 typedef struct readytoexectoken_s{
33     unsigned int priority;
34     void *msg;
35 } readytoexectoken;
36 /******************* Yanhua seed load balancer */
37
38 typedef struct CldProcInfo_s {
39   double lastCheck;
40   int    sent;                  /* flag to disable idle work request */
41   int    balanceEvt;            /* user event for balancing */
42   int    idleEvt;               /* user event for idle balancing */
43   int    idleprocEvt;           /* user event for processing idle req */
44   int   load;
45 } *CldProcInfo;
46
47 /* this is used by master to store the highest priority for each processor */
48 typedef struct CldProcPriorInfo_s {
49   int   pe;
50   int   priority;
51 } *CldProcPriorInfo;
52
53 typedef struct CldSlavePriorInfo_s {
54     int pe;
55     double average_priority;
56     //int priority_1;
57     //int priority_2;
58     int load;
59 } CldSlavePriorInfo;
60