Beispiel #1
0
void ComputeMgr::sendBuildMICForceTable() {
  CProxy_ComputeMgr cm(CkpvAccess(BOCclass_group).computeMgr);
  int pe = CkNodeFirst(CkMyNode());
  int end = pe + CkNodeSize(CkMyNode());
  for( ; pe != end; ++pe ) {
    cm[pe].recvBuildMICForceTable();
  }
}
int CkArrayReductionMgr::getTotalGCount(){
	int firstPE = CkNodeFirst(CkMyNode());
	int totalGCount=0;
	for(int i=0;i<size;i++){
		CProxy_CkReductionMgr reductionMgrProxy(attachedGroup);
		CkReductionMgr *mgrPtr = reductionMgrProxy[firstPE+i].ckLocalBranch();
		CkAssert(mgrPtr != NULL);
		totalGCount += mgrPtr->getGCount();
	}
	return totalGCount;
}
int CkArrayReductionMgr::startLocalGroupReductions(int number){	
	ARPRINT("[%d] startLocalGroupReductions for red No %d my group %d attached group %d number of rednMgrs %d on %p \n",CkMyNode(),number,thisgroup.idx, attachedGroup.idx,size,this);
	if(attachedGroup.isZero()){
		alreadyStarted = number;
		return 0;
	}
	int firstPE = CkNodeFirst(CkMyNode());
	for(int i=0;i<size;i++){
		CProxy_CkReductionMgr reductionMgrProxy(attachedGroup);
		reductionMgrProxy[firstPE+i].ReductionStarting(new CkReductionNumberMsg(number));
	}
	return 1;
}