do the same thing to statsData, only allocated when needed instead of on every pe.
authorGengbin Zheng <gzheng@illinois.edu>
Thu, 8 Apr 2010 20:04:45 +0000 (15:04 -0500)
committerGengbin Zheng <gzheng@illinois.edu>
Thu, 8 Apr 2010 20:04:45 +0000 (15:04 -0500)
src/ck-ldb/CentralLB.C

index 4364c42ba72108d565a77b3ba1424a5d8d8fa280..566ee8c5650f3a27cd24edebbb3a14c82fc43cce 100644 (file)
@@ -98,8 +98,7 @@ void CentralLB::initLB(const CkLBOptions &opt)
 
   stats_msg_count = 0;
   statsMsgsList = NULL;
-
-  statsData = new LDStats;
+  statsData = NULL;
 
   // for future predictor
   if (_lb_predict) predicted_model = new FutureModel(_lb_predict_window);
@@ -222,6 +221,7 @@ void CentralLB::ProcessAtSync()
 void CentralLB::ReceiveCounts(CkReductionMsg  *msg)
 {
   CmiAssert(CkMyPe() == 0);
+  if (statsData == NULL) statsData = new LDStats;
 
   int *counts = (int *)msg->getData();
   int n_objs = counts[0];
@@ -439,6 +439,7 @@ void CentralLB::ReceiveStats(CkMarshalledCLBStatsMessage &msg)
     for(int i=0; i < CkNumPes(); i++)
       statsMsgsList[i] = 0;
   }
+  if (statsData == NULL) statsData = new LDStats;
 
     //  loop through all CLBStatsMsg in the incoming msg
   int count = msg.getCount();
@@ -1243,8 +1244,8 @@ void CentralLB::pup(PUP::er &p) {
     initLB(CkLBOptions(seqno)); 
   }
 #if (defined(_FAULT_MLOG_) || defined(_FAULT_CAUSAL_))
-       p | lbDecisionCount;
-    p | resumeCount;
+  p | lbDecisionCount;
+  p | resumeCount;
 #endif
        
 }