New comlib strategies for CPMD. Propagates faster than a ring and is largely contenti...
[charm.git] / src / ck-com / ComlibManager.ci
1 module comlib {
2   //  initproc void initComlibManager();
3
4   message ComlibDummyMsg;
5   //  message PrioMsg;
6   message ComlibMulticastMsg {
7         CkArrayIndexMax indices[];
8         char usrMsg[];
9   };
10
11   group [migratable] ComlibManager {
12     entry ComlibManager();
13
14     entry void barrier(void);
15     entry void barrier2(void);
16     entry void resumeFromBarrier2(void);
17     entry void receiveTable(StrategyWrapper sw, 
18         CkHashtableT<ClibGlobalArrayIndex, int>);
19
20     entry void receiveRemoteSend(CkQ<CharmMessageHolder *> &remoteQ, int id);
21     entry void collectStats(ComlibLocalStats s, int src, 
22         CkVec<ClibGlobalArrayIndex>);
23   }
24
25   mainchare ComlibManagerMain {
26     entry ComlibManagerMain();  
27   }
28
29   //PUPable CharmStrategy;
30   //PUPable MessageHolder;
31   //PUPable CharmMessageHolder;
32
33   PUPable DummyStrategy;
34   PUPable NodeMulticast;
35   PUPable StreamingStrategy;
36   PUPable MPIStrategy;
37   PUPable DirectMulticastStrategy;
38   PUPable EachToManyMulticastStrategy;  
39   PUPable RingMulticastStrategy;        
40   PUPable PipeBroadcastStrategy;
41   PUPable MeshStreamingStrategy;
42   PUPable PrioStreaming;
43   PUPable BroadcastStrategy;
44   PUPable MultiRingMulticast;
45
46   //Strategy pupable defined in the array manager code, along with the
47   //array listener code
48 };