void WSLB::AtSync() { #if CMK_LBDB_ON // CkPrintf("[%d] WSLB At Sync step %d!!!!\n",CkMyPe(),mystep); if (CkMyPe() == 0) { start_lb_time = CkWallTimer(); CkPrintf("Load balancing step %d starting at %f\n", step(),start_lb_time); } if (neighbor_pes == 0) FindNeighbors(); if (!QueryBalanceNow(step()) || mig_msgs_expected == 0) { MigrationDone(); return; } WSLBStatsMsg* msg = AssembleStats(); thisProxy.ReceiveStats(msg,mig_msgs_expected,neighbor_pes); // Tell our own node that we are ready ReceiveStats((WSLBStatsMsg*)0); #endif }
void HybridBaseLB::ProcessAtSync() { #if CMK_LBDB_ON start_lb_time = 0; if (CkMyPe() == 0) { start_lb_time = CkWallTimer(); if (_lb_args.debug()) CkPrintf("[%s] Load balancing step %d starting at %f\n", lbName(), step(), CkWallTimer()); } // assemble LB database CLBStatsMsg* msg = AssembleStats(); CkMarshalledCLBStatsMessage marshmsg(msg); // send to parent thisProxy[levelData[0]->parent].ReceiveStats(marshmsg, 0); DEBUGF(("[%d] Send stats to myself\n", CkMyPe())); #endif }