ignore idle timers for BigSim, changed CmiWallTimer to CkWallTimer() to better handle...
authorGengbin Zheng <gzheng@illinois.edu>
Tue, 29 Jun 2004 19:27:46 +0000 (19:27 +0000)
committerGengbin Zheng <gzheng@illinois.edu>
Tue, 29 Jun 2004 19:27:46 +0000 (19:27 +0000)
src/ck-ldb/CentralLB.C
src/ck-ldb/LBMachineUtil.C
src/ck-ldb/LBMachineUtil.h
src/ck-ldb/LBObj.C
src/ck-ldb/NborBaseLB.C
src/ck-ldb/OrbLB.C
src/ck-ldb/WSLB.C

index 49024694e298405623afd6178cce5929dc033ca3..df64dd4665c9f1e6c2b86c3113fce4a9cd1e7eae 100644 (file)
@@ -161,7 +161,7 @@ void CentralLB::ProcessAtSync()
 {
 #if CMK_LBDB_ON
   if (CkMyPe() == cur_ld_balancer) {
-    start_lb_time = CmiWallTimer();
+    start_lb_time = CkWallTimer();
   }
   // build and send stats
   const int osz = theLbdb->GetObjDataSz();
@@ -328,7 +328,7 @@ void CentralLB::LoadBalance()
   if (_lb_args.debug()) 
       CmiPrintf("[%s] Load balancing step %d starting at %f in PE%d\n",
                  lbName(), step(),start_lb_time, cur_ld_balancer);
-//    double strat_start_time = CmiWallTimer();
+//    double strat_start_time = CkWallTimer();
 
   // build data
   buildStats();
@@ -371,7 +371,7 @@ void CentralLB::LoadBalance()
 #endif
 }
 
-//    double strat_end_time = CmiWallTimer();
+//    double strat_end_time = CkWallTimer();
 //    CkPrintf("Strat elapsed time %f\n",strat_end_time-strat_start_time);
 // test if sender and receiver in a commData is nonmigratable.
 static int isMigratable(LDObjData **objData, int *len, int count, const LDCommData &commData)
@@ -537,7 +537,7 @@ void CentralLB::ResumeClients(int balancing)
 #if CMK_LBDB_ON
   DEBUGF(("[%d] Resuming clients. balancing:%d.\n",CkMyPe(),balancing));
   if (balancing && _lb_args.debug() && CkMyPe() == cur_ld_balancer) {
-    double end_lb_time = CmiWallTimer();
+    double end_lb_time = CkWallTimer();
     CkPrintf("[%s] Load balancing step %d finished at %f\n",
              lbName(), step()-1,end_lb_time);
     double lbdbMemsize = LBDatabase::Object()->useMem()/1000;
@@ -743,11 +743,11 @@ void CentralLB::simulationRead() {
     }
 
     // now pass it to the strategy routine
-    double startT = CmiWallTimer();
+    double startT = CkWallTimer();
     CmiPrintf("%s> Strategy starts ... \n", lbname);
     LBMigrateMsg* migrateMsg = Strategy(statsData, LBSimulation::simProcs);
     CmiPrintf("%s> Strategy took %fs memory usage: CentralLB:%dKB. \n", 
-               lbname, CmiWallTimer()-startT, (int)(useMem()/1000));
+               lbname, CkWallTimer()-startT, (int)(useMem()/1000));
 
     // now calculate the results of the load balancing simulation
     findSimResults(statsData, LBSimulation::simProcs, migrateMsg, simResults);
@@ -929,10 +929,10 @@ void CentralLB::findSimResults(LDStats* stats, int count, LBMigrateMsg* msg, LBS
     for(int pe = 0; pe < count; pe++)
          simResults->bgLoads[pe] = stats->procs[pe].bg_walltime;
     // sum of the cpu times of the objects on that processor
-    double startT = CmiWallTimer();
+    double startT = CkWallTimer();
     getPredictedLoad(stats, count, msg, simResults->peLoads, 
                     simResults->minObjLoad, simResults->maxObjLoad,1);
-    CmiPrintf("getPredictedLoad finished in %fs\n", CmiWallTimer()-startT);
+    CmiPrintf("getPredictedLoad finished in %fs\n", CkWallTimer()-startT);
 }
 
 void CentralLB::pup(PUP::er &p) { 
index 83b7a53dd090828ba0d48924632cb6fbdbf5a1bb..22a205c72a566f28e02b1106c9b1b399dcb271fa 100644 (file)
@@ -20,6 +20,7 @@ inline void LBMachineUtil::IdleStart(double curWallTime)
 
 inline void LBMachineUtil::IdleEnd(double curWallTime)
 {
+// skip counting idle time in BigSim
   if (state == on) {
     const double stop_idle = curWallTime;
     total_idletime += (stop_idle - start_idle);
@@ -46,14 +47,16 @@ LBMachineUtil::LBMachineUtil()
 
 void LBMachineUtil::StatsOn()
 {
-  const double cur_wall = CmiWallTimer();
-  const double cur_cpu = CmiCpuTimer();
+  const double cur_wall = CkWallTimer();
+  const double cur_cpu = CkCpuTimer();
 
   if (state == off) {
+#if ! CMK_BLUEGENE_CHARM
     cancel_idleStart=CcdCallOnConditionKeep(
         CcdPROCESSOR_BEGIN_IDLE,(CcdVoidFn)staticIdleStart,(void *)this);
     cancel_idleEnd=CcdCallOnConditionKeep(
          CcdPROCESSOR_END_IDLE,(CcdVoidFn)staticIdleEnd,(void *)this);
+#endif
     state = on;
   }
 
@@ -68,14 +71,16 @@ void LBMachineUtil::StatsOn()
 void LBMachineUtil::StatsOff()
 {
   if (state == on) {
+#if ! CMK_BLUEGENE_CHARM
     CcdCancelCallOnConditionKeep(CcdPROCESSOR_BEGIN_IDLE,cancel_idleStart);
     CcdCancelCallOnConditionKeep(CcdPROCESSOR_END_IDLE,cancel_idleEnd);
+#endif
     state = off;
   }
 
   if (start_totalwall != -1.) {
-    const double cur_wall = CmiWallTimer();
-    const double cur_cpu = CmiCpuTimer();
+    const double cur_wall = CkWallTimer();
+    const double cur_cpu = CkCpuTimer();
     total_walltime += (cur_wall - start_totalwall);
     total_cputime += (cur_cpu - start_totalcpu);
   }
@@ -89,8 +94,8 @@ void LBMachineUtil::Clear()
   if (state == off) {
     start_totalwall = start_totalcpu = -1.;
   } else {
-    const double cur_wall = CmiWallTimer();
-    const double cur_cpu = CmiCpuTimer();
+    const double cur_wall = CkWallTimer();
+    const double cur_cpu = CkCpuTimer();
 
     start_totalwall = cur_wall;
     start_totalcpu = cur_cpu;
@@ -101,8 +106,8 @@ void LBMachineUtil::Clear()
 void LBMachineUtil::TotalTime(double* walltime, double* cputime)
 {
   if (state == on) {
-    const double cur_wall = CmiWallTimer();
-    const double cur_cpu = CmiCpuTimer();
+    const double cur_wall = CkWallTimer();
+    const double cur_cpu = CkCpuTimer();
     total_walltime += (cur_wall - start_totalwall);
     total_cputime += (cur_cpu - start_totalcpu);
     start_totalwall = cur_wall;
index 4db9a0f674cb4ad1848b816ad33df013999446c1..8908555c3b77922007cfd34d42fad6e202ef6ee7 100644 (file)
@@ -13,7 +13,7 @@
 #ifndef _LDMACHINEUTIL_H_
 #define _LDMACHINEUTIL_H_
 
-#include "converse.h"
+#include "charm++.h"
 
 class LBMachineUtil {
 public:
index 23d616a97aeef943dd0b785b2dcf16a187061383..534ef6de5e70227e444cbee26865e011a2f1068a 100644 (file)
@@ -41,14 +41,14 @@ void LBObj::IncrementTime(double walltime, double cputime)
 
 void LBObj::StartTimer(void)
 {
-  startWTime = CmiWallTimer();
-  startCTime = CmiCpuTimer();
+  startWTime = CkWallTimer();
+  startCTime = CkCpuTimer();
 }
 
 void LBObj::StopTimer(double* walltime, double* cputime)
 {
-  *walltime = CmiWallTimer() - startWTime;
-  *cputime = CmiCpuTimer() - startCTime;
+  *walltime = CkWallTimer() - startWTime;
+  *cputime = CkCpuTimer() - startCTime;
 }
 
 #endif
index 6f21e4ac742f490e03f114e8ba9dabb1bba9bee7..67f4821506cb0d4e6f42855da65a81389d42cfa5 100644 (file)
@@ -129,7 +129,7 @@ void NborBaseLB::AtSync()
   }
 
   if (CkMyPe() == 0) {
-    start_lb_time = CmiWallTimer();
+    start_lb_time = CkWallTimer();
     if (_lb_args.debug())
       CkPrintf("Load balancing step %d starting at %f\n",
               step(),start_lb_time);
@@ -257,7 +257,7 @@ void NborBaseLB::ReceiveStats(CkMarshalledNLBStatsMessage &data)
 
   const int clients = mig_msgs_expected;
   if (stats_msg_count == clients && receive_stats_ready) {
-    double strat_start_time = CmiWallTimer();
+    double strat_start_time = CkWallTimer();
     receive_stats_ready = 0;
     LBMigrateMsg* migrateMsg = Strategy(statsDataList,clients);
 
@@ -288,7 +288,7 @@ void NborBaseLB::ReceiveStats(CkMarshalledNLBStatsMessage &data)
 
     theLbdb->ClearLoads();
     if (CkMyPe() == 0) {
-      double strat_end_time = CmiWallTimer();
+      double strat_end_time = CkWallTimer();
       if (_lb_args.debug())
         CkPrintf("Strat elapsed time %f\n",strat_end_time-strat_start_time);
     }
@@ -343,7 +343,7 @@ void NborBaseLB::MigrationDone()
 {
 #if CMK_LBDB_ON
   if (CkMyPe() == 0 && start_lb_time != 0.0) {
-    double end_lb_time = CmiWallTimer();
+    double end_lb_time = CkWallTimer();
     if (_lb_args.debug())
       CkPrintf("Load balancing step %d finished at %f duration %f\n",
                step(),end_lb_time,end_lb_time - start_lb_time);
index 9fa0ea5ac64c9bc6d7c55fdf820497e49dd0bfcd..318d1b38b15f3d4a5dcc8be530b2c8cae370cd90 100644 (file)
@@ -299,13 +299,13 @@ void OrbLB::work(CentralLB::LDStats* stats, int count)
     objIdx ++;
   }
 
-  double t = CmiWallTimer();
+  double t = CkWallTimer();
 
   quicksort(XDIR);
   quicksort(YDIR);
   quicksort(ZDIR);
 #ifdef DEBUG
-  CmiPrintf("qsort time: %f\n", CmiWallTimer() - t);
+  CmiPrintf("qsort time: %f\n", CkWallTimer() - t);
 #endif
 
   npartition = P;
@@ -389,7 +389,7 @@ void OrbLB::work(CentralLB::LDStats* stats, int count)
   for (i=0; i<3; i++) delete [] vArray[i];
   delete [] partitions;
 
-  CmiPrintf("OrbLB finished time: %f\n", CmiWallTimer() - t);
+  CmiPrintf("OrbLB finished time: %f\n", CkWallTimer() - t);
 #endif
 }
 
index 4ac5712807147ebdc0121da51c2d47cc404aa7b4..929ccc35dc912556b8f9fc52c3c8896f8484bdd8 100644 (file)
@@ -143,7 +143,7 @@ void WSLB::AtSync()
   //  CkPrintf("[%d] WSLB At Sync step %d!!!!\n",CkMyPe(),mystep);
 
   if (CkMyPe() == 0) {
-    start_lb_time = CmiWallTimer();
+    start_lb_time = CkWallTimer();
     CkPrintf("Load balancing step %d starting at %f\n",
             step(),start_lb_time);
   }
@@ -298,7 +298,7 @@ void WSLB::ReceiveStats(WSLBStatsMsg *m)
 
   const int clients = mig_msgs_expected;
   if (stats_msg_count == clients && receive_stats_ready) {
-    double strat_start_time = CmiWallTimer();
+    double strat_start_time = CkWallTimer();
     receive_stats_ready = 0;
     LBMigrateMsg* migrateMsg = Strategy(statsDataList,clients);
 
@@ -328,7 +328,7 @@ void WSLB::ReceiveStats(WSLBStatsMsg *m)
 
     theLbdb->ClearLoads();
     if (CkMyPe() == 0) {
-      double strat_end_time = CmiWallTimer();
+      double strat_end_time = CkWallTimer();
       CkPrintf("Strat elapsed time %f\n",strat_end_time-strat_start_time);
     }
   }
@@ -382,7 +382,7 @@ void WSLB::MigrationDone()
 {
 #if CMK_LBDB_ON
   if (CkMyPe() == 0) {
-    double end_lb_time = CmiWallTimer();
+    double end_lb_time = CkWallTimer();
     CkPrintf("Load balancing step %d finished at %f duration %f\n",
             step(),end_lb_time,end_lb_time - start_lb_time);
   }
@@ -404,7 +404,7 @@ void WSLB::ResumeClients()
 CmiBool WSLB::QueryBalanceNow(int step)
 {
 #if CMK_LBDB_ON
-  double now = CmiWallTimer();
+  double now = CkWallTimer();
 
   if (step==0)
     first_step_time = now;