Missed these 2 files earlier.
[charm.git] / src / ck-perf / trace-projectionsBOC.h
1
2 #include "TraceProjections.decl.h"
3
4 extern CkGroupID traceProjectionsGID;
5
6 class TraceProjectionsInit : public Chare {
7   public:
8   TraceProjectionsInit(CkArgMsg*) {
9     traceProjectionsGID = CProxy_TraceProjectionsBOC::ckNew();
10   }
11   TraceProjectionsInit(CkMigrateMessage *m):Chare(m) {}
12 };
13
14 class OutlierStatsMessage : public CMessage_OutlierStatsMessage {
15  public:
16   double *stats;
17 };
18
19 class OutlierWeightMessage : public CMessage_OutlierWeightMessage {
20  public:
21   int sourcePe;
22   double weight;
23 };
24
25 class OutlierThresholdMessage : public CMessage_OutlierThresholdMessage {
26  public:
27   double threshold;
28 };
29
30 class TraceProjectionsBOC : public CBase_TraceProjectionsBOC {
31 private:
32   double dummy;
33   double endTime;
34   double analysisStartTime;
35   double *execTimes;
36   double weight;
37   int encounteredWeights;
38   double *weightArray;
39   int *mapArray;
40
41   FILE *outlierfp;
42   
43 public:
44   TraceProjectionsBOC(void) {};
45   TraceProjectionsBOC(CkMigrateMessage *m):CBase_TraceProjectionsBOC(m) {};
46   void startOutlierAnalysis();
47   void outlierAverageReduction(CkReductionMsg *);
48   void calculateWeights(OutlierStatsMessage *);
49   void determineOutliers(OutlierWeightMessage *);
50   void setOutliers(OutlierThresholdMessage *);
51   void startEndTimeAnalysis();
52   void endTimeReduction(CkReductionMsg *);
53   void finalReduction(CkReductionMsg *);
54   void shutdownAnalysis(void);
55   void closeTrace(void);
56 };
57
58