void Sync::openSync(void) { int reportPe = 1; while ( 2 * reportPe < CkNumPes() ) reportPe *= 2; step = -1; useSync = 1; useProxySync = 0; if (useSync) { // if use proxy spanning tree, proxy sync is forced if (!useProxySync && (proxySendSpanning || proxyRecvSpanning) && PatchMap::Object()->numPatches() < 4 * CkNumPes() ) { // If on BG/P, useProxySync should not be turned on for better performance #if ! (CMK_BLUEGENEQ || CMK_BLUEGENEP) // CmiPrintf("[%d] useProxySync is turned on. \n", CkMyPe()); useProxySync = 1; #endif } #if defined(NODEAWARE_PROXY_SPANNINGTREE) && defined(USE_NODEPATCHMGR) // immediate messages can be processed by any PE if (CkMyNodeSize() > 2) useProxySync = 0; #endif // no proxies on this node, no need to use proxy sync. if (useProxySync && ProxyMgr::Object()->numProxies() == 0) { // CmiPrintf("[%d] useProxySync is turned off because no proxy. \n", CkMyPe()); useProxySync = 0; } // if no proxy sync and no home patch, then disable home patch sync as well if (!useProxySync && PatchMap::Object()->numHomePatches() == 0) useSync = 0; } if(CkMyPe() == reportPe) iout << iINFO << "useSync: " << useSync << " useProxySync: " << useProxySync << "\n" << endi; }
void CkArrayReductionMgr::init() { //ARPRINT("Array ReductionMgr Constructor called %d\n",thisgroup); redNo=0; size = CkMyNodeSize(); count = 0; lockCount = CmiCreateLock(); ctorDoneFlag = 1; alreadyStarted = -1; }
void CkArrayReductionMgr::pup(PUP::er &p){ NodeGroup::pup(p); p(redNo);p(count); p|my_msgs; p|my_futureMsgs; p|attachedGroup; if(p.isUnpacking()) { size = CkMyNodeSize(); lockCount = CmiCreateLock(); } }
// called on slave procs void slave_init(int argc, char **argv) { #if CMK_SMP //the original main thread could now be a comm thread //and a slave thread could now be the main thread, //so we have to do the master initialization here if(CmiMyRank()==0){ master_init(argc, argv); if(CmiMyPe()==0) after_backend_init(argc, argv); return; } #endif all_init(argc, argv); if (CkMyRank() < CkMyNodeSize()) // skip the communication thread CsdScheduler(-1); }