build: fix travis MPI/SMP build
[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   initnode 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 [reductiontarget] void flushCheck(bool);
42     entry void flushCheckDone(void);
43     entry void getNextPhaseMetrics(void);
44     entry [reductiontarget] void globalMetricRefinement(CkReductionMsg * msg);
45     entry void findInitialClusters(KMeansStatsMessage *);
46     entry [reductiontarget] void updateKSeeds(double result[n], int n);
47     entry void updateSeedMembership(KSeedsMessage *);
48     entry void collectDistances(KSelectionMessage *);
49     entry [reductiontarget] void findNextMinMax(CkReductionMsg *msg);
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 [reductiontarget] void startTimeDone(double);
59     entry void startEndTimeAnalysis(void);
60     entry [reductiontarget] void endTimeDone(double);
61     entry [reductiontarget] void kMeansDone();
62     entry void kMeansDoneFlushed(void);
63     entry void finalize(void);
64     entry void closingTraces(void);
65     entry [reductiontarget] void closeParallelShutdown(void);
66
67     entry void flush_warning(int pe);
68   };
69
70 };
71