这篇教程C++ CkAssert函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中CkAssert函数的典型用法代码示例。如果您正苦于以下问题:C++ CkAssert函数的具体用法?C++ CkAssert怎么用?C++ CkAssert使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了CkAssert函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: CkAssertint BulkAdapt::get_node_from_idxl(int node_idxl, int partID){ IDXL_List *list = meshPtr->node.shared.getIdxlListN(partID); CkAssert(list!=NULL); CkAssert(list->size()>node_idxl); return (*list)[node_idxl];}
开发者ID:davidheryanto,项目名称:sc14,代码行数:7,
示例2: CkAssert/** Print all the elements adjacent to the given element.*/void FEM_Mesh::e2e_printAll(ElemID e) { if (e.id == -1) return; // non existent element FEM_IndexAttribute *eAdj; FEM_IndexAttribute *eAdjType; if(FEM_Is_ghost_index(e.id)){ eAdj = (FEM_IndexAttribute *)elem[e.type].getGhost()->lookup(FEM_ELEM_ELEM_ADJACENCY,"e2e_printAll"); eAdjType = (FEM_IndexAttribute *)elem[e.type].getGhost()->lookup(FEM_ELEM_ELEM_ADJ_TYPES,"e2e_printAll"); } else { eAdj = (FEM_IndexAttribute *)elem[e.type].lookup(FEM_ELEM_ELEM_ADJACENCY,"e2e_printAll"); eAdjType = (FEM_IndexAttribute *)elem[e.type].lookup(FEM_ELEM_ELEM_ADJ_TYPES,"e2e_printAll"); } AllocTable2d<int> &eAdjs = eAdj->get(); AllocTable2d<int> &eAdjTypes = eAdjType->get(); CkAssert(eAdjs.width() == eAdjTypes.width()); CkAssert(e.getSignedId()>=0); for (int i=0; i<eAdjs.width(); i++) { CkPrintf("Element %d,%d is adjacent to %d,%d/n", e.type, e.id, eAdjTypes[e.getSignedId()][i], eAdjs[e.getSignedId()][i]); }}
开发者ID:davidheryanto,项目名称:sc14,代码行数:31,
示例3: CkPrintf/** Count the number of elements on edge (n1, n2) */int FEM_Mesh::countElementsOnEdge(int n1, int n2) { if (n1==n2) { CkPrintf("ERROR: You called countElementsOnEdge() with two identical nodes %d, and %d /n", n1, n2); CkExit(); } int *n1AdjElems=0, *n2AdjElems=0; int n1NumElems, n2NumElems; CkAssert(node.is_valid_any_idx(n1)); CkAssert(node.is_valid_any_idx(n2)); n2e_getAll(n1, n1AdjElems, n1NumElems); n2e_getAll(n2, n2AdjElems, n2NumElems); CkAssert(n1AdjElems!=0); CkAssert(n2AdjElems!=0); int count=0; for (int i=0; i<n1NumElems; i++) { for (int j=0; j<n2NumElems; j++) { if (n1AdjElems[i] == n2AdjElems[j]) { count++; } } } delete[] n1AdjElems; delete[] n2AdjElems; return count;}
开发者ID:davidheryanto,项目名称:sc14,代码行数:32,
示例4: CkAssert//! one entry is called for 'time' seconds, value is counter readingvoid StatTable::setEp(int epidx, int stat, long long value, double time) { // CmiPrintf("StatTable::setEp %08x %d %d %d %f/n", // this, epidx, stat, value, time); CkAssert(epidx<MAX_ENTRIES); CkAssert(stat<numStats_ && stat>=0); int numCalled = stats_[stat].numCalled[epidx]; double avg = stats_[stat].avgCount[epidx]; double stdDev = stats_[stat].stdDevCount[epidx]; stats_[stat].numCalled[epidx]++; stats_[stat].avgCount[epidx] = (avg * numCalled + value) / (numCalled + 1); // note that the stddev calculation is not quite correct, but it's // almost correct and over time will converge with true value avg = stats_[stat].avgCount[epidx]; stats_[stat].stdDevCount[epidx] = (stdDev * numCalled + (value-avg)*(value-avg)) / (numCalled+1); // CmiPrintf("variance %f avg %f value %ld calcVariance %f/n", // stdDev, avg, value, stats_[stat].stdDevCount[epidx]); stats_[stat].totTime[epidx] += time; if (stats_[stat].maxCount[epidx] < value) { stats_[stat].maxCount[epidx] = value; } if (stats_[stat].minCount[epidx] > value) { stats_[stat].minCount[epidx] = value; }}
开发者ID:quinoacomputing,项目名称:quinoa,代码行数:29,
示例5: while// non-recursive algorithm with adaptive grain size controlvoid Node::sequentialColoringHelper(bool& wait, bool& solutionFound, std::vector<vertex>& result){ while(!stackForSequential.empty()) { sequentialCurr = CkTimer(); // Check if the sequential algorithm has run for 'timeout' seconds. If yes, // then return and call rerun() entry method. That would execute the // remaining stack. if(sequentialCurr - sequentialStart > timeout) {#ifdef DEBUG CkPrintf("Timeout in sequential coloring. Stack size=%d/n", stackForSequential.size());#endif thisProxy.rerun(); wait = true; return; } stackNode curr_node_ = stackForSequential.top().first; std::stack<int> removedVertices = stackForSequential.top().second; stackForSequential.pop(); // remove from stack // vertex removal step curr_node_.uncolored_num_ -= curr_node_.vertexRemoval(removedVertices); // coloring found if(curr_node_.uncolored_num_==0) { solutionFound = true; curr_node_.mergeRemovedVerticesBack(removedVertices); result = curr_node_.node_state_; return; } int vIndex = curr_node_.getNextConstrainedVertex(); CkAssert(vIndex!=-1); // Value Ordering // temporary stack to invert the priority queue ordering std::stack<stackNode> tmp; pq_type priorityColors = curr_node_.getValueOrderingOfColors(vIndex); while(!priorityColors.empty()){ std::pair<int,int> p = priorityColors.top(); priorityColors.pop(); std::vector<vertex> new_state = curr_node_.node_state_; CkAssert(p.first < chromaticNum_); int verticesColored = curr_node_.updateState(new_state, vIndex, p.first, true); CkAssert(verticesColored >= 1); tmp.emplace(stackNode(new_state, curr_node_.uncolored_num_ - verticesColored)); } while(!tmp.empty()) { stackForSequential.push(std::make_pair(tmp.top(), removedVertices)); tmp.pop(); } }}
开发者ID:sdasgup3,项目名称:parallel-sudoku,代码行数:61,
示例6: CkAssert/* Coloring clique (i.j,k). * assign min possible color to i and update its ngh. * Do the same for j and k. * While we are doing clique coloring we are also doing * forced moves (using updateState) which will give * further improvements. */void Node::colorClique3(int i, int j, int k){ if(false == node_state_[i].isColored()) { boost::dynamic_bitset<> i_possC = node_state_[i].getPossibleColor(); size_t i_color = i_possC.find_first(); CkAssert(i_color != boost::dynamic_bitset<>::npos); int verticesColored = updateState(node_state_, i, i_color , true); uncolored_num_ -= verticesColored; } if(false == node_state_[j].isColored()) { boost::dynamic_bitset<> j_possC = node_state_[j].getPossibleColor(); size_t j_color = j_possC.find_first(); CkAssert(j_color != boost::dynamic_bitset<>::npos); int verticesColored = updateState(node_state_, j, j_color , true); uncolored_num_ -= verticesColored; } if(false == node_state_[k].isColored()) { boost::dynamic_bitset<> k_possC = node_state_[k].getPossibleColor(); size_t k_color = k_possC.find_first(); CkAssert(k_color != boost::dynamic_bitset<>::npos); int verticesColored = updateState(node_state_, k, k_color, true ); uncolored_num_ -= verticesColored; }}
开发者ID:sdasgup3,项目名称:parallel-sudoku,代码行数:33,
示例7: ne/** Adds newElem to node n's element adjacency list */void FEM_Mesh::n2e_add(int n, int newElem) { if (n == -1) return; if(FEM_Is_ghost_index(n)){ FEM_VarIndexAttribute *eAdj = (FEM_VarIndexAttribute *)node.getGhost()->lookup(FEM_NODE_ELEM_ADJACENCY,"n2e_add"); CkVec<CkVec<ElemID> > &eVec = eAdj->get(); CkVec<ElemID> &nsVec = eVec[FEM_To_ghost_index(n)]; ElemID ne(0, newElem); nsVec.push_back(ne); int *testn2e, testn2ec; n2e_getAll(n,testn2e,testn2ec); for(int i=0; i<testn2ec; i++) { if(FEM_Is_ghost_index(testn2e[i])) CkAssert(elem[0].ghost->is_valid(FEM_From_ghost_index(testn2e[i]))); else CkAssert(elem[0].is_valid(testn2e[i])); } if(testn2ec!=0) delete[] testn2e; } else { FEM_VarIndexAttribute *eAdj = (FEM_VarIndexAttribute *)node.lookup(FEM_NODE_ELEM_ADJACENCY,"n2e_add"); CkVec<CkVec<ElemID> > &eVec = eAdj->get(); CkVec<ElemID> &nsVec = eVec[n]; ElemID ne(0, newElem); nsVec.push_back(ne); }}
开发者ID:davidheryanto,项目名称:sc14,代码行数:29,
示例8: CkAssert/// Update send/recv table at timestampvoid PVT::objUpdate(POSE_TimeType timestamp, int sr){#ifndef CMK_OPTIMIZE int tstat = localStats->TimerRunning(); if(pose_config.stats){ if (tstat) localStats->SwitchTimer(GVT_TIMER); else localStats->TimerStart(GVT_TIMER); }#endif //if ((timestamp < estGVT) && (estGVT > POSE_UnsetTS)) //CkPrintf("timestamp=%d estGVT=%d simdone=%d sr=%d/n", timestamp, //estGVT, simdone, sr); CkAssert(simdone>0 || (timestamp >= estGVT) || (estGVT == POSE_UnsetTS)); CkAssert((sr == SEND) || (sr == RECV)); if ((estGVT > POSE_UnsetTS) && ((timestamp < iterMin) || (iterMin == POSE_UnsetTS))) iterMin = timestamp; if (waitForFirst) { waitForFirst = 0; SendsAndRecvs->Restructure(estGVT, timestamp, sr); } else SendsAndRecvs->Insert(timestamp, sr);#ifndef CMK_OPTIMIZE if(pose_config.stats){ if (tstat) localStats->SwitchTimer(tstat); else localStats->TimerStop(); }#endif}
开发者ID:davidheryanto,项目名称:sc14,代码行数:35,
示例9: ElemID/** Finds oldElem in n's element adjacency list, and replaces it with newElem */void FEM_Mesh::n2e_replace(int n, int oldElem, int newElem) { if (n == -1) return; if(FEM_Is_ghost_index(n)){ FEM_VarIndexAttribute *eAdj = (FEM_VarIndexAttribute *)node.getGhost()->lookup(FEM_NODE_ELEM_ADJACENCY,"n2e_replace"); CkVec<CkVec<ElemID> > &eVec = eAdj->get(); CkVec<ElemID> &nsVec = eVec[FEM_To_ghost_index(n)]; for (int i=0; i<nsVec.length(); i++) { if (nsVec[i].getSignedId() == oldElem) { nsVec[i] = ElemID(0,newElem); break; } } int *testn2e, testn2ec; n2e_getAll(n,testn2e,testn2ec); for(int i=0; i<testn2ec; i++) { if(FEM_Is_ghost_index(testn2e[i])) CkAssert(elem[0].ghost->is_valid(FEM_From_ghost_index(testn2e[i]))); else CkAssert(elem[0].is_valid(testn2e[i])); } if(testn2ec!=0) delete[] testn2e; } else{ FEM_VarIndexAttribute *eAdj = (FEM_VarIndexAttribute *)node.lookup(FEM_NODE_ELEM_ADJACENCY,"n2e_replace"); CkVec<CkVec<ElemID> > &eVec = eAdj->get(); CkVec<ElemID> &nsVec = eVec[n]; for (int i=0; i<nsVec.length(); i++) { if (nsVec[i].getSignedId() == oldElem) { nsVec[i] = ElemID(0,newElem); break; } } }}
开发者ID:davidheryanto,项目名称:sc14,代码行数:37,
示例10: CkAssert/// In sequential mode, begin checkpoint after reaching quiescencevoid sim::SeqBeginCheckpoint() { // Ensure this only happens on sim 0 CkAssert(thisIndex == 0); // Ensure we're checkpointing CkAssert(seqCheckpointInProgress); CkPrintf("POSE: quiescence detected/n"); CkPrintf("POSE: beginning checkpoint on sim %d at GVT=%lld sim time=%.1f sec/n", thisIndex, seqLastCheckpointGVT, CmiWallTimer() + seqStartTime); CkCallback cb(CkIndex_sim::SeqResumeAfterCheckpoint(), CkArrayIndex1D(thisIndex), thisProxy); CkStartCheckpoint(POSE_CHECKPOINT_DIRECTORY, cb);}
开发者ID:gitter-badger,项目名称:quinoa,代码行数:11,
示例11: GetEventIDconst eventID& GetEventID() { //CpvStaticDeclare(eventID, theEventID); // initializes to [0.pe] // for each pe called on CpvAccess(theEventID).incEventID(); CkAssert(CpvAccess(theEventID).getPE()>=0); return(CpvAccess(theEventID)); }
开发者ID:davidheryanto,项目名称:sc14,代码行数:7,
示例12: CkFreeMsg/// Start a forward execution step on myStrat after a checkpoint (sequential mode only)void sim::CheckpointStep(eventMsg *m) { CkFreeMsg(m); if (active < 0) return; // object is migrating; deactivate it #if !CMK_TRACE_DISABLED int tstat; if (pose_config.stats) { tstat = localStats->TimerRunning(); if (!tstat) localStats->TimerStart(SIM_TIMER); else localStats->SwitchTimer(SIM_TIMER); }#endif // ensure sequential mode CkAssert(myStrat->STRAT_T == SEQ_T); myStrat->Step(); // Call Step on strategy#if !CMK_TRACE_DISABLED if (pose_config.stats) { if (!tstat) localStats->TimerStop(); else localStats->SwitchTimer(tstat); }#endif}
开发者ID:gitter-badger,项目名称:quinoa,代码行数:26,
示例13: nodeID_/* ----------------------------------------- * This is the node state BEFORE the search is initiated. * 1. initialize node_state_ with adjList all uncolored * 2. Does pre-coloring * ---------------------------------------*/Node::Node(bool isRoot, int n, CProxy_Node parent) : nodeID_("0"), parent_(parent), uncolored_num_(n), is_root_(isRoot), child_num_(0), child_finished_(0), child_succeed_(0), is_and_node_(false), parentBits(1), parentPtr(NULL){ __sdag_init(); programStart = CkTimer(); CkAssert(isRoot); vertex v = vertex(chromaticNum_); node_state_ = std::vector<vertex>(vertices_, v); //preColor();#ifdef DEBUG CkPrintf("After Precolor/n"); printGraph();#endif int count = uncolored_num_; uncolored_num_ -= vertexRemoval(); CkPrintf("Vertices removed by vertex removal in [MainChare] = %d/n", count-uncolored_num_);#ifdef DEBUG CkPrintf("Vertex Removal/n"); printGraph();#endif CProxy_counter(counterGroup).ckLocalBranch()->registerMe(nodeID_); run();}
开发者ID:sdasgup3,项目名称:parallel-sudoku,代码行数:35,
示例14: SayHi void SayHi(HiMsg *m) { redNo ++; CmiAssert(m->data[0] == 22 && m->data[1] == 28); CkGetSectionInfo(sid, m); CkMulticastMgr *mg = CProxy_CkMulticastMgr(mCastGrpId).ckLocalBranch(); int dataSize = (int)(CompleteMsgSize); int* data = new int [dataSize]; int fragSize = dataSize/NumFrags; CkAssert (0 != fragSize); for (int i=0; i<dataSize; i++) { data [i] = thisIndex; } CkCallback cb(CkIndex_Hello::cb_client(NULL), CkArrayIndex1D(0), thisProxy); mg->contribute(dataSize*sizeof(int), data,CkReduction::sum_int, sid, cb, fragSize*sizeof(int));// data[0] = thisIndex+2;// data[1] = thisIndex+2;// mg->contribute(2*sizeof(int), &data,CkReduction::max_int, sid, sizeof(int));// data[0] = thisIndex+1;// data[1] = thisIndex+1;// mg->contribute(2*sizeof(int), &data,CkReduction::product_int, sid, sizeof(int)); delete m; if (1) ckMigrate((CkMyPe()+1)%CkNumPes()); }
开发者ID:davidheryanto,项目名称:sc14,代码行数:27,
示例15: rectRequestvoid * rectRequest (int comm) { // fprintf(stderr,"[%d] rectRequest for %d gives %p/n",CkMyPe(),comm,CkpvAccess(com_rect_ptr)->get(comm));#ifdef COMLIB_RECT_DEBUG CkAssert(CkpvAccess(com_rect_ptr)->get(comm)!=NULL); isSane(CkpvAccess(com_rect_ptr)->get(comm),comm);#endif return CkpvAccess(com_rect_ptr)->get(comm);}
开发者ID:davidheryanto,项目名称:sc14,代码行数:8,
示例16: _libExitHandlervoid _libExitHandler(envelope *env){ switch(env->getMsgtype()) { case StartExitMsg: CkAssert(CkMyPe()==0); // else goto next case ExitMsg: CkAssert(CkMyPe()==0); if(_libExitStarted) { CmiFree(env); return; } _libExitStarted = 1; env->setMsgtype(ReqStatMsg); env->setSrcPe(CkMyPe()); // if exit in ring, instead of broadcasting, send in ring if (_ringexit){ const int stride = CkNumPes()/_ringtoken; int pe = 0; while (pe<CkNumPes()) { CmiSyncSend(pe, env->getTotalsize(), (char *)env); pe += stride; } CmiFree(env); }else{ CmiSyncBroadcastAllAndFree(env->getTotalsize(), (char *)env); } break; case ReqStatMsg: if (_ringexit) { int stride = CkNumPes()/_ringtoken; int pe = CkMyPe()+1; if (pe < CkNumPes() && pe % stride != 0) CmiSyncSendAndFree(pe, env->getTotalsize(), (char *)env); else CmiFree(env); } else CmiFree(env); //everyone exits here - there may be issues with leftover messages in the queue _libExitStarted = 0; CpvAccess(charmLibExitFlag) = 1; break; default: CmiAbort("Internal Error(_libExitHandler): Unknown-msg-type. Contact Developers./n"); }}
开发者ID:luyukunphy,项目名称:namd,代码行数:46,
示例17: FEM_mesh_smoothvoid FEM_mesh_smooth(int mesh, int *nodes, int nNodes, int attrNo){ vector2d newPos, *coords, *ghostCoords,theCoord; int nNod, nGn, *boundVals, nodesInChunk; int neighbors[3], *adjnodes; int gIdxN; FEM_Mesh *meshP = FEM_Mesh_lookup(mesh, "driver"); nodesInChunk = FEM_Mesh_get_length(mesh,FEM_NODE); boundVals = new int[nodesInChunk]; nGn = FEM_Mesh_get_length(mesh, FEM_GHOST + FEM_NODE); coords = new vector2d[nodesInChunk+nGn]; FEM_Mesh_data(mesh, FEM_NODE, FEM_BOUNDARY, (int*) boundVals, 0, nodesInChunk, FEM_INT, 1); FEM_Mesh_data(mesh, FEM_NODE, attrNo, (double*)coords, 0, nodesInChunk, FEM_DOUBLE, 2); IDXL_Layout_t coord_layout = IDXL_Layout_create(IDXL_DOUBLE, 2); FEM_Update_ghost_field(coord_layout,-1, coords); ghostCoords = &(coords[nodesInChunk]); // FEM_Mesh_data(FEM_Mesh_default_write(), FEM_GHOST+FEM_NODE, attrNo, (double*)ghostCoords, 0, nGn, FEM_DOUBLE, 2); for (int i=0; i<nNodes; i++) { newPos.x=0; newPos.y=0; CkAssert(nodes[i]<nodesInChunk); if (FEM_is_valid(mesh, FEM_NODE, i) && boundVals[i]>-1) //node must be internal { meshP->n2n_getAll(i, &adjnodes, &nNod); // for (int j=0; j<nNod; j++) CkPrintf("node[%d]: %d/n", i,adjnodes[j]); for (int j=0; j<nNod; j++) { //for all adjacent nodes, find coords if (adjnodes[j]<-1) { gIdxN = FEM_From_ghost_index(adjnodes[j]); newPos.x += theCoord.x=ghostCoords[gIdxN].x; newPos.y += theCoord.y=ghostCoords[gIdxN].y; } else { newPos.x += theCoord.x=coords[adjnodes[j]].x; newPos.y += theCoord.y=coords[adjnodes[j]].y; } int rank=FEM_My_partition(); if (rank==0 && i==3 || rank==1 && i==17) { CkPrintf("node[%d]: %d/n", i,adjnodes[j]); CkPrintf("%d: (%f, %f)/n", j, theCoord.x, theCoord.y); } } newPos.x/=nNod; newPos.y/=nNod; FEM_set_entity_coord2(mesh, FEM_NODE, nodes[i], newPos.x, newPos.y); delete [] adjnodes; } } // FEM_Update_field(coord_layout, coords); // FEM_Mesh_data(FEM_Mesh_default_write(), FEM_NODE, attrNo, (double*)coords, 0, nodesInChunk, FEM_DOUBLE, 2); if (coords) delete [] coords; delete [] boundVals;}
开发者ID:brog2610,项目名称:quinoa,代码行数:58,
示例18: ifmain::main (CkArgMsg *m) { int sizeX=0, sizeY=0, sizeZ=0; int grainX=0, grainY=0, grainZ=0; if (m->argc <= 1) { sizeX = sizeY = sizeZ = 16; grainX = grainY = grainZ = 4; } else if (m->argc == 7) { sizeX = atoi (m->argv[1]); sizeY = atoi (m->argv[2]); sizeZ = atoi (m->argv[3]); grainX = atoi (m->argv[4]); grainY = atoi (m->argv[5]); grainZ = atoi (m->argv[6]); CkAssert ((sizeX % grainX) == 0); CkAssert ((sizeY % grainY) == 0); CkAssert ((sizeZ % grainZ) == 0); } else { sizeX = sizeY = sizeZ = atoi (m->argv[1]); grainX = grainY = grainZ = atoi (m->argv[2]); CkAssert ((sizeX % grainX) == 0); } CkPrintf ("Calling Configure/n"); configureLineFFTInfo (&info, sizeX, sizeY, sizeZ, grainX, grainY, grainZ, NULL, ARRAY_REDUCTION, true, NUM_FFT_ITER); CkPrintf ("Calling Create/n"); createLineFFTArray (&info); info.xProxy.setReductionClient (red_handler, NULL); CkPrintf ("Calling Start/n"); startLineFFTArray (&info); delete m;};
开发者ID:brog2610,项目名称:quinoa,代码行数:45,
示例19: newvarsizetest2_main::varsizetest2_main(void){ int sizes[2]; sizes[0] = 100; sizes[1] = 300; varsizetest2_Msg *m = new (sizes,0) varsizetest2_Msg(); CkAssert(m->iarray && m->farray); m->myMain = thishandle; CProxy_varsizetest2_test::ckNew(m);}
开发者ID:davidheryanto,项目名称:sc14,代码行数:9,
示例20: CkAssertvoid CentralLB::findSimResults(LDStats* stats, int count, LBMigrateMsg* msg, LBSimulation* simResults){ CkAssert(simResults != NULL && count == simResults->numPes); // estimate the new loads of the processors. As a first approximation, this is the // sum of the cpu times of the objects on that processor double startT = CkWallTimer(); getPredictedLoadWithMsg(stats, count, msg, simResults->lbinfo, 1); CmiPrintf("getPredictedLoad finished in %fs/n", CkWallTimer()-startT);}
开发者ID:luyukunphy,项目名称:namd,代码行数:9,
示例21: CkAssertint TraceProjector::traceRegisterUserEvent(const char* evt, int e){CkAssert(e==-1 || e>=0); CkAssert(evt != NULL); int event; int biggest = -1; for (int i=0; i<CkpvAccess(usrEvents).length(); i++) { int cur = CkpvAccess(usrEvents)[i]->e; if (cur == e) CmiAbort("UserEvent double registered!"); if (cur > biggest) biggest = cur; } // if biggest is -1, it means no user events were previously registered // hence automatically assigned events will start from id of 0. if (e==-1) event = biggest+1; // automatically assign new event id else event = e; CkpvAccess(usrEvents).push_back(new UsrEvent(event,(char *)evt)); return event;}
开发者ID:davidheryanto,项目名称:sc14,代码行数:19,
示例22: CkAssertvoid ComlibSectionInfo::getPeList(envelope *cb_env, int npes, int *&pelist){ ComlibMulticastMsg *ccmsg = (ComlibMulticastMsg *)EnvToUsr(cb_env); int i; CkAssert(npes==ccmsg->nPes); for (i=0; i<ccmsg->nPes; ++i) { pelist[i]=ccmsg->indicesCount[i].pe; }}
开发者ID:gitter-badger,项目名称:quinoa,代码行数:11,
示例23: CkNodeFirstint 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;}
开发者ID:quinoacomputing,项目名称:quinoa,代码行数:11,
示例24: SRentryvoid PVT::addSR(SRentry **SRs, SRentry *e, POSE_TimeType og, int ne){ register int i; SRentry *tab = (*SRs); SRentry *tmp = tab; for (i=0; i<ne; i++) { if ((e[i].timestamp < og) || (og == POSE_UnsetTS)) { if (!tmp) { // no entries yet tab = new SRentry(e[i].timestamp, (SRentry *)NULL); tab->sends = e[i].sends; tab->recvs = e[i].recvs; tmp = tab; *SRs = tmp; } else { if (e[i].timestamp < tmp->timestamp) { // goes before tmp CkAssert(tmp == *SRs); tab = new SRentry(e[i].timestamp, tmp); tab->sends = e[i].sends; tab->recvs = e[i].recvs; tmp = tab; *SRs = tmp; } else if (e[i].timestamp == tmp->timestamp) { // goes in first entr tmp->sends = tmp->sends + e[i].sends; tmp->recvs = tmp->recvs + e[i].recvs; } else { // search for position while (tmp->next && (e[i].timestamp > tmp->next->timestamp)) tmp = tmp->next; if (!tmp->next) { // goes at end of SRs tmp->next = new SRentry(e[i].timestamp, (SRentry *)NULL); tmp->next->sends = tmp->next->sends + e[i].sends; tmp->next->recvs = tmp->next->recvs + e[i].recvs; tmp = tmp->next; } else if (e[i].timestamp == tmp->next->timestamp) {//goes in tmp->next tmp->next->sends = tmp->next->sends + e[i].sends; tmp->next->recvs = tmp->next->recvs + e[i].recvs; tmp = tmp->next; } else { // goes after tmp but before tmp->next tmp->next = new SRentry(e[i].timestamp, tmp->next); tmp->next->sends = tmp->next->sends + e[i].sends; tmp->next->recvs = tmp->next->recvs + e[i].recvs; tmp = tmp->next; } } } } else break; }}
开发者ID:davidheryanto,项目名称:sc14,代码行数:54,
示例25: rednPong /// Test controller method void rednPong(CkReductionMsg *msg) { CkPrintf("----------------- testController: Received pong via reduction msg for iter %d/n", numIter+1); CkAssert( msg->getSize() == sizeof(int) ); CkAssert( *( reinterpret_cast<int*>(msg->getData()) ) == numIter * numArrays * sectionSize); if (++numIter == maxIter) { CkPrintf("----------------- testController: All %d iterations done/n", numIter); CkExit(); } else { // Ping the section CkPrintf("----------------- testController: Iteration %d done/n", numIter); pingMsg *nextPing = new pingMsg(numIter); sectionProxy.mcastPing(nextPing); } delete msg; }
开发者ID:brog2610,项目名称:quinoa,代码行数:21,
注:本文中的CkAssert函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ CkExit函数代码示例 C++ CkAbort函数代码示例 |