Changing function name
authorHarshitha <gplkrsh2@illinois.edu>
Fri, 12 Oct 2012 17:10:33 +0000 (12:10 -0500)
committerHarshitha <gplkrsh2@illinois.edu>
Fri, 12 Oct 2012 17:10:33 +0000 (12:10 -0500)
14 files changed:
examples/charm++/jacobi1d/Makefile
examples/charm++/jacobi1d/jacobi1d.ci
examples/charm++/load_balancing/kNeighbor/Makefile
src/ck-core/cklocation.C
src/ck-core/cklocation.h
src/ck-ldb/LBDBManager.C
src/ck-ldb/LBDBManager.h
src/ck-ldb/LBDatabase.C
src/ck-ldb/LBDatabase.h
src/ck-ldb/LBOM.h
src/ck-ldb/MetaBalancer.C
src/ck-ldb/MetaBalancer.h
src/ck-ldb/lbdb.C
src/ck-ldb/lbdb.h

index 9cda60e8b70a037b88c54366185cc6c72e576c3e..a51c5dd822a12fbd48fe4a505f7ffe7c33d5468a 100644 (file)
@@ -1,5 +1,4 @@
-OPTS   = -O3
-#CHARMC        = $(HOME)/charm/bin/charmc $(OPTS)
+OPTS   = -g
 CHARMC = ../../../bin/charmc $(OPTS)
 
 OBJS = jacobi1d.o
@@ -7,8 +6,7 @@ OBJS = jacobi1d.o
 all: jacobi1d
 
 jacobi1d: $(OBJS)
-       $(CHARMC) -language charm++ -module CommonLBs -o jacobi1d  $(OBJS)
-       #$(CHARMC) -language charm++ -module CommonLBs -module AdaptiveLB -module MetisLB -o jacobi1d  $(OBJS)
+       $(CHARMC) -language charm++ -o jacobi1d $(OBJS)
 
 proj: $(OBJS)
        $(CHARMC) -language charm++ -tracemode projections -o jacobi1d.prj $(OBJS)
index 04a240de493dafe70da31c03cd63d6f693429d1f..e46b0ebfe958445750dd2e44d8566524cd274e1a 100644 (file)
@@ -14,7 +14,6 @@ mainmodule jacobi1d {
     entry Jacobi(void);
     entry void begin_iteration(void);
     entry void receiveGhosts(int dir, int size, double gh[size]);
-    entry void pause_for_lb(void);
   };
 
 };
index f957eb9bb38698f9f9732344418a953b27e8ca42..592dd96a728ebc556cc7eb74536e37abf7776c61 100644 (file)
@@ -1,6 +1,5 @@
-OPTS   = -g
+OPTS   = -O3
 CHARMC = ../../../../bin/charmc $(OPTS)
-#CHARMC        = $(HOME)/charm/bin/charmc $(OPTS)
 
 OBJS   = kNeighbor.o
 
index 23eecc0277a41a8cfc3f5a6fa13446d24b03e5eb..77546a726919c5a394b44193596741dc974c4ae4 100644 (file)
@@ -1159,7 +1159,7 @@ double CkMigratable::getObjTime() {
        return myRec->getObjTime();
 }
 
-void CkMigratable::clearAdaptiveData() {
+void CkMigratable::clearMetaLBData() {
 //  if (can_reset) {
     local_state = OFF;
     atsync_iteration = -1;
@@ -1294,7 +1294,7 @@ void CkMigratable::staticResumeFromSync(void* data)
 #if (defined(_FAULT_MLOG_) || defined(_FAULT_CAUSAL_))
     CpvAccess(_currentObj) = el;
 #endif
-  el->clearAdaptiveData();
+  el->clearMetaLBData();
        el->ResumeFromSync();
 #if (defined(_FAULT_MLOG_) || defined(_FAULT_CAUSAL_))
     el->mlogData->resumeCount++;
@@ -1669,13 +1669,13 @@ CmiBool CkLocRec_local::deliver(CkArrayMessage *msg,CkDeliver_t type,int opts)
 
 #if CMK_LBDB_ON
 
-void CkLocRec_local::staticAdaptResumeSync(LDObjHandle h, int lb_ideal_period) {
+void CkLocRec_local::staticMetaLBResumeWaitingChares(LDObjHandle h, int lb_ideal_period) {
        CkLocRec_local *el=(CkLocRec_local *)LDObjUserData(h);
        DEBL((AA"Load balancer wants to migrate %s to %d\n"AB,idx2str(el->idx),dest));
-       el->adaptResumeSync(lb_ideal_period);
+       el->metaLBResumeWaitingChares(lb_ideal_period);
 }
 
-void CkLocRec_local::adaptResumeSync(int lb_ideal_period) {
+void CkLocRec_local::metaLBResumeWaitingChares(int lb_ideal_period) {
   informIdealLBPeriod(lb_ideal_period);
 }
 
@@ -3176,8 +3176,8 @@ void CkLocMgr::initLB(CkGroupID lbdbID_, CkGroupID metalbID_)
        myCallbacks.migrate = (LDMigrateFn)CkLocRec_local::staticMigrate;
        myCallbacks.setStats = NULL;
        myCallbacks.queryEstLoad = NULL;
-  myCallbacks.adaptResumeSync =
-      (LDAdaptResumeSyncFn)CkLocRec_local::staticAdaptResumeSync;
+  myCallbacks.metaLBResumeWaitingChares =
+      (LDMetaLBResumeWaitingCharesFn)CkLocRec_local::staticMetaLBResumeWaitingChares;
        myLBHandle = the_lbdb->RegisterOM(myId,this,myCallbacks);
 
        // Tell the lbdb that I'm registering objects
index 7dd90c6350202c3080f92dc5fffd80ddde6210de..c6053452b0646e770f2fafcaca87f6d336235804 100644 (file)
@@ -221,8 +221,8 @@ public:
   inline MetaBalancer *getMetaBalancer(void) const {return the_metalb;}
   inline LDObjHandle getLdHandle() const{return ldHandle;}
   static void staticMigrate(LDObjHandle h, int dest);
-  static void staticAdaptResumeSync(LDObjHandle h, int lb_ideal_period);
-  void adaptResumeSync(int lb_ideal_period);
+  static void staticMetaLBResumeWaitingChares(LDObjHandle h, int lb_ideal_period);
+  void metaLBResumeWaitingChares(int lb_ideal_period);
   void recvMigrate(int dest);
   void setMigratable(int migratable);  /// set migratable
   void AsyncMigrate(CmiBool use);
@@ -328,7 +328,7 @@ public:
   virtual void ckJustMigrated(void); /*default is empty*/
 
   void recvLBPeriod(void *data);
-  void clearAdaptiveData(void);
+  void clearMetaLBData(void);
 
   //used for out-of-core emulation
   virtual void ckJustRestored(void); /*default is empty*/
@@ -545,6 +545,7 @@ class CkLocMgr : public IrrGroup {
        CkMagicNumber<CkMigratable> magic; //To detect heap corruption
 public:
        CkLocMgr(CkGroupID map,CkGroupID _lbdb,CkGroupID _metalb,CkArrayIndex& numInitial);
+       CkLocMgr(CkGroupID map,CkGroupID _lbdb,CkArrayIndex& numInitial);
        CkLocMgr(CkMigrateMessage *m);
        inline CmiBool isLocMgr(void) { return CmiTrue; }
        CkGroupID &getGroupID(void) {return thisgroup;}
index 253a262b24e9180fdc19be516c792aa32322a94c..5f5c490f45365ce20e2bd2446de0e4c1f0838e37 100644 (file)
@@ -324,13 +324,13 @@ int LBDB::Migrate(LDObjHandle h, int dest)
   return 1;
 }
 
-void LBDB::AdaptResumeSync(int lb_ideal_period) {
+void LBDB::MetaLBResumeWaitingChares(int lb_ideal_period) {
   for (int i = 0; i < objs.length(); i++) {
     LBObj* obj = objs[i];
     if (obj) {
       LBOM *om = oms[obj->parentOM().handle];
       LDObjHandle h = obj->GetLDObjHandle();
-      om->AdaptResumeSync(h, lb_ideal_period);
+      om->MetaLBResumeWaitingChares(h, lb_ideal_period);
     }
   }
 }
index 7870209caacf74b912ab0085dd705afc9232f7e5..e7755d54c701100e534c1266485bc7ed0b12aa52 100644 (file)
@@ -138,7 +138,7 @@ public:
   inline void GetCommData(LDCommData *data) 
        { if (commTable) commTable->GetCommData(data); };
 
-  void AdaptResumeSync(int lb_ideal_period);
+  void MetaLBResumeWaitingChares(int lb_ideal_period);
   int  Migrate(LDObjHandle h, int dest);
   void Migrated(LDObjHandle h, int waitBarrier=1);
   int  NotifyMigrated(LDMigratedFn fn, void* data);
index a0db5a72b1d7901bec3e427a29ae4c4608862425..acd854469680bed3b41ed849b0a947ed554b0a0c 100644 (file)
@@ -462,7 +462,6 @@ const char *LBDatabase::loadbalancer(int seq) {
 
 void LBDatabase::pup(PUP::er& p)
 {
-  // NOTE if unpacking set metabalancer using the id
        IrrGroup::pup(p);
        // the memory should be already allocated
        int np;
@@ -482,6 +481,7 @@ void LBDatabase::pup(PUP::er& p)
        if(p.isUnpacking()) {
     nloadbalancers = 0;
                if (_lb_args.metaLbOn()) {
+               // if unpacking set metabalancer using the id
        metabalancer = (MetaBalancer*)CkLocalBranch(_metalb);
                }
   }
index 2c6a8e50e6b1a3175778561a436ffafdfc46525d..683b68d43770b2e445793ee3172c1bb53644847d 100644 (file)
@@ -360,8 +360,8 @@ public:
   inline void SetLBPeriod(double s) { LDSetLBPeriod(myLDHandle, s);}
   inline double GetLBPeriod() { return LDGetLBPeriod(myLDHandle);}
 
-  inline void AdaptResumeSync(int lb_period) {
-    LDOMAdaptResumeSync(myLDHandle, lb_period);
+  inline void MetaLBResumeWaitingChares(int lb_period) {
+    LDOMMetaLBResumeWaitingChares(myLDHandle, lb_period);
   }
   void SetMigrationCost(double cost);
   void SetStrategyCost(double cost);
index 4d61d5605e755e71d43da9d91339b86405c78981..d549fbc627560a48ac3af80c2bcc31ab9761f135 100644 (file)
@@ -35,8 +35,8 @@ private:
 
   void DepositHandle(LDOMHandle _h) { myhandle = _h; };
   void Migrate(LDObjHandle _h, int dest) { callbacks.migrate(_h,dest); };
-  void AdaptResumeSync(LDObjHandle _h, int lb_ideal_period) {
-    callbacks.adaptResumeSync(_h, lb_ideal_period);
+  void MetaLBResumeWaitingChares(LDObjHandle _h, int lb_ideal_period) {
+    callbacks.metaLBResumeWaitingChares(_h, lb_ideal_period);
   }
   CmiBool RegisteringObjs() { return registering_objs; };
   void SetRegisteringObjs(CmiBool _set) { registering_objs = _set; };
index 0e868940309c8443914cd9516ea90fc8f06ee429..a550a226ba9f7d1be813f3ace1f54a16ec18c427 100644 (file)
@@ -37,7 +37,8 @@ CkReductionMsg* lbDataCollection(int nMsg, CkReductionMsg** msgs) {
   for (int i = 0; i < nMsg; i++) {
     CkAssert(msgs[i]->getSize() == STATS_COUNT*sizeof(double));
     if (msgs[i]->getSize() != STATS_COUNT*sizeof(double)) {
-      CkPrintf("Error!!! Reduction not correct. Msg size is %d\n", msgs[i]->getSize());
+      CkPrintf("Error!!! Reduction not correct. Msg size is %d\n",
+          msgs[i]->getSize());
       CkAbort("Incorrect Reduction size in MetaBalancer\n");
     }
     double* m = (double *)msgs[i]->getData();
@@ -100,7 +101,6 @@ void MetaBalancer::init(void) {
   CkpvAccess(metalbInited) = 1;
   total_load_vec.resize(VEC_SIZE, 0.0);
   total_count_vec.resize(VEC_SIZE, 0);
-  max_iteration = -1;
   prev_idle = 0.0;
   alpha_beta_cost_to_load = 1.0; // Some random value. TODO: Find the actual
 
@@ -141,6 +141,10 @@ void MetaBalancer::pup(PUP::er& p) {
   if (p.isUnpacking()) {
     lbdatabase = (LBDatabase *)CkLocalBranch(_lbdb);
   }
+  p|prev_idle;
+  p|alpha_beta_cost_to_load;
+  p|is_prev_lb_refine;
+  p|lb_in_progress;
 }
 
 
@@ -178,8 +182,8 @@ bool MetaBalancer::AddLoad(int it_n, double load) {
   int index = it_n % VEC_SIZE;
   total_count_vec[index]++;
   adaptive_struct.total_syncs_called++;
-  DEBADDETAIL(("At PE %d Total contribution for iteration %d is %d total objs %d\n",
-      CkMyPe(), it_n, total_count_vec[index],
+  DEBADDETAIL(("At PE %d Total contribution for iteration %d is %d \
+      total objs %d\n", CkMyPe(), it_n, total_count_vec[index],
       lbdatabase->getLBDB()->ObjDataCount()));
 
   if (it_n < adaptive_struct.lb_iteration_no) {
@@ -212,7 +216,7 @@ bool MetaBalancer::AddLoad(int it_n, double load) {
     // The chares do not contribute their 0th iteration load. So the total syncs
     // in reality is total_syncs_called + obj_counts
     int total_countable_syncs = adaptive_struct.total_syncs_called +
-        (1 - NEGLECT_IDLE) * lbdatabase->getLBDB()->ObjDataCount(); // TODO: Fix me! weird!
+        (1 - NEGLECT_IDLE) * lbdatabase->getLBDB()->ObjDataCount(); // TODO: Fix me!
     if (total_countable_syncs != 0) {
       idle_time = idle_time * lbdatabase->getLBDB()->ObjDataCount() / total_countable_syncs;
     }
@@ -279,7 +283,8 @@ void MetaBalancer::ReceiveMinStats(CkReductionMsg *msg) {
   // If this is the lb data corresponding to the final lb period informed, then
   // don't recalculate as some of the processors might have already gone into
   // LB_STAGE.
-  if (adaptive_struct.in_progress || (adaptive_struct.final_lb_period == iteration_n)) {
+  if (adaptive_struct.in_progress || 
+      (adaptive_struct.final_lb_period == iteration_n)) {
     return;
   }
 
@@ -290,7 +295,8 @@ void MetaBalancer::ReceiveMinStats(CkReductionMsg *msg) {
   if (alpha_beta_cost_to_load < 0.1) {
     // Ignore the effect of idle time and there by lesser utilization. So we
     // assign utilization threshold to be 0.0
-    DEBAD(("Changing the idle load tolerance coz this isn't communication intensive benchmark\n"));
+    DEBAD(("Changing the idle load tolerance coz this isn't \
+        communication intensive benchmark\n"));
     utilization_threshold = 0.0;
   }
 #endif
@@ -312,13 +318,15 @@ void MetaBalancer::ReceiveMinStats(CkReductionMsg *msg) {
       adaptive_struct.tentative_max_iter_no));
     // set the imbalance tolerance to be ratio_at_calculated_lb_period
     if (ratio_at_t != 1.0) {
-      DEBAD(("Changed tolerance to %lf after line eq whereas max/avg is %lf\n", ratio_at_t, max/avg));
+      DEBAD(("Changed tolerance to %lf after line eq whereas max/avg is %lf\n",
+        ratio_at_t, max/avg));
       // Since ratio_at_t is shifter up, max/(tmp_max_avg_ratio * avg) should be
       // compared with the tolerance
       tolerate_imb = ratio_at_t * tmp_max_avg_ratio * OUTOFWAY_TOLERANCE;
     }
 
-    DEBAD(("Prev LB Data Type %d, max/avg %lf, local/remote %lf\n", tmp_lb_type, tmp_max_avg_ratio, tmp_comm_ratio));
+    DEBAD(("Prev LB Data Type %d, max/avg %lf, local/remote %lf\n",
+      tmp_lb_type, tmp_max_avg_ratio, tmp_comm_ratio));
 
     if ((utilization < utilization_threshold || max/avg >= tolerate_imb) &&
           adaptive_lbdb.history_data.size() > MIN_STATS) {
@@ -336,7 +344,7 @@ void MetaBalancer::ReceiveMinStats(CkReductionMsg *msg) {
       adaptive_struct.lb_calculated_period = period;
       adaptive_struct.in_progress = true;
       DEBAD(("Sticking to the calculated period %d\n",
-        adaptive_struct.lb_calculated_period));
+          adaptive_struct.lb_calculated_period));
       thisProxy.LoadBalanceDecision(adaptive_struct.lb_msg_send_no++,
         adaptive_struct.lb_calculated_period);
       return;
@@ -596,7 +604,7 @@ void MetaBalancer::LoadBalanceDecisionFinal(int req_no, int period) {
                        period:%d \n",CkMyPe(), adaptive_struct.lb_iteration_no, period));
   adaptive_struct.tentative_period = period;
   adaptive_struct.final_lb_period = period;
-  lbdatabase->AdaptResumeSync(period);
+  lbdatabase->MetaResumeWaitingChares(period);
 }
 
 
@@ -654,6 +662,7 @@ void MetaBalancer::ResetAdaptive() {
   lb_in_progress = true;
 }
 
+// This is required for PEs with no objs
 void MetaBalancer::periodicCall(void *ad) {
   MetaBalancer *s = (MetaBalancer *)ad;
   CcdCallFnAfterOnPE((CcdVoidFn)checkForNoObj, (void *)s, 1, CkMyPe());
@@ -746,8 +755,8 @@ void MetaBalancer::UpdateAfterLBData(int lb, double lb_max, double lb_avg, doubl
   }
 }
 
-void MetaBalancer::UpdateAfterLBData(double max_load, double max_cpu, double
-avg_load) {
+void MetaBalancer::UpdateAfterLBData(double max_load, double max_cpu,
+    double avg_load) {
   if (adaptive_struct.last_lb_type == -1) {
     adaptive_struct.last_lb_type = 0;
   }
@@ -769,16 +778,16 @@ void MetaBalancer::UpdateAfterLBComm(double alpha_beta_to_load) {
 }
 
 
-void MetaBalancer::GetPrevLBData(int& lb_type, double& lb_max_avg_ratio, double&
-    remote_local_comm_ratio) {
+void MetaBalancer::GetPrevLBData(int& lb_type, double& lb_max_avg_ratio,
+    double& remote_local_comm_ratio) {
   lb_type = adaptive_struct.last_lb_type;
   lb_max_avg_ratio = 1;
   remote_local_comm_ratio = 1;
   GetLBDataForLB(lb_type, lb_max_avg_ratio, remote_local_comm_ratio);
 }
 
-void MetaBalancer::GetLBDataForLB(int lb_type, double& lb_max_avg_ratio, double&
-    remote_local_comm_ratio) {
+void MetaBalancer::GetLBDataForLB(int lb_type, double& lb_max_avg_ratio,
+    double& remote_local_comm_ratio) {
   if (lb_type == 0) {
     lb_max_avg_ratio = adaptive_struct.greedy_info.max_avg_ratio;
   } else if (lb_type == 1) {
index 3db3de46190d220fc5ceb1b9e13ecab9af65148f..403604e65153c6cfa9b5c20db4e084d988224047 100644 (file)
@@ -6,13 +6,6 @@
 #ifndef METABALANCER_H
 #define METABALANCER_H
 
-
-//#include <charm++.h>
-//#include "ckreduction.h" 
-
-//#include "lbdb.h"
-//#include "LBDBManager.h"
-//#include "lbdb++.h"
 #include "LBDatabase.h"
 
 #include <vector>
@@ -49,9 +42,6 @@ public:
 
   void ResumeClients();
 
-/*  inline void SetLBPeriod(double s) { LDSetLBPeriod(myLDHandle, s);}
-  inline double GetLBPeriod() { return LDGetLBPeriod(myLDHandle);}*/ //NOTE
-
   void ResetAdaptive();
   int get_iteration();
   bool AddLoad(int iteration, double load);
@@ -67,9 +57,11 @@ public:
   void TriggerAdaptiveReduction();
 
   bool generatePlan(int& period, double& ratio_at_t);
-  bool getLineEq(double new_load_percent, double& aslope, double& ac, double& mslope, double& mc);
+  bool getLineEq(double new_load_percent, double& aslope, double& ac,
+      double& mslope, double& mc);
   bool getPeriodForLinear(double a, double b, double c, int& period);
-  bool getPeriodForStrategy(double new_load, double overhead_percent, int& period, double& ratio_at_t);
+  bool getPeriodForStrategy(double new_load, double overhead_percent,
+      int& period, double& ratio_at_t);
   int getPredictedLBPeriod(bool& is_tentative);
 
   bool isStrategyComm();
@@ -90,16 +82,11 @@ public:
 private:
   //CProxy_MetaBalancer thisProxy;
   LBDatabase* lbdatabase;
-  int mystep;
   std::vector<double> total_load_vec;
   // Keeps track of how many local chares contributed
   std::vector<int> total_count_vec;
   std::vector<int> lbdb_no_obj_callback;
 
-  int max_iteration;
-
-  double after_lb_max;
-  double after_lb_avg;
   double prev_idle;
   double alpha_beta_cost_to_load;
   int is_prev_lb_refine;
index be223b506bf8dff553c392007e8a776fb98344b1..31fa656f6139cc152a0ff4dcba1e49a379b81c84 100644 (file)
@@ -29,9 +29,9 @@ extern "C" LDOMHandle LDRegisterOM(LDHandle _db, LDOMid _userID,
   return db->AddOM(_userID, _userptr, _callbacks);
 }
 
-extern "C" void LDOMAdaptResumeSync(LDHandle _db, int lb_ideal_period) {
+extern "C" void LDOMMetaLBResumeWaitingChares(LDHandle _db, int lb_ideal_period) {
   LBDB *const db = (LBDB*)(_db.handle);
-  db->AdaptResumeSync(lb_ideal_period);
+  db->MetaLBResumeWaitingChares(lb_ideal_period);
 }
 
 extern "C" void * LDOMUserData(LDOMHandle &_h)
index 8f377ad88cf5d7d885603d0659b6cbf06f2c4793..04ef6bca3f235288a175c5a2c61c76fe34fce5cb 100644 (file)
@@ -225,13 +225,13 @@ void LBCollectStatsOff(void);
 typedef void (*LDMigrateFn)(LDObjHandle handle, int dest);
 typedef void (*LDStatsFn)(LDOMHandle h, int state);
 typedef void (*LDQueryEstLoadFn)(LDOMHandle h);
-typedef void (*LDAdaptResumeSyncFn) (LDObjHandle handle, int lb_ideal_period);
+typedef void (*LDMetaLBResumeWaitingCharesFn) (LDObjHandle handle, int lb_ideal_period);
 
 typedef struct {
   LDMigrateFn migrate;
   LDStatsFn setStats;
   LDQueryEstLoadFn queryEstLoad;
-  LDAdaptResumeSyncFn adaptResumeSync;
+  LDMetaLBResumeWaitingCharesFn metaLBResumeWaitingChares;
 } LDCallbacks;
 
 /*
@@ -246,7 +246,7 @@ LDHandle LDCreate(void);
 LDOMHandle LDRegisterOM(LDHandle _lbdb, LDOMid userID, 
                        void *userptr, LDCallbacks cb);
 
-void LDOMAdaptResumeSync(LDHandle _h, int lb_ideal_period);
+void LDOMMetaLBResumeWaitingChares(LDHandle _h, int lb_ideal_period);
 void * LDOMUserData(LDOMHandle &_h);
 void LDRegisteringObjects(LDOMHandle _h);
 void LDDoneRegisteringObjects(LDOMHandle _h);