CentralLB: remove redundant parameter 'count'
authorAbhinav S Bhatele <bhatele@illinois.edu>
Sat, 23 Oct 2010 23:13:50 +0000 (18:13 -0500)
committerAbhinav S Bhatele <bhatele@illinois.edu>
Sat, 6 Nov 2010 22:46:43 +0000 (17:46 -0500)
Remove the 'count' parameter from four functions in CentralLB and fix the
corresponding compilation errors in combination LB implementations. The next
step is to change the work implementations in other load balancers.

Change docs and version number to reflect the ldb API change, so that
application load balancers in NAMD and ChaNGa can work either way.

doc/charm++/advancedlb.tex
src/ck-ldb/CentralLB.C
src/ck-ldb/CentralLB.h
src/ck-ldb/ComboCentLB.C
src/ck-ldb/ComboCentLB.h
src/ck-ldb/HybridLB.C
src/ck-ldb/HybridLB.h
src/ck-ldb/PhasebyArrayLB.C
src/ck-ldb/PhasebyArrayLB.h
src/scripts/configure
src/scripts/configure.in

index 0e04477ff96bd54e8a30d0ded9ca2c18003b9d56..2e389f70ea516410c716d8539a692737b71a88fb 100644 (file)
@@ -75,10 +75,10 @@ load balancer {\em fooLB} to illustrate the steps).
 \item Create files named {\em fooLB.ci, fooLB.h and fooLB.C}. One can choose to
 copy and rename the files RotateLB.* and rename the class name in those files.
 
-\item Implement the {\em fooLB} class method --- {\bf
-fooLB::work(CentralLB::LDStats* stats, int count)} This method takes the load
-balancing database ({\em stats}) as an input, and output the new mapping of
-objects to processors in {\em stats->to\_proc} array.
+\item Implement the {\em fooLB} class method --- {\bf fooLB::work(LDStats*
+stats)} This method takes the load balancing database ({\em stats}) as an
+input, and output the new mapping of objects to processors in {\em
+stats->to\_proc} array.
 
 \item Build charm for your platform (This will create the required links in the tmp directory).
 
index 1f2b0598290c554042eaf0c0c9a66f4c010c00cf..9787ba23ab936f625affff85d4ebbb295821e597 100644 (file)
@@ -561,7 +561,7 @@ void CentralLB::LoadBalance()
   for(proc = 0; proc < clients; proc++)
       statsData->procs[proc].available = (CmiBool)availVector[proc];
 
-  preprocess(statsData, clients);
+  preprocess(statsData);
 
 //    CkPrintf("Before Calling Strategy\n");
 
@@ -589,7 +589,7 @@ void CentralLB::LoadBalance()
 #endif
   
   double strat_start_time = CkWallTimer();
-  LBMigrateMsg* migrateMsg = Strategy(statsData, clients);
+  LBMigrateMsg* migrateMsg = Strategy(statsData);
 #if (defined(_FAULT_MLOG_) || defined(_FAULT_CAUSAL_))
        migrateMsg->step = step();
 #endif
@@ -1027,7 +1027,7 @@ void CentralLB::CheckMigrationComplete()
 #endif
 }
 
-void CentralLB::preprocess(LDStats* stats,int count)
+void CentralLB::preprocess(LDStats* stats)
 {
   if (_lb_args.ignoreBgLoad())
     stats->clearBgLoad();
@@ -1037,13 +1037,13 @@ void CentralLB::preprocess(LDStats* stats,int count)
 }
 
 // default load balancing strategy
-LBMigrateMsg* CentralLB::Strategy(LDStats* stats,int count)
+LBMigrateMsg* CentralLB::Strategy(LDStats* stats)
 {
 #if CMK_LBDB_ON
   if (_lb_args.debug())
     CkPrintf("[%d] %s started at: %f. \n",CkMyPe(), lbname, CmiWallTimer());
 
-  work(stats, count);
+  work(stats);
 
   if (_lb_args.debug()>1)  {
     CkPrintf("Obj Map:\n");
@@ -1051,7 +1051,7 @@ LBMigrateMsg* CentralLB::Strategy(LDStats* stats,int count)
     CkPrintf("\n");
   }
 
-  LBMigrateMsg *msg = createMigrateMsg(stats, count);
+  LBMigrateMsg *msg = createMigrateMsg(stats);
 
   if (_lb_args.debug()) {
     envelope *env = UsrToEnv(msg);
@@ -1064,14 +1064,14 @@ LBMigrateMsg* CentralLB::Strategy(LDStats* stats,int count)
 #endif
 }
 
-void CentralLB::work(LDStats* stats,int count)
+void CentralLB::work(LDStats* stats)
 {
   // does nothing but print the database
   stats->print();
 }
 
 // generate migrate message from stats->from_proc and to_proc
-LBMigrateMsg * CentralLB::createMigrateMsg(LDStats* stats,int count)
+LBMigrateMsg * CentralLB::createMigrateMsg(LDStats* stats)
 {
   int i;
   CkVec<MigrateInfo*> migrateInfo;
@@ -1200,9 +1200,9 @@ void CentralLB::simulationRead() {
 
     // now pass it to the strategy routine
     double startT = CkWallTimer();
-    preprocess(statsData, LBSimulation::simProcs);
+    preprocess(statsData);
     CmiPrintf("%s> Strategy starts ... \n", lbname);
-    LBMigrateMsg* migrateMsg = Strategy(statsData, LBSimulation::simProcs);
+    LBMigrateMsg* migrateMsg = Strategy(statsData);
     CmiPrintf("%s> Strategy took %fs memory usage: CentralLB:%dKB. \n", 
                lbname, CkWallTimer()-startT, (int)(useMem()/1000));
 
index 702e790fda07e74db63e673b51b97023d91a71ab..8b0e7cda57f2e6513c1b9f2b9c37de7ef83d3032 100644 (file)
@@ -211,7 +211,7 @@ public:
   // END IMPLEMENTATION FOR FUTURE PREDICTOR
 
   LBMigrateMsg* callStrategy(LDStats* stats,int count){
-    return Strategy(stats,count);
+    return Strategy(stats);
   };
 
   int cur_ld_balancer;
@@ -219,11 +219,12 @@ public:
   void readStatsMsgs(const char* filename);
   void writeStatsMsgs(const char* filename);
 
-  void preprocess(LDStats* stats,int count);
-  virtual LBMigrateMsg* Strategy(LDStats* stats,int count);
-  virtual void work(LDStats* stats,int count);
-  virtual LBMigrateMsg * createMigrateMsg(LDStats* stats,int count);
+  void preprocess(LDStats* stats);
+  virtual LBMigrateMsg* Strategy(LDStats* stats);
+  virtual void work(LDStats* stats);
+  virtual LBMigrateMsg * createMigrateMsg(LDStats* stats);
   virtual LBMigrateMsg * extractMigrateMsg(LBMigrateMsg *m, int p);
+
 protected:
   virtual CmiBool QueryBalanceNow(int) { return CmiTrue; };  
   virtual CmiBool QueryDumpData() { return CmiFalse; };  
index fef9b286afa7c826e68dba5a0ab9f2de89057656..3bcf4b9298454503a410260fba086c0e60d5d9f3 100644 (file)
@@ -47,7 +47,7 @@ ComboCentLB::ComboCentLB(const CkLBOptions &opt): CentralLB(opt)
   }
 }
 
-void ComboCentLB::work(BaseLB::LDStats* stats, int count)
+void ComboCentLB::work(BaseLB::LDStats* stats)
 {
   int nlbs = clbs.length();
   int n_objs = stats->n_objs;
@@ -58,7 +58,7 @@ void ComboCentLB::work(BaseLB::LDStats* stats, int count)
   for (obj=0; obj<n_objs; obj++) from_orig[obj] = stats->from_proc[obj];
 
   for (int i=0; i<nlbs; i++) {
-    clbs[i]->work(stats, count);
+    clbs[i]->work(stats);
     if (i!=nlbs-1) {
       for (obj=0; obj<stats->n_objs; obj++) 
         stats->from_proc[obj] = stats->to_proc[obj];
index fba93342c6edcb768ae8acb065f08be6586864fc..88f4fc677fda4cb815ebe6987f727e4e079acd5c 100644 (file)
@@ -29,7 +29,7 @@ public:
 
 protected:
   virtual CmiBool QueryBalanceNow(int) { return CmiTrue; };  
-  virtual void work(LDStats* stats,int count);
+  virtual void work(LDStats* stats);
 
 private:  
 //  CProxy_CentralLB thisProxy;
index 6a16562cfd5b590333e5b693c1d4a2f11bc007bc..a94aeab2d67b5a9073914381df25568f65934792 100644 (file)
@@ -53,7 +53,7 @@ HybridLB::~HybridLB()
   delete refine;
 }
 
-void HybridLB::work(LDStats* stats,int count)
+void HybridLB::work(LDStats* stats)
 {
 #if CMK_LBDB_ON
   LevelData *lData = levelData[currentLevel];
@@ -62,9 +62,9 @@ void HybridLB::work(LDStats* stats,int count)
   //  take into account the outObjs
   //if (currentLevel == tree->numLevels()-1) 
   if (currentLevel == 1) 
-    greedy->work(stats, count);
+    greedy->work(stats);
   else
-    refine->work(stats, count);
+    refine->work(stats);
 #endif
 }
   
index 3a2fbf259473e9e3d37c7e2cfe241982c7794cf1..55ab1643960c57d196104ed898db07e2956b7ec2 100644 (file)
@@ -36,7 +36,7 @@ protected:
 
   virtual CmiBool QueryBalanceNow(int) { return CmiTrue; };  
   virtual CmiBool QueryMigrateStep(int) { return CmiTrue; };  
-  virtual void work(LDStats* stats,int count);
+  virtual void work(LDStats* stats);
 
 };
 
index 1d64934904e942bd65e916e8727f2f0a21381914..d2f4f9c02106e089223de19ba5ef2299132ebc5b 100644 (file)
@@ -91,7 +91,7 @@ void PhasebyArrayLB::updateStats(BaseLB::LDStats *stats,BaseLB::LDStats *tempSta
        
 }
 
-void PhasebyArrayLB::work(BaseLB::LDStats *stats, int count){
+void PhasebyArrayLB::work(BaseLB::LDStats *stats){
        //It is assumed that statically placed arrays are set non-migratable in the application
        tempStats = new BaseLB::LDStats;
 
@@ -139,7 +139,7 @@ void PhasebyArrayLB::work(BaseLB::LDStats *stats, int count){
                                        odata->migratable=CmiFalse;
                        }
                        //Call a strategy here
-                       lb->work(tempStats,count);
+                       lb->work(tempStats);
                        if(i!=omids.size()-1){
                                for(obj = 0; obj < tempStats->n_objs; obj++)
                                        tempStats->from_proc[obj]=tempStats->to_proc[obj];
index b18770f3de8527a16a8621ec8a58a8315454ceff..7fc9ed466ca01a9975d8e4755300ecec86c5b781 100644 (file)
@@ -31,7 +31,7 @@ private:
        CmiBool QueryBalanceNow(int step);
        void copyStats(BaseLB::LDStats *stats,BaseLB::LDStats *tempStats);
        void updateStats(BaseLB::LDStats *stats,BaseLB::LDStats *tempStats);
-       void work(BaseLB::LDStats* stats, int count);
+       void work(BaseLB::LDStats* stats);
 };
 
 #endif /* _PHASEBYARRAYLB_H_ */
index 11eb8c182e1af90b248eb76908a87de18f6d22f4..1ceb7fd12161d810408bc782f33580858a057e59 100755 (executable)
@@ -1630,7 +1630,7 @@ test -r ./conv-config.sh && . ./conv-config.sh
 # Decimal representation of Charm++ release line and API revision
 # Increment the last 2 digits when making an API change
 # Increase the first three after branching for a release
-VERSION=60301
+VERSION=60302
 echo $VERSION > ../include/VERSION
 
 cat >>confdefs.h <<_ACEOF
index bba5ef2ae96a0102f1a8cc038a821bbc8f090b06..71873f5e92b4d93ab9d2585a1c3687bbaebd8f5d 100644 (file)
@@ -9,7 +9,7 @@ test -r ./conv-config.sh && . ./conv-config.sh
 # Decimal representation of Charm++ release line and API revision
 # Increment the last 2 digits when making an API change
 # Increase the first three after branching for a release
-VERSION=60301
+VERSION=60302
 echo $VERSION > ../include/VERSION
 AC_DEFINE_UNQUOTED([CHARM_VERSION], $VERSION, [Charm++ Release/API version number])