Merge branch 'charm' of charmgit:charm into xiang/optChkp
[charm.git] / src / ck-perf / trace-projections.ci
1 module TraceProjections {
2
3   message KMeansStatsMessage {
4     bool filter[];
5     double kSeedsPos[];
6     double stats[];
7   };
8
9   message KSeedsMessage {
10     double kSeedsPos[];
11   };
12
13   message KSelectionMessage {
14     int minIDs[];
15     int maxIDs[];
16   };
17
18   mainchare TraceProjectionsInit {
19     // This initialization happens at the start of the program and is
20     //   intended to allow commandline arguments to be passed into
21     //   trace-projections.
22     entry TraceProjectionsInit(CkArgMsg *m);
23   };
24
25   // initcalls are automatically executed by the runtime just before
26   //   computation begins. It is assumed this happens before mainchares are
27   //   initialized as it is intended for important runtime registrations.
28   // In this case, we have user-specific reductions and the registration of
29   //   an module exit function.
30   initproc void registerOutlierReduction(void);
31   initnode void initTraceProjectionsBOC(void);
32   
33   readonly CkGroupID traceProjectionsGID;
34   readonly CkGroupID kMeansGID;
35
36   // "shadow" BOC for TraceProjectionsBOC, specialized for KMeans computations
37   group [migratable] KMeansBOC {
38     entry KMeansBOC(bool, int, int, double, bool);
39     
40     entry void startKMeansAnalysis(void);
41     entry void flushCheck(CkReductionMsg *);
42     entry void flushCheckDone(void);
43     entry void getNextPhaseMetrics(void);
44     entry void globalMetricRefinement(CkReductionMsg *);
45     entry void findInitialClusters(KMeansStatsMessage *);
46     entry void updateKSeeds(CkReductionMsg *);
47     entry void updateSeedMembership(KSeedsMessage *);
48     entry void collectDistances(KSelectionMessage *);
49     entry void findNextMinMax(CkReductionMsg *);
50     entry void phaseDone(void);
51   };
52
53   group [migratable] TraceProjectionsBOC {
54     entry TraceProjectionsBOC(bool, bool);
55
56     entry void traceProjectionsParallelShutdown(int);
57     entry void startTimeAnalysis(void);
58     entry void startTimeDone(CkReductionMsg *);
59     entry void startEndTimeAnalysis(void);
60     entry void endTimeDone(CkReductionMsg *);
61     entry void kMeansDone(void);
62     entry void kMeansDone(CkReductionMsg *);
63     entry void finalize(void);
64     entry void closingTraces(void);
65     entry void closeParallelShutdown(CkReductionMsg *);
66
67     entry void flush_warning(int pe);
68   };
69
70 };
71