PPL Logo

CkArrayReductionMgr Class Reference

#include <ckarrayreductionmgr.h>

Inheritance diagram for CkArrayReductionMgr:

Inheritance graph
[legend]
Collaboration diagram for CkArrayReductionMgr:

Collaboration graph
[legend]

Public Member Functions

 CkArrayReductionMgr ()
 CkArrayReductionMgr (int dummy, CkGroupID gid)
 CkArrayReductionMgr (CkMigrateMessage *m)
void contributeArrayReduction (CkReductionMsg *m)
CkReductionMsg * reduceMessages (void)
void flushStates ()
virtual void pup (PUP::er &p)
void setAttachedGroup (CkGroupID groupID)
void startNodeGroupReduction (int number, CkGroupID groupID)
virtual int startLocalGroupReductions (int number)
virtual int getTotalGCount ()

Data Fields

volatile int ctorDoneFlag

Private Member Functions

void init ()
void collectAllMessages ()

Private Attributes

int size
 This class receives contributions from all the CkReductionMgr s in a node, after each of them has collected all the contributions on one processor.
int redNo
int count
CkGroupID attachedGroup
CkMsgQ< CkReductionMsg > my_msgs
CkMsgQ< CkReductionMsg > my_futureMsgs
CmiNodeLock lockCount
int alreadyStarted

Detailed Description

Definition at line 3 of file ckarrayreductionmgr.h.


Constructor & Destructor Documentation

CkArrayReductionMgr::CkArrayReductionMgr (  ) 

Definition at line 26 of file ckarrayreductionmgr.C.

References attachedGroup, init(), and _ckGroupID::setZero().

CkArrayReductionMgr::CkArrayReductionMgr ( int  dummy,
CkGroupID  gid 
)

Definition at line 31 of file ckarrayreductionmgr.C.

References attachedGroup, and init().

CkArrayReductionMgr::CkArrayReductionMgr ( CkMigrateMessage m  )  [inline]

Definition at line 23 of file ckarrayreductionmgr.h.


Member Function Documentation

void CkArrayReductionMgr::init (  )  [private]

void CkArrayReductionMgr::collectAllMessages (  )  [private]

keep a count of elements that contributed to the original reduction

Definition at line 48 of file ckarrayreductionmgr.C.

References BGConverse::CkMyNode(), NodeGroup::contributeWithCounter(), count, CkQ< T >::deq(), CkQ< T >::enq(), CkQ< T >::length(), my_futureMsgs, my_msgs, n, redNo, reduceMessages(), and size.

Referenced by contributeArrayReduction().

void CkArrayReductionMgr::contributeArrayReduction ( CkReductionMsg *  m  ) 

store the contribution untill all procs have contributed. At that point reduce and carry out a reduction among nodegroups

Definition at line 71 of file ckarrayreductionmgr.C.

References BGConverse::CkMyNode(), CmiLock(), CmiUnlock(), collectAllMessages(), count, CkQ< T >::enq(), _ckGroupID::idx, lockCount, my_futureMsgs, my_msgs, redNo, and IrrGroup::thisgroup.

Referenced by CkReductionMgr::finishReduction().

CkReductionMsg * CkArrayReductionMgr::reduceMessages ( void   ) 

void CkArrayReductionMgr::flushStates (  )  [virtual]

void CkArrayReductionMgr::pup ( PUP::er p  )  [virtual]

void CkArrayReductionMgr::setAttachedGroup ( CkGroupID  groupID  ) 

Definition at line 182 of file ckarrayreductionmgr.C.

References alreadyStarted, attachedGroup, and BGConverse::CkMyNode().

Referenced by startNodeGroupReduction().

void CkArrayReductionMgr::startNodeGroupReduction ( int  number,
CkGroupID  groupID 
)

int CkArrayReductionMgr::startLocalGroupReductions ( int  number  )  [virtual]

int CkArrayReductionMgr::getTotalGCount (  )  [virtual]


Field Documentation

This class receives contributions from all the CkReductionMgr s in a node, after each of them has collected all the contributions on one processor.

The data from the different processors in a node is collected and sent to the CkNodeReductionMgr for this node

Definition at line 9 of file ckarrayreductionmgr.h.

Referenced by collectAllMessages(), getTotalGCount(), init(), pup(), and startLocalGroupReductions().

CkMsgQ<CkReductionMsg> CkArrayReductionMgr::my_msgs [private]

CkMsgQ<CkReductionMsg> CkArrayReductionMgr::my_futureMsgs [private]

Definition at line 15 of file ckarrayreductionmgr.h.

Referenced by contributeArrayReduction(), init(), and pup().

Definition at line 16 of file ckarrayreductionmgr.h.

Referenced by init(), setAttachedGroup(), and startLocalGroupReductions().

Definition at line 20 of file ckarrayreductionmgr.h.

Referenced by init().


The documentation for this class was generated from the following files:

Generated on Thu May 24 07:56:59 2012 for Charm++ by  doxygen 1.5.5