Refactoring control point and critical path detection code.
[charm.git] / src / ck-cp / controlPoints.ci
1 module ControlPoints {
2
3   readonly CProxy_controlPointManager controlPointManagerProxy;
4   readonly int random_seed;
5   readonly long controlPointSamplePeriod;
6
7
8
9   initproc void registerIdleTimeReduction(void);        
10   initproc void initializeCriticalPath(void);   
11
12
13   message pathInformationMsg { 
14          PathHistoryTableEntry history[];
15   };
16
17
18  message controlPointMsg { 
19          char data[];
20  };
21
22
23  message redistributor2DMsg {  
24         double data[]; 
25  }; 
26  
27
28   mainchare controlPointMain {
29     entry controlPointMain(CkArgMsg*);
30   };
31
32  initnode void controlPointInitNode();
33
34  group controlPointManager {
35     entry controlPointManager();
36
37     entry void requestMemoryUsage(CkCallback cb);
38     entry void gatherMemoryUsage(CkReductionMsg *msg);
39
40     entry void requestIdleTime(CkCallback cb);
41     entry void gatherIdleTime(CkReductionMsg *msg);
42
43 //    entry void registerTerminalPath(PathHistory &path);
44
45
46      entry void traceCriticalPathBack(pathInformationMsg *msg);
47      entry void broadcastCriticalPathResult(pathInformationMsg *msg);
48      entry void criticalPathDone(CkReductionMsg *msg);
49
50  }   
51
52
53  
54   array [2D] redistributor2D {
55    entry redistributor2D(void);
56
57    entry void startup();        
58
59     entry void resizeGranules(int, int);
60 //    entry void receiveTransposeData(int top, int left, int height, int width, int new_chare_cols, int  new_chare_rows, int which_array, double d[width*height]);
61     entry void receiveTransposeData(redistributor2DMsg *msg);
62
63   } 
64
65
66
67
68 };