ck-ldb: second set of changes for removing count
authorAbhinav S Bhatele <bhatele@illinois.edu>
Sun, 24 Oct 2010 04:48:24 +0000 (23:48 -0500)
committerAbhinav S Bhatele <bhatele@illinois.edu>
Sat, 6 Nov 2010 22:50:15 +0000 (17:50 -0500)
int count has been removed from work(LDStats *stats ...)

26 files changed:
src/ck-ldb/BlockLB.C
src/ck-ldb/BlockLB.h
src/ck-ldb/GreedyCommLB.C
src/ck-ldb/GreedyLB.C
src/ck-ldb/GreedyLB.h
src/ck-ldb/GridCommLB.C
src/ck-ldb/GridCommLB.h
src/ck-ldb/GridCommRefineLB.C
src/ck-ldb/GridCommRefineLB.h
src/ck-ldb/GridHybridLB.C
src/ck-ldb/GridHybridLB.h
src/ck-ldb/GridHybridSeedLB.C
src/ck-ldb/GridHybridSeedLB.h
src/ck-ldb/GridMetisLB.C
src/ck-ldb/GridMetisLB.h
src/ck-ldb/HbmLB.C
src/ck-ldb/HbmLB.h
src/ck-ldb/RecBisectBfLB.C
src/ck-ldb/RefineTopoLB.C
src/ck-ldb/RefineTopoLB.h
src/ck-ldb/RotateLB.C
src/ck-ldb/RotateLB.h
src/ck-ldb/TopoCentLB.C
src/ck-ldb/TopoCentLB.h
src/ck-ldb/TopoLB.C
src/ck-ldb/TopoLB.h

index 7617d9c1069b0e3bb68c708e3ed59f58b962d9fe..410c1d204e08042bafa186cbe5a01fe351a960bd 100644 (file)
@@ -34,7 +34,7 @@ CmiBool BlockLB::QueryBalanceNow (int _step)
 /**************************************************************************
 **
 */
-void BlockLB::work (BaseLB::LDStats *stats, int count)
+void BlockLB::work (LDStats *stats)
 {
   int proc;
   int obj;
@@ -44,8 +44,8 @@ void BlockLB::work (BaseLB::LDStats *stats, int count)
 
   // Make sure that there is at least one available processor.
        int validProcs=0;
-       int *mapValidToAbsolute = new int[count];
-  for (proc = 0; proc < count; proc++) {                               
+       int *mapValidToAbsolute = new int[stats->n_pes];
+  for (proc = 0; proc < stats->n_pes; proc++) {
     if (stats->procs[proc].available) {
                        mapValidToAbsolute[validProcs] = proc;
                        validProcs++;
index 6a7fe7452cf78448269687b341e176369a3c6459..22fc0499c686dd586f0118c6b5ce143c7c682186 100644 (file)
@@ -11,7 +11,7 @@ class BlockLB : public CentralLB
     BlockLB (const CkLBOptions &opt);
     BlockLB (CkMigrateMessage *m) : CentralLB (m) { };
 
-    void work (BaseLB::LDStats *stats, int count);
+    void work (LDStats *stats);
 
     void pup (PUP::er &p) { CentralLB::pup(p); }
 
index 0d55d5192af1f0011eb421bbb76d13bbe8d6564d..6301970d94050a0119384c98947bc8f949340393 100644 (file)
@@ -235,10 +235,8 @@ void GreedyCommLB::work(LDStats* stats)
 
     int id,maxid,spe=0,minpe=0,mpos;
     double temp,total_time,min_temp;
-    /*
-    for(pe=0;pe < count;pe++)
-       CkPrintf("avail for %d = %d\n",pe,stats[pe].available);
-    */
+    // for(pe=0;pe < count;pe++)
+    // CkPrintf("avail for %d = %d\n",pe,stats[pe].available);
 
     double *pe_comm = new double[npe];
     for (int i=0; i<npe; i++) pe_comm[i] = 0.0;
index 0790bc4efec06a80c398dbf608b53ebb5ddb5ddd..80bc7ab1c0c8711c74ef5a7cf3f50d979a469c19 100644 (file)
@@ -184,11 +184,14 @@ GreedyLB::BuildCpuArray(BaseLB::LDStats* stats,
   return data;
 }
 
-void GreedyLB::work(LDStats* stats, int count)
+void GreedyLB::work(LDStats* stats)
 {
   int  obj, heapSize, objCount;
-  HeapData *cpuData = BuildCpuArray(stats, count, &heapSize);
-  HeapData *objData = BuildObjectArray(stats, count, &objCount);
+  int n_pes = stats->n_pes;
+
+  HeapData *cpuData = BuildCpuArray(stats, n_pes, &heapSize);
+  HeapData *objData = BuildObjectArray(stats, n_pes, &objCount);
+
   if (_lb_args.debug()>1) 
     CkPrintf("[%d] In GreedyLB strategy\n",CkMyPe());
   heapSize--;
index 8aeb8659ea40bf815c31d196572cc57db587018b..e03dab0227ab29d7ddaafb9b963d6738bbc0d0e5 100644 (file)
@@ -30,7 +30,7 @@ public:
 
   GreedyLB(const CkLBOptions &);
   GreedyLB(CkMigrateMessage *m):CentralLB(m) { lbname = "GreedyLB"; }
-  void work(LDStats* stats,int count);
+  void work(LDStats* stats);
 private:
        enum           HeapCmp {GT = '>', LT = '<'};
        void           Heapify(HeapData*, int, int, HeapCmp);
index f2487f0eff7e3d1319dcf2a2abacdd72c52f6294..aff0f2ba2f96d3a9a4275cd2ef344d81b320ce3d 100644 (file)
@@ -605,7 +605,7 @@ void GridCommLB::Assign_Object_To_PE (int target_object, int target_pe)
 ** The Charm++ load balancing framework invokes this method to cause the
 ** load balancer to migrate objects to "better" PEs.
 */
-void GridCommLB::work (CentralLB::LDStats *stats, int count)
+void GridCommLB::work (LDStats *stats)
 {
   int i;
 
@@ -618,7 +618,7 @@ void GridCommLB::work (CentralLB::LDStats *stats, int count)
   stats->makeCommHash ();
 
   // Initialize object variables for the number of PEs and number of objects.
-  Num_PEs = count;
+  Num_PEs = stats->n_pes;
   Num_Objects = stats->n_objs;
 
   if (_lb_args.debug() > 0) {
index 8f00707116c9268b7943204f05a42e65acab5d88..b1e45a02f340106152567f6dff8c2a61abac1d22 100644 (file)
@@ -61,7 +61,7 @@ class GridCommLB : public CentralLB
     GridCommLB (CkMigrateMessage *msg);
 
     CmiBool QueryBalanceNow (int step);
-    void work (CentralLB::LDStats *stats, int count);
+    void work (LDStats *stats);
     void pup (PUP::er &p) { CentralLB::pup (p); }
 
   private:
index 7014bfa6cb7bad53566c6aa9de0222e613dd1abe..6811b1c9d59ba14747e4f8764f08e86dbfc420bf 100644 (file)
@@ -578,7 +578,7 @@ void GridCommRefineLB::Assign_Object_To_PE (int target_object, int target_pe)
 ** The Charm++ load balancing framework invokes this method to cause the
 ** load balancer to migrate objects to "better" PEs.
 */
-void GridCommRefineLB::work (CentralLB::LDStats *stats, int count)
+void GridCommRefineLB::work (LDStats *stats)
 {
   int i;
   // int j;
@@ -603,7 +603,7 @@ void GridCommRefineLB::work (CentralLB::LDStats *stats, int count)
   stats->makeCommHash ();
 
   // Initialize object variables for the number of PEs and number of objects.
-  Num_PEs = count;
+  Num_PEs = stats->n_pes;
   Num_Objects = stats->n_objs;
 
   if (_lb_args.debug() > 0) {
index 639853b95ddd6f2a743426020c86b2ba4d63aab0..a1a5238f0dfa3351ec0b6d7d6f2cac78b0df8a65 100644 (file)
@@ -54,7 +54,7 @@ class GridCommRefineLB : public CentralLB
     GridCommRefineLB (CkMigrateMessage *msg);
 
     CmiBool QueryBalanceNow (int step);
-    void work (CentralLB::LDStats *stats, int count);
+    void work (LDStats *stats);
     void pup (PUP::er &p) { CentralLB::pup (p); }
 
   private:
index 0a73766c3a74af2fff9b215a8126b0b49b3b9b62..1d233ba7f3e108350f04c31ff914d4b3b1393d78 100644 (file)
@@ -856,7 +856,7 @@ void GridHybridLB::Assign_Object_To_PE (int target_object, int target_pe)
 ** The Charm++ load balancing framework invokes this method to cause the
 ** load balancer to migrate objects to "better" PEs.
 */
-void GridHybridLB::work (CentralLB::LDStats *stats, int count)
+void GridHybridLB::work (LDStats *stats)
 {
   int i;
 
@@ -869,7 +869,7 @@ void GridHybridLB::work (CentralLB::LDStats *stats, int count)
   stats->makeCommHash ();
 
   // Initialize object variables for the number of PEs and number of objects.
-  Num_PEs = count;
+  Num_PEs = stats->n_pes;
   Num_Objects = stats->n_objs;
 
   if (_lb_args.debug() > 0) {
index 3464e35d445dea6db9525dd8de38e4bf214365fb..bca8e72e4dc08b53dfb8109bc44c69e06c1b8cc9 100644 (file)
@@ -93,7 +93,7 @@ class GridHybridLB : public CentralLB
     GridHybridLB (CkMigrateMessage *msg);
 
     CmiBool QueryBalanceNow (int step);
-    void work (CentralLB::LDStats *stats, int count);
+    void work (LDStats *stats);
     void pup (PUP::er &p) { CentralLB::pup (p); }
 
   private:
index de16f762dee0efa8ff13cf74eacbd560082146c9..37902b3c855ed82d6dfca0a4b858c2c3d9794ae4 100644 (file)
@@ -993,7 +993,7 @@ void GridHybridSeedLB::Assign_Object_To_PE (int target_object, int target_pe)
 ** The Charm++ load balancing framework invokes this method to cause the
 ** load balancer to migrate objects to "better" PEs.
 */
-void GridHybridSeedLB::work (CentralLB::LDStats *stats, int count)
+void GridHybridSeedLB::work (LDStats *stats)
 {
   int target_pe;
   int target_object;
@@ -1007,7 +1007,7 @@ void GridHybridSeedLB::work (CentralLB::LDStats *stats, int count)
   stats->makeCommHash ();
 
   // Initialize object variables for the number of PEs and number of objects.
-  Num_PEs = count;
+  Num_PEs = stats->n_pes;
   Num_Objects = stats->n_objs;
 
   if (_lb_args.debug() > 0) {
index da709fc428e5fd19555cb1e5a4116cf836692d9b..2533cabf6273337a36b4cdef4a7a7de222c7816b 100644 (file)
@@ -93,7 +93,7 @@ class GridHybridSeedLB : public CentralLB
     GridHybridSeedLB (CkMigrateMessage *msg);
 
     CmiBool QueryBalanceNow (int step);
-    void work (CentralLB::LDStats *stats, int count);
+    void work (LDStats *stats);
     void pup (PUP::er &p) { CentralLB::pup (p); }
 
   private:
index 92797ba35289b2894b008653e3a36cdc4b3a508a..2ebc036c9739a92b00eeb1ed92aac64b6c8197e2 100644 (file)
@@ -778,7 +778,7 @@ void GridMetisLB::Partition_ClusterObjects_Into_PEs (CentralLB::LDStats *stats,
 ** The Charm++ load balancing framework invokes this method to cause the
 ** load balancer to migrate objects to "better" PEs.
 */
-void GridMetisLB::work (CentralLB::LDStats *stats, int count)
+void GridMetisLB::work (LDStats *stats)
 {
   int i;
 
@@ -791,7 +791,7 @@ void GridMetisLB::work (CentralLB::LDStats *stats, int count)
   stats->makeCommHash ();
 
   // Initialize object variables for the number of PEs and number of objects.
-  Num_PEs = count;
+  Num_PEs = stats->n_pes;
   Num_Objects = stats->n_objs;
 
   if (_lb_args.debug() > 0) {
index d0e41975ffa6f1caf8eeb53221843f6bcf9e3499..48de44c132ccbfb540ba163f6b9fe06c7ae49f07 100644 (file)
@@ -86,7 +86,7 @@ class GridMetisLB : public CentralLB
     GridMetisLB (CkMigrateMessage *msg);
 
     CmiBool QueryBalanceNow (int step);
-    void work (CentralLB::LDStats *stats, int count);
+    void work (LDStats *stats);
     void pup (PUP::er &p) { CentralLB::pup (p); }
 
   private:
index e14f1e6a101db6a5b654be02fce59c1b1f668152..69d3b52aa0434c993746e219ddd272ddcc4c1d93 100644 (file)
@@ -563,7 +563,7 @@ void HbmLB::reportLBQulity(double mload, double mCpuLoad, double totalload, int
   }
 }
 
-void HbmLB::work(LDStats* stats,int count)
+void HbmLB::work(LDStats* stats)
 {
 #if CMK_LBDB_ON
   CkPrintf("[%d] HbmLB::work called!\n", CkMyPe());
index e187c020978c7f40ff941f91a1f63d48f6b533c0..0412c275f68844b6785d78d0ed8d2cd5179618a7 100644 (file)
@@ -123,8 +123,8 @@ private:
 protected:
   virtual CmiBool QueryBalanceNow(int) { return CmiTrue; };  
   virtual CmiBool QueryMigrateStep(int) { return CmiTrue; };  
-  //virtual LBMigrateMsg* Strategy(LDStats* stats,int count);
-  virtual void work(LDStats* stats,int count);
+  //virtual LBMigrateMsg* Strategy(LDStats* stats);
+  virtual void work(LDStats* stats);
 
   virtual int     useMem();
   int NeighborIndex(int pe, int atlevel);   // return the neighbor array index
index 0d74c9be583a1cd0483cca231f7d2846363ccb7f..adbcf31802bf2f3e3ab086264297ae57dd6a03f1 100644 (file)
@@ -103,9 +103,8 @@ void RecBisectBfLB::work(LDStats* stats)
       //      CmiPrintf("%d ", partitions->partitions[i].nodeArray[j]);
       const int objref = partitions->partitions[i].nodeArray[j];
       ObjGraph::Node n = og.GraphNode(objref);
-      /*     CkPrintf("Moving %d(%d) from %d to %d\n",objref,
-            stats[n.proc].objData[n.index].handle.id.id[0],n.proc,i);
-      */
+      //     CkPrintf("Moving %d(%d) from %d to %d\n",objref,
+      //            stats[n.proc].objData[n.index].handle.id.id[0],n.proc,i);
       if (n.proc != i) {
        CmiAssert(stats->from_proc[n.index] == n.proc);
         stats->to_proc[n.index] = i;
index bb8e65439b94067eaa88fd8dd9d75860f73f942b..338f53ee2f0abd44b56a6e5cb442313137f5b5f0 100644 (file)
@@ -40,33 +40,31 @@ CmiBool RefineTopoLB::QueryBalanceNow (int _step)
   return CmiTrue;
 }
 
-void RefineTopoLB :: work(CentralLB::LDStats *stats,int count)
+void RefineTopoLB :: work(LDStats *stats)
 {
   int i, j;
-  if (_lb_args.debug() >= 2) 
-  {
+  int n_pes = stats->n_pes;
+
+  if (_lb_args.debug() >= 2) {
     CkPrintf("In TopoLB Strategy...\n");
   }
   
   /****Make sure that there is at least one available processor.***/
   int proc;
-  for (proc = 0; proc < count; proc++) 
-  {
+  for (proc = 0; proc < n_pes; proc++) {
     if (stats->procs[proc].available)  
       break;
   }
        
-  if (proc == count) 
-  {
+  if (proc == n_pes) {
     CmiAbort ("TopoLB: no available processors!");
   }
  
-  removeNonMigratable(stats,count);
+  removeNonMigratable(stats, n_pes);
 
-  if(_lb_debug_on)
-  {
-    CkPrintf("Num of procs: %d\n",count);
-    CkPrintf("Num of objs:  %d\n",stats->n_objs);
+  if(_lb_debug_on) {
+    CkPrintf("Num of procs: %d\n", n_pes);
+    CkPrintf("Num of objs:  %d\n", stats->n_objs);
   }
 
   /**************Initialize Topology ****************************/
@@ -80,14 +78,14 @@ void RefineTopoLB :: work(CentralLB::LDStats *stats,int count)
     sprintf(str, "TopoLB> Fatal error: Unknown topology: %s", _lbtopo);
     CmiAbort(str);
   }
-  topo = topofn(count);
+  topo = topofn(n_pes);
   /**************************************************************/
   if(_lb_debug_on)
     CkPrintf("before computing partitions...\n");
   
   int *newmap = new int[stats->n_objs];
   if(_make_new_grouping_)
-    computePartitions(stats,count,newmap);
+    computePartitions(stats, n_pes, newmap);
   else
   {
     for(int i=0;i<stats->n_objs;i++)
@@ -98,41 +96,41 @@ void RefineTopoLB :: work(CentralLB::LDStats *stats,int count)
   /***************** Fill Data Structures *************************/
   if(_lb_debug_on)
     CkPrintf("before allocating dataStructures...\n");
-  allocateDataStructures(count);
+  allocateDataStructures(n_pes);
   if(_lb_debug_on)
     CkPrintf("before initizlizing dataStructures...\n");
-  initDataStructures(stats,count,newmap);
+  initDataStructures(stats, n_pes, newmap);
   if(_lb_debug_on)
     CkPrintf("After initizlizing dataStructures...\n");
 
-  for(i=0;i<count;i++)
+  for(i = 0; i < n_pes; i++)
     assign[i]=i;
   
 
 
   if(_lb_debug_on)
-    printDataStructures(count, stats->n_objs,newmap);
+    printDataStructures(n_pes, stats->n_objs,newmap);
   /***************** Perform RefineMent *************************/
-  bool *swapdone=new bool[count];
-  for(i=0;i<count;i++)
+  bool *swapdone=new bool[n_pes];
+  for(i = 0; i < n_pes; i++)
     swapdone[i]=false;
 
     
-  //double hbval=getHopBytes(stats,count,stats->from_proc);
-  //double hbval=getHopBytesNew(NULL,count);
+  //double hbval=getHopBytes(stats, n_pes, stats->from_proc);
+  //double hbval=getHopBytesNew(NULL, n_pes);
  // CkPrintf(" Before Mapping Original   hopBytes : %lf  Avg comm hops: %lf\n", hbval,hbval/total_comm);
   //Perform ith swap
   double totalGain=0;
-  for(i=0;i<count;i++)
+  for(i = 0; i < n_pes; i++)
   {
     //select the cpart which is most communicating and hasn't been moved yet
     if(_USE_MAX_HOPBYTES_)
     {
-      updateCommUA(count);
+      updateCommUA(n_pes);
     }
     int cpart=-1;
     double maxComm=-1;
-    for(j=0;j<count;j++)
+    for(j = 0; j < n_pes; j++)
     {
       if(swapdone[j]) continue;
       if(commUA[j]>maxComm)
@@ -147,15 +145,15 @@ void RefineTopoLB :: work(CentralLB::LDStats *stats,int count)
     int swapcpart=-1;
     double gainMax=-1;
     double gain=-1;;
-    //double orig_value=getHopBytesNew(assign,count);
-    for(j=0;j<count;j++)
+    //double orig_value=getHopBytesNew(assign, n_pes);
+    for(j = 0; j < n_pes; j++)
     {
       if(j==cpart)
         continue;
 
-      gain=findSwapGain(j,cpart,count);
+      gain=findSwapGain(j, cpart, n_pes);
 
-      //CkPrintf("%lf : %lf\n",gain,findSwapGain(j,cpart,count));
+      //CkPrintf("%lf : %lf\n",gain,findSwapGain(j, cpart, n_pes));
       if(gain>gainMax && gain>0)
       {
         gainMax=gain;
@@ -176,8 +174,8 @@ void RefineTopoLB :: work(CentralLB::LDStats *stats,int count)
     assign[swapcpart]=temp;
     swapdone[cpart]=true;
   
-    //CkPrintf("Gain: %lf  Total_Gain: %lf HopBytes: %lf\n ",gainMax,totalGain,getHopBytesNew(stats,count,newmap));
-    //CkPrintf(" %lf  getHopBytesNew(stats,count,newmap);
+    //CkPrintf("Gain: %lf  Total_Gain: %lf HopBytes: %lf\n ",gainMax,totalGain,getHopBytesNew(stats, n_pes, newmap));
+    //CkPrintf(" %lf  getHopBytesNew(stats, n_pes, newmap);
     //CkPrintf("Swap# %d:  %d and %d\n",i+1,cpart,swapcpart);
   }
   /******************* Assign mapping and print Stats*********/
@@ -187,27 +185,27 @@ void RefineTopoLB :: work(CentralLB::LDStats *stats,int count)
   }
   if(_lb_debug2_on)
   {
-    //double hbval=getHopBytes(stats,count,stats->from_proc);
-    double hbval1=getHopBytesNew(NULL,count);
+    //double hbval=getHopBytes(stats, n_pes, stats->from_proc);
+    double hbval1=getHopBytesNew(NULL, n_pes);
     CkPrintf(" Original   hopBytes : %lf  Avg comm hops: %lf\n", hbval1,hbval1/total_comm);
-    double hbval2=getHopBytesNew(assign,count);
+    double hbval2=getHopBytesNew(assign, n_pes);
     CkPrintf(" Resulting  hopBytes : %lf  Avg comm hops: %lf\n", hbval2,hbval2/total_comm);
     CkPrintf(" Percentage gain %.2lf\n",(hbval1-hbval2)*100/hbval1);
     CkPrintf("\n");
   }
-  freeDataStructures(count);
+  freeDataStructures(n_pes);
   delete[] newmap;
   delete[] swapdone;
 }
 
-double RefineTopoLB::findSwapGain(int cpart1, int cpart2,int count)
+double RefineTopoLB::findSwapGain(int cpart1, int cpart2, int n_pes)
 {
   double oldvalue=0;
   int proc1=assign[cpart1];
   int proc2=assign[cpart2];
   int proci=-1;
 
-  for(int i=0;i<count;i++)
+  for(int i = 0; i < n_pes; i++)
   {
     proci=assign[i];
     if(i!=cpart1 && i!=cpart2)
index 25c4d8b0ef50e71304ad500737b2089db0ae3bd4..a943cc90cc910aee11c5e22a78e6f7b81776124f 100644 (file)
@@ -17,14 +17,14 @@ class RefineTopoLB : public TopoLB
     RefineTopoLB (const CkLBOptions &opt);
     RefineTopoLB (CkMigrateMessage *m) : TopoLB (m) { };
   
-    void work (CentralLB::LDStats *stats, int count);
+    void work (LDStats *stats);
     void pup (PUP::er &p) { TopoLB::pup(p); }
        
     //LBTopolog *topo;
   
   protected:
-    double getCpartHopBytes(int cpart,int proc, int count);
-    double findSwapGain(int cpart1, int cpart2,int count);
+    double getCpartHopBytes(int cpart, int proc, int count);
+    double findSwapGain(int cpart1, int cpart2, int n_pes);
     //double getInterMedHopBytes(CentralLB::LDStats *stats,int count, int *newmap);
     CmiBool QueryBalanceNow (int step);
     void updateCommUA(int count);
index 9b77f5d50d3971e3b1f5dd7f58e8a9c4c66230c8..1368fd03346ed54e1fd7782c1ea17d5d63ddcba4 100644 (file)
@@ -44,21 +44,21 @@ CmiBool RotateLB::QueryBalanceNow (int _step)
 /**************************************************************************
 **
 */
-void RotateLB::work (BaseLB::LDStats *stats, int count)
+void RotateLB::work(LDStats *stats)
 {
   int proc;
   int obj;
   int dest;
   LDObjData *odata;
-
+  int n_pes = stats->n_pes;
 
   // Make sure that there is at least one available processor.
-  for (proc = 0; proc < count; proc++) {
+  for (proc = 0; proc < n_pes; proc++) {
     if (stats->procs[proc].available) {
       break;
     }
   }
-  if (proc == count) {
+  if (proc == n_pes) {
     CmiAbort ("RotateLB: no available processors!");
   }
 
@@ -66,10 +66,10 @@ void RotateLB::work (BaseLB::LDStats *stats, int count)
   for (obj = 0; obj < stats->n_objs; obj++) {
     odata = &(stats->objData[obj]);
     if (odata->migratable) {
-      dest = ((stats->from_proc[obj] + 1) % count);
+      dest = ((stats->from_proc[obj] + 1) % n_pes);
       while ((!stats->procs[dest].available) &&
             (dest != stats->from_proc[obj])) {
-       dest = ((dest + 1) % count);
+       dest = ((dest + 1) % n_pes);
       }
       if (dest != stats->from_proc[obj]) {
        stats->to_proc[obj] = dest;
index c2b0ceabd99f0239713ee5b81ce8daf2fd24835d..97095753d395084beb93a25fdff33a0be9054755 100644 (file)
@@ -11,7 +11,7 @@ class RotateLB : public CentralLB
     RotateLB (const CkLBOptions &opt);
     RotateLB (CkMigrateMessage *m) : CentralLB (m) { };
 
-    void work (BaseLB::LDStats *stats, int count);
+    void work(LDStats *stats);
 
     void pup (PUP::er &p) { CentralLB::pup(p); }
 
index a5e613e29a4bd5030eca160ff1681ff68cb36b8f..161dcfda1f03715875eb9230bdb58abce7868189 100644 (file)
@@ -463,42 +463,43 @@ void TopoCentLB :: calculateMST(PartGraph *partgraph,LBTopology *topo,int *proc_
 }
 
 
-void TopoCentLB :: work(CentralLB::LDStats *stats,int count)
+void TopoCentLB :: work(LDStats *stats)
 {
   int proc;
   int obj;
   int dest;
   int i,j;
-       LDObjData *odata;
+  LDObjData *odata;
+  int n_pes = stats->n_pes;
        
-       if (_lb_args.debug() >= 2) {
+  if (_lb_args.debug() >= 2) {
     CkPrintf("In TopoCentLB Strategy...\n");
   }
   
   // Make sure that there is at least one available processor.
-  for (proc = 0; proc < count; proc++) {
+  for (proc = 0; proc < n_pes; proc++) {
     if (stats->procs[proc].available) {
       break;
     }
   }
-       if (proc == count) {
+
+  if (proc == n_pes) {
     CmiAbort ("TopoCentLB: no available processors!");
   }
 
   
-  removeNonMigratable(stats,count);
-
-       int *newmap = new int[stats->n_objs];
+  removeNonMigratable(stats, n_pes);
+  int *newmap = new int[stats->n_objs];
 
 
-       if(make_mapping)
-               computePartitions(stats,count,newmap);
-       else{
-               //mapping taken from previous algo
-               for(i=0;i<stats->n_objs;i++){
+  if(make_mapping)
+    computePartitions(stats, n_pes, newmap);
+  else {
+    //mapping taken from previous algo
+    for(i=0;i<stats->n_objs;i++) {
       newmap[i]=stats->from_proc[i];
     }
-       }
+  }
 
   //Debugging Code
   if(_lb_args.debug() >=2){
@@ -507,9 +508,9 @@ void TopoCentLB :: work(CentralLB::LDStats *stats,int count)
                  CkPrintf(" %d,%d ",i,newmap[i]);
   }
 
-       int max_objs = findMaxObjs(newmap,stats->n_objs,count);
+       int max_objs = findMaxObjs(newmap,stats->n_objs, n_pes);
        
-       partgraph = new PartGraph(count,max_objs);
+       partgraph = new PartGraph(n_pes, max_objs);
 
        //Fill up the partition graph - first fill the nodes and then, the edges
 
@@ -520,7 +521,7 @@ void TopoCentLB :: work(CentralLB::LDStats *stats,int count)
                n->num_objs++;
        }
 
-       int *addedComm=new int[count];
+       int *addedComm=new int[n_pes];
   
   stats->makeCommHash();
   
@@ -531,8 +532,8 @@ void TopoCentLB :: work(CentralLB::LDStats *stats,int count)
   //Try putting random amount of communication on the partition graph edges to see if things work fine
   //This also checks the running time of the algorithm since number of edges is high than in a practical scenario
        #ifdef RAND_COMM
-       for(i=0;i<count;i++){
-               for(j=i+1;j<count;j++){
+       for(i = 0; i < n_pes; i++) {
+               for(j = i+1; j < n_pes; j++) {
                        int val;
                        if(rand()%5==0)
                                val=0;
@@ -595,7 +596,7 @@ void TopoCentLB :: work(CentralLB::LDStats *stats,int count)
                        int nobjs;
        LDObjKey *objs = cdata.receiver.get_destObjs(nobjs);
       int senderID = stats->getHash(cdata.sender);
-                       for(j=0;j<count;j++)
+                       for(j = 0; j < n_pes; j++)
                                addedComm[j]=0;
                        for (j=0; j<nobjs; j++) {
        int recverID = stats->getHash(objs[j]);
@@ -637,7 +638,7 @@ void TopoCentLB :: work(CentralLB::LDStats *stats,int count)
        }
        #endif
        
-       int *proc_mapping = new int[count];
+       int *proc_mapping = new int[n_pes];
        
        delete [] addedComm;
                
@@ -663,7 +664,7 @@ void TopoCentLB :: work(CentralLB::LDStats *stats,int count)
     CmiAbort(str);
   }
   
-       topo = topofn(count);
+       topo = topofn(n_pes);
 
   //Call the core routine to produce the partition processor mapping
        calculateMST(partgraph,topo,proc_mapping,max_comm_part);
@@ -672,14 +673,14 @@ void TopoCentLB :: work(CentralLB::LDStats *stats,int count)
   //Debugging code: Result of mapping partition graph onto processor graph
        if (_lb_args.debug()>1) {
          CkPrintf("Resultant mapping..(partition,processor)\n");
-         for(i=0;i<count;i++)
+         for(i = 0; i < n_pes; i++)
                  CkPrintf("%d,%d\n",i,proc_mapping[i]);
   }
 
   //Store the result in the load balancing database
        int pe;
        PartGraph::Node* n;
-       for(i=0;i<count;i++){
+       for(i = 0; i < n_pes; i++){
                pe = proc_mapping[i];
                n = &partgraph->nodes[i];
                for(j=0;j<n->num_objs;j++){
@@ -692,7 +693,7 @@ void TopoCentLB :: work(CentralLB::LDStats *stats,int count)
        delete[] newmap;
        delete[] proc_mapping;
        //Delete hopCount
-       for(i=0;i<count;i++)
+       for(i = 0; i < n_pes; i++)
                delete[] hopCount[i];
 
        delete[] hopCount;
index 3fd56e966d4057caa5e5be98aaa02ff87eda27f1..847abe01f38af3cc8ee8259d7e01906d73e10496 100644 (file)
@@ -41,7 +41,7 @@ class TopoCentLB : public CentralLB
     TopoCentLB (CkMigrateMessage *m) : CentralLB (m) { };
     ~TopoCentLB();
     
-    void work (CentralLB::LDStats *stats, int count);
+    void work (LDStats *stats);
 
     void pup (PUP::er &p) { CentralLB::pup(p); }
 
index 48a3593dd7835ee7047f960fe7b0af4634890c7a..0b0b83a015dab6a50997d650d3caf6e3921ec7f7 100644 (file)
@@ -702,32 +702,31 @@ void TopoLB::performMapping(int *newmap, int count)
 
 }
 
-void TopoLB :: work(CentralLB::LDStats *stats,int count)
+void TopoLB :: work(LDStats *stats)
 {
   int i, j;
-  if (_lb_args.debug() >= 2) 
-  {
+  int n_pes = stats->n_pes;
+
+  if (_lb_args.debug() >= 2) {
     CkPrintf("In TopoLB Strategy...\n");
   }
   
   /****Make sure that there is at least one available processor.***/
   int proc;
-  for (proc = 0; proc < count; proc++) 
-  {
+  for (proc = 0; proc < n_pes; proc++) {
     if (stats->procs[proc].available)  
       break;
   }
        
-  if (proc == count) 
-  {
+  if (proc == n_pes) {
     CmiAbort ("TopoLB: no available processors!");
   }
  
-  removeNonMigratable(stats,count);
+  removeNonMigratable(stats, n_pes);
 
   if(_lb_debug_on)
   {
-    CkPrintf("Num of procs: %d\n",count);
+    CkPrintf("Num of procs: %d\n", n_pes);
     CkPrintf("Num of objs:  %d\n",stats->n_objs);
   }
 
@@ -749,7 +748,7 @@ void TopoLB :: work(CentralLB::LDStats *stats,int count)
     sprintf(str, "TopoLB> Fatal error: Unknown topology: %s", _lbtopo);
     CmiAbort(str);
   }
-  topo = topofn(count);
+  topo = topofn(n_pes);
 
   /*********** Compute Partitions *********************************/
   if(_lb_debug_on)
@@ -757,7 +756,7 @@ void TopoLB :: work(CentralLB::LDStats *stats,int count)
   
   int *newmap = new int[stats->n_objs];
   if(_make_new_grouping_)
-    computePartitions(stats,count,newmap);
+    computePartitions(stats, n_pes, newmap);
   else
   {
     for(i=0;i<stats->n_objs;i++)
@@ -769,22 +768,22 @@ void TopoLB :: work(CentralLB::LDStats *stats,int count)
   if(_lb_debug_on)
     CkPrintf("before allocating dataStructures...\n");
 
-  allocateDataStructures(count);
+  allocateDataStructures(n_pes);
 
   if(_lb_debug_on)
     CkPrintf("before initizlizing dataStructures...\n");
 
-  initDataStructures(stats,count,newmap);
+  initDataStructures(stats, n_pes, newmap);
 
   if(_lb_debug_on)
-    printDataStructures(count, stats->n_objs,newmap);
+    printDataStructures(n_pes, stats->n_objs, newmap);
   
   /****************** Perform Mapping *****************************/
 
   if(_lb_debug_on)
     CkPrintf("before performing mapping...\n");
   
-  performMapping(newmap,count);
+  performMapping(newmap, n_pes);
 
   for(i=0;i<stats->n_objs;i++)
   {
@@ -793,11 +792,11 @@ void TopoLB :: work(CentralLB::LDStats *stats,int count)
 
   if(_lb_debug2_on)
   {
-    double hbval1=getHopBytesNew(NULL,count);
+    double hbval1=getHopBytesNew(NULL, n_pes);
     CkPrintf("\n");
     CkPrintf(" Original hopBytes : %.1lf \n", hbval1);
     CkPrintf(" Original Avg hops : %.1lf \n", hbval1/total_comm);
-    double hbval2=getHopBytesNew(assign,count);
+    double hbval2=getHopBytesNew(assign, n_pes);
     //CkPrintf(" Resulting hopBytes : %.1lf \n", hbval2);
     //CkPrintf(" Resulting Avg hops : %.1lf \n", hbval2/total_comm);
     //CkPrintf(" Percentage gain %.2lf\n",(hbval1-hbval2)*100/hbval1);
@@ -807,8 +806,8 @@ void TopoLB :: work(CentralLB::LDStats *stats,int count)
     int nTrials=10;
     for(int t=0;t<nTrials;t++)
     {
-      randomAssign(count, assign);
-      double hbval3=getHopBytesNew(assign,count);
+      randomAssign(n_pes, assign);
+      double hbval3=getHopBytesNew(assign, n_pes);
       total_hb_rand+=hbval3;
      //CkPrintf(" Random hopBytes : %.1lf \n", hbval3);
      //CkPrintf(" Random Avg hops : %.1lf \n", hbval3/total_comm);
@@ -822,7 +821,7 @@ void TopoLB :: work(CentralLB::LDStats *stats,int count)
     CkPrintf(" Percentage gain(TopoLB vs random) %.2lf\n",(hbval4-hbval2)*100/hbval4);
     CkPrintf("\n");
   }
-  freeDataStructures(count);
+  freeDataStructures(n_pes);
   delete[] newmap;
   return;
 }
index 5a27d1a6bf1903634dd7b69541257eea4599ed0e..204bb7adbeba64650bb6aa5b45df3b209073a814 100644 (file)
@@ -50,7 +50,7 @@ class TopoLB : public CentralLB
     TopoLB (const CkLBOptions &opt);
     TopoLB (CkMigrateMessage *m) : CentralLB (m) { };
   
-    void work (CentralLB::LDStats *stats, int count);
+    void work (LDStats *stats);
    // void work_fromFile (char *filename);
     void pup (PUP::er &p) { CentralLB::pup(p); }