#include <ReductionMgr.h>
Inheritance diagram for ReductionMgr:

Public Member Functions | |
| ReductionMgr () | |
| ~ReductionMgr () | |
| SubmitReduction * | willSubmit (int setID) |
| RequireReduction * | willRequire (int setID) |
| void | remoteRegister (ReductionRegisterMsg *msg) |
| void | remoteUnregister (ReductionRegisterMsg *msg) |
| void | remoteSubmit (ReductionSubmitMsg *msg) |
Static Public Member Functions | |
| ReductionMgr * | Object (void) |
Friends | |
| class | SubmitReduction |
| class | RequireReduction |
|
|
Definition at line 111 of file ReductionMgr.C. References DebugM, and REDUCTION_MAX_CHILDREN. 00111 {
00112 if (CkpvAccess(ReductionMgr_instance) == 0) {
00113 CkpvAccess(ReductionMgr_instance) = this;
00114 } else {
00115 DebugM(1, "ReductionMgr::ReductionMgr() - another instance exists!\n");
00116 }
00117
00118 // fill in the spanning tree fields
00119 if (CkMyPe() == 0) {
00120 myParent = -1;
00121 } else {
00122 myParent = (CkMyPe()-1)/REDUCTION_MAX_CHILDREN;
00123 }
00124 firstChild = CkMyPe()*REDUCTION_MAX_CHILDREN + 1;
00125 if (firstChild > CkNumPes()) firstChild = CkNumPes();
00126 lastChild = firstChild + REDUCTION_MAX_CHILDREN;
00127 if (lastChild > CkNumPes()) lastChild = CkNumPes();
00128
00129 // initialize data
00130 for(int i=0; i<REDUCTION_MAX_SET_ID; i++) {
00131 reductionSets[i] = 0;
00132 }
00133
00134 DebugM(1,"ReductionMgr() instantiated.\n");
00135 }
|
|
|
Definition at line 138 of file ReductionMgr.C. 00138 {
00139 for(int i=0; i<REDUCTION_MAX_SET_ID; i++) {
00140 delete reductionSets[i];
00141 }
00142
00143 }
|
|
|
|
Definition at line 226 of file ReductionMgr.C. References ReductionSet::addToRemoteSequenceNumber, ReductionSet::dataQueue, ReductionSet::eventsRegistered, NAMD_die(), ReductionSet::nextSequenceNumber, ReductionRegisterMsg::reductionSetID, and ReductionRegisterMsg::sourceNode. 00226 {
00227
00228 int setID = msg->reductionSetID;
00229 ReductionSet *set = getSet(setID);
00230 if ( set->dataQueue ) {
00231 NAMD_die("ReductionMgr::willSubmit called while reductions outstanding on parent!");
00232 }
00233
00234 set->eventsRegistered++;
00235 set->addToRemoteSequenceNumber[msg->sourceNode - firstChild]
00236 = set->nextSequenceNumber;
00237 delete msg;
00238 }
|
|
|
Definition at line 256 of file ReductionMgr.C. References ReductionSet::addToRemoteSequenceNumber, BigReal, ReductionSubmitMsg::data, ReductionSubmitMsg::dataSize, ReductionSubmitMsg::reductionSetID, ReductionSubmitMsg::sequenceNumber, and ReductionSubmitMsg::sourceNode. 00256 {
00257 int setID = msg->reductionSetID;
00258 ReductionSet *set = reductionSets[setID];
00259 int seqNum = msg->sequenceNumber
00260 + set->addToRemoteSequenceNumber[msg->sourceNode - firstChild];
00261 int size = msg->dataSize;
00262 BigReal *data = msg->data;
00263
00264 mergeAndDeliver(set,seqNum,data,size);
00265 delete msg;
00266 }
|
|
|
Definition at line 241 of file ReductionMgr.C. References ReductionSet::dataQueue, ReductionSet::eventsRegistered, NAMD_die(), and ReductionRegisterMsg::reductionSetID. 00241 {
00242
00243 int setID = msg->reductionSetID;
00244 ReductionSet *set = reductionSets[setID];
00245 if ( set->dataQueue ) {
00246 NAMD_die("SubmitReduction deleted while reductions outstanding on parent!");
00247 }
00248
00249 set->eventsRegistered--;
00250
00251 delSet(setID);
00252 delete msg;
00253 }
|
|
|
Definition at line 319 of file ReductionMgr.C. References ReductionSet::dataQueue, ReductionSet::eventsRegistered, RequireReduction::master, NAMD_die(), ReductionSet::nextSequenceNumber, RequireReduction::reductionSetID, ReductionSet::requireRegistered, and RequireReduction::sequenceNumber. Referenced by Controller::Controller(), and PressureProfileReduction::PressureProfileReduction(). 00319 {
00320 ReductionSet *set = getSet(setID);
00321 set->eventsRegistered++;
00322 set->requireRegistered++;
00323 if ( set->dataQueue ) {
00324 NAMD_die("ReductionMgr::willRequire called while reductions outstanding!");
00325 }
00326
00327 RequireReduction *handle = new RequireReduction;
00328 handle->reductionSetID = setID;
00329 handle->sequenceNumber = set->nextSequenceNumber;
00330 handle->master = this;
00331
00332 return handle;
00333 }
|
|
|
|
Definition at line 224 of file ReductionMgr.h. |
|
|
Definition at line 223 of file ReductionMgr.h. |
1.3.9.1