Merge branch 'xiang/optChkp' of charmgit:charm into charm
[charm.git] / src / ck-core / ckmemcheckpoint.ci
1 // double checkpointing in memory
2
3 module CkMemCheckpoint {
4
5   readonly CkGroupID ckCheckPTGroupID;
6
7   message CkArrayCheckPTMessage {
8         double packData[];
9   };    
10   message CkProcCheckPTMessage {
11         char packData[];
12   };    
13   message CkArrayCheckPTReqMessage;
14
15   group [migratable] CkMemCheckPT {
16         entry CkMemCheckPT(int w);
17         entry void createEntry(CkArrayID, CkGroupID, CkArrayIndex, int);
18         // checkpointing
19         entry [expedited] void doItNow(int spe, CkCallback &);  //checkpointing
20         entry void recvData(CkArrayCheckPTMessage *);
21         entry void recvArrayCheckpoint(CkArrayCheckPTMessage *);
22         entry void gotData();
23         entry void recvProcData(CkProcCheckPTMessage *);
24         entry void syncFiles(CkReductionMsg *);
25         entry [reductiontarget] void cpFinish();
26         entry void report();
27         // restart
28         entry [expedited] void restart(int);
29         entry [reductiontarget] void resetReductionMgr();
30         entry [reductiontarget] void removeArrayElements();
31         entry [reductiontarget] void recoverBuddies();
32         entry void recoverEntry(CkArrayCheckPTMessage *msg);
33         entry [reductiontarget] void recoverArrayElements();
34         entry [reductiontarget] void finishUp();
35         entry void gotReply();
36         entry void quiescence(CkCallback&);
37         entry void inmem_restore(CkArrayCheckPTMessage *m);
38         entry void updateLocations(int n, CkGroupID g[n], CkArrayIndex idx[n],int nowOnPe);
39   };
40
41   initproc void CkRegisterRestartHandler();
42
43   mainchare CkMemCheckPTInit {
44         entry CkMemCheckPTInit(CkArgMsg *m);
45   };
46 };