Cleanup: fix misleading CCE build instructions in crayxc/conv-mach.sh
[charm.git] / src / ck-core / ckarrayreductionmgr.h
blob33da243842eef0e2f36766f28a95d407336493bf
1 #ifndef _CKARRAYREDNMGR_H
2 #define _CKARRAYREDNMGR_H
3 class CkArrayReductionMgr : public NodeGroup{
4 /** This class receives contributions from all the CkReductionMgr s in a node, after each of them has
5 collected all the contributions on one processor. The data from the different processors in a node
6 is collected and sent to the CkNodeReductionMgr for this node
7 */
8 private:
9 int size;
10 int redNo;
11 int count;
12 CkGroupID attachedGroup;
13 CkMsgQ<CkReductionMsg> my_msgs;
14 CkMsgQ<CkReductionMsg> my_futureMsgs;
15 CmiNodeLock lockCount;
16 int alreadyStarted;
17 void init();
18 void collectAllMessages();
19 public:
20 CkArrayReductionMgr();
21 CkArrayReductionMgr(int dummy, CkGroupID gid);
22 CkArrayReductionMgr(CkMigrateMessage *m):NodeGroup(m) {}
23 void contributeArrayReduction(CkReductionMsg *m);
24 CkReductionMsg *reduceMessages(void);
25 void flushStates();
26 virtual void pup(PUP::er &p);
27 void setAttachedGroup(CkGroupID groupID);
28 void startNodeGroupReduction(int number,CkGroupID groupID);
29 virtual int startLocalGroupReductions(int number);
30 virtual int getTotalGCount();
31 ~CkArrayReductionMgr();
33 #endif