cleanup
authorHarshitha <gplkrsh2@illinois.edu>
Thu, 11 Oct 2012 01:45:08 +0000 (20:45 -0500)
committerHarshitha <gplkrsh2@illinois.edu>
Thu, 11 Oct 2012 01:45:08 +0000 (20:45 -0500)
src/ck-ldb/LBDatabase.C
src/ck-ldb/LBDatabase.h
src/ck-ldb/MetaBalancer.C
src/ck-ldb/MetaBalancer.h

index 74d90f0aceb5eb2dbc57fbe6aee3ffc7337b503c..90911083b25086540d898f3c89f32633bc63e335 100644 (file)
@@ -353,6 +353,7 @@ void LBDatabase::init(void)
   mystep = 0;
   nloadbalancers = 0;
   new_ld_balancer = 0;
   mystep = 0;
   nloadbalancers = 0;
   new_ld_balancer = 0;
+  metabalancer = (MetaBalancer *)CkLocalBranch(_metalb);
 
   CkpvAccess(lbdatabaseInited) = 1;
 #if CMK_LBDB_ON
 
   CkpvAccess(lbdatabaseInited) = 1;
 #if CMK_LBDB_ON
@@ -491,16 +492,16 @@ void LBDatabase::EstObjLoad(const LDObjHandle &_h, double cputime)
 #endif
 }
 
 #endif
 }
 
-void LBDatabase::RegisterMetaBalancer() {
-  metabalancer = (MetaBalancer *)CkLocalBranch(_metalb);
-}
-
-
 void LBDatabase::ResumeClients() {
 void LBDatabase::ResumeClients() {
+#if CMK_LBDB_ON
   if (metabalancer == NULL) {
   if (metabalancer == NULL) {
-    RegisterMetaBalancer();
+    CkPrintf("%d Metabalancer was null\n", CkMyPe());
+    metabalancer = CProxy_MetaBalancer(_metalb).ckLocalBranch();
   }
   }
-  metabalancer->ResumeClients();
+  if (metabalancer != NULL) {
+    metabalancer->ResumeClients();
+  }
+#endif
   LDResumeClients(myLDHandle);
 }
 
   LDResumeClients(myLDHandle);
 }
 
index 8a5c819c6260e9f33eed0aeb4f208301d433f029..76d35080f684b77aa82a74926803494def02c2d9 100644 (file)
 #include "lbdb.h"
 #include "LBDBManager.h"
 #include "lbdb++.h"
 #include "lbdb.h"
 #include "LBDBManager.h"
 #include "lbdb++.h"
-#include "MetaBalancer.h"
-
-#include <vector>
 
 #define LB_FORMAT_VERSION     2
 
 
 #define LB_FORMAT_VERSION     2
 
+class MetaBalancer;
 extern int _lb_version;
 
 extern int _lb_version;
 
-
-
 // command line options
 class CkLBArgs
 {
 // command line options
 class CkLBArgs
 {
@@ -363,7 +359,6 @@ public:
     LDOMAdaptResumeSync(myLDHandle, lb_period);
   }
 
     LDOMAdaptResumeSync(myLDHandle, lb_period);
   }
 
-  void RegisterMetaBalancer();
 
 private:
   int mystep;
 
 private:
   int mystep;
index 7e28a43468cdc626c130185488b8a9845f695a58..f09af887ed8f988e86311af1f3ee45490c17172e 100644 (file)
 #define UTILIZATION_THRESHOLD 0.7
 #define NEGLECT_IDLE 2 // Should never be == 1
 #define MIN_STATS 6
 #define UTILIZATION_THRESHOLD 0.7
 #define NEGLECT_IDLE 2 // Should never be == 1
 #define MIN_STATS 6
+#define STATS_COUNT 8 // The number of stats collected during reduction
 
 #   define DEBAD(x) /*CkPrintf x*/
 #   define EXTRA_FEATURE 0
 
 CkReductionMsg* lbDataCollection(int nMsg, CkReductionMsg** msgs) {
 
 #   define DEBAD(x) /*CkPrintf x*/
 #   define EXTRA_FEATURE 0
 
 CkReductionMsg* lbDataCollection(int nMsg, CkReductionMsg** msgs) {
-  double lb_data[8];
+  double lb_data[STATS_COUNT];
   lb_data[1] = 0.0; // total number of processors contributing
   lb_data[2] = 0.0; // total load
   lb_data[3] = 0.0; // max load
   lb_data[1] = 0.0; // total number of processors contributing
   lb_data[2] = 0.0; // total load
   lb_data[3] = 0.0; // max load
@@ -34,8 +35,8 @@ CkReductionMsg* lbDataCollection(int nMsg, CkReductionMsg** msgs) {
   lb_data[6] = 0.0; // total load with bg
   lb_data[7] = 0.0; // max load with bg
   for (int i = 0; i < nMsg; i++) {
   lb_data[6] = 0.0; // total load with bg
   lb_data[7] = 0.0; // max load with bg
   for (int i = 0; i < nMsg; i++) {
-    CkAssert(msgs[i]->getSize() == 8*sizeof(double));
-    if (msgs[i]->getSize() != 8*sizeof(double)) {
+    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());
     }
     double* m = (double *)msgs[i]->getData();
       CkPrintf("Error!!! Reduction not correct. Msg size is %d\n", msgs[i]->getSize());
     }
     double* m = (double *)msgs[i]->getData();
@@ -63,7 +64,7 @@ CkReductionMsg* lbDataCollection(int nMsg, CkReductionMsg** msgs) {
       CkAbort("Intermingling iterations\n");
     }
   }
       CkAbort("Intermingling iterations\n");
     }
   }
-  return CkReductionMsg::buildNew(8*sizeof(double), lb_data);
+  return CkReductionMsg::buildNew(STATS_COUNT*sizeof(double), lb_data);
 }
 
 /*global*/ CkReduction::reducerType lbDataCollectionType;
 }
 
 /*global*/ CkReduction::reducerType lbDataCollectionType;
@@ -76,30 +77,24 @@ CkGroupID _metalb;
 CkpvDeclare(int, metalbInited);  /**< true if metabalancer is inited */
 
 // mainchare
 CkpvDeclare(int, metalbInited);  /**< true if metabalancer is inited */
 
 // mainchare
-MetaLBInit::MetaLBInit(CkArgMsg *m)
-{
+MetaLBInit::MetaLBInit(CkArgMsg *m) {
 #if CMK_LBDB_ON
   _metalb = CProxy_MetaBalancer::ckNew();
 #endif
 #if CMK_LBDB_ON
   _metalb = CProxy_MetaBalancer::ckNew();
 #endif
-  CkPrintf("META LB Init Called\n");
   delete m;
 }
 
 // called from init.C
   delete m;
 }
 
 // called from init.C
-void _metabalancerInit()
-{
+void _metabalancerInit() {
   CkpvInitialize(int, metalbInited);
   CkpvAccess(metalbInited) = 0;
 }
 
   CkpvInitialize(int, metalbInited);
   CkpvAccess(metalbInited) = 0;
 }
 
-void MetaBalancer::initnodeFn()
-{
+void MetaBalancer::initnodeFn() {
 }
 
 }
 
-// called my constructor
-void MetaBalancer::init(void)
-{
-  CkPrintf("Metabalancer init %d lbdb\n", _lbdb);
+// called by my constructor
+void MetaBalancer::init(void) {
   lbdatabase = (LBDatabase *)CkLocalBranch(_lbdb);
   CkpvAccess(metalbInited) = 1;
   total_load_vec.resize(VEC_SIZE, 0.0);
   lbdatabase = (LBDatabase *)CkLocalBranch(_lbdb);
   CkpvAccess(metalbInited) = 1;
   total_load_vec.resize(VEC_SIZE, 0.0);
@@ -137,8 +132,8 @@ void MetaBalancer::init(void)
   is_prev_lb_refine = -1;
 }
 
   is_prev_lb_refine = -1;
 }
 
-void MetaBalancer::pup(PUP::er& p)
-{
+void MetaBalancer::pup(PUP::er& p) {
+  CkPrintf("[%d] Metabalancer getting pupped\n", CkMyPe());
        IrrGroup::pup(p);
   if (p.isUnpacking()) {
     lbdatabase = (LBDatabase *)CkLocalBranch(_lbdb);
        IrrGroup::pup(p);
   if (p.isUnpacking()) {
     lbdatabase = (LBDatabase *)CkLocalBranch(_lbdb);
@@ -179,6 +174,7 @@ void MetaBalancer::ResumeClients() {
 }
 
 int MetaBalancer::get_iteration() {
 }
 
 int MetaBalancer::get_iteration() {
+  CkPrintf("[%d] get iteration %d\n", CkMyPe(), adaptive_struct.lb_iteration_no);
   return adaptive_struct.lb_iteration_no;
 }
 
   return adaptive_struct.lb_iteration_no;
 }
 
@@ -226,7 +222,7 @@ bool MetaBalancer::AddLoad(int it_n, double load) {
     }
     //CkPrintf("[%d] Idle time %lf and countable %d for iteration %d\n", CkMyPe(), idle_time, total_countable_syncs, iteration);
 
     }
     //CkPrintf("[%d] Idle time %lf and countable %d for iteration %d\n", CkMyPe(), idle_time, total_countable_syncs, iteration);
 
-    double lb_data[8];
+    double lb_data[STATS_COUNT];
     lb_data[0] = it_n;
     lb_data[1] = 1;
     lb_data[2] = total_load_vec[index]; // For average load
     lb_data[0] = it_n;
     lb_data[1] = 1;
     lb_data[2] = total_load_vec[index]; // For average load
@@ -248,7 +244,7 @@ bool MetaBalancer::AddLoad(int it_n, double load) {
     //    idle_time/total_load_vec[iteration], adaptive_struct.lb_iteration_no);
 
     CkCallback cb(CkIndex_MetaBalancer::ReceiveMinStats((CkReductionMsg*)NULL), thisProxy[0]);
     //    idle_time/total_load_vec[iteration], adaptive_struct.lb_iteration_no);
 
     CkCallback cb(CkIndex_MetaBalancer::ReceiveMinStats((CkReductionMsg*)NULL), thisProxy[0]);
-    contribute(8*sizeof(double), lb_data, lbDataCollectionType, cb);
+    contribute(STATS_COUNT*sizeof(double), lb_data, lbDataCollectionType, cb);
   }
   return true;
 }
   }
   return true;
 }
@@ -689,7 +685,7 @@ void MetaBalancer::TriggerAdaptiveReduction() {
 #if EXTRA_FEATURE
   adaptive_struct.lb_iteration_no++;
   //CkPrintf("Trigger adaptive for %d\n", adaptive_struct.lb_iteration_no);
 #if EXTRA_FEATURE
   adaptive_struct.lb_iteration_no++;
   //CkPrintf("Trigger adaptive for %d\n", adaptive_struct.lb_iteration_no);
-  double lb_data[8];
+  double lb_data[STATS_COUNT];
   lb_data[0] = adaptive_struct.lb_iteration_no;
   lb_data[1] = 1;
   lb_data[2] = 0.0;
   lb_data[0] = adaptive_struct.lb_iteration_no;
   lb_data[1] = 1;
   lb_data[2] = 0.0;
@@ -704,7 +700,7 @@ void MetaBalancer::TriggerAdaptiveReduction() {
   //     idle_time/total_load_vec[iteration], adaptive_struct.lb_iteration_no);
 
   CkCallback cb(CkIndex_MetaBalancer::ReceiveMinStats((CkReductionMsg*)NULL), thisProxy[0]);
   //     idle_time/total_load_vec[iteration], adaptive_struct.lb_iteration_no);
 
   CkCallback cb(CkIndex_MetaBalancer::ReceiveMinStats((CkReductionMsg*)NULL), thisProxy[0]);
-  contribute(8*sizeof(double), lb_data, lbDataCollectionType, cb);
+  contribute(STATS_COUNT*sizeof(double), lb_data, lbDataCollectionType, cb);
 #endif
 }
 
 #endif
 }
 
index 965c5222dd9f17346cf385d1ce065ce30a3588af..0b894f2cd64460de9e0c1fce761128c520e1e779 100644 (file)
@@ -93,6 +93,7 @@ private:
   // Keeps track of how many local chares contributed
   std::vector<int> total_count_vec;
   std::vector<int> lbdb_no_obj_callback;
   // 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;
   int max_iteration;
 
   double after_lb_max;
@@ -110,7 +111,7 @@ private:
   };
 
   struct AdaptiveMetaBalancer {
   };
 
   struct AdaptiveMetaBalancer {
-    std::vector<AdaptiveData> history_data;
+    CkVec<AdaptiveData> history_data;
     int lb_iter_no;
   } adaptive_lbdb;
 
     int lb_iter_no;
   } adaptive_lbdb;