Added GridCommRefineLB to the default build process.
authorGreg Koenig <koenig@uiuc.edu>
Sat, 25 Mar 2006 03:57:41 +0000 (03:57 +0000)
committerGreg Koenig <koenig@uiuc.edu>
Sat, 25 Mar 2006 03:57:41 +0000 (03:57 +0000)
src/ck-ldb/EveryLB.ci
src/ck-ldb/GridCommRefineLB.C
src/ck-ldb/GridCommRefineLB.h
src/ck-ldb/Make.lb
src/ck-ldb/Makefile_lb.sh
src/scripts/Make.depends
src/scripts/Makefile
src/scripts/Makefile.win32

index 2b78be9d7198af1a9fcc93ccec76c011c69a9a5d..12aefaf054088a6624782b093b3a59b7bf370f16 100644 (file)
@@ -10,6 +10,7 @@ module EveryLB {
    extern module GreedyCommLB;
    extern module GreedyAgentLB;
    extern module GridCommLB;
+   extern module GridCommRefineLB;
    extern module Comm1LB;
    extern module OrbLB;
    extern module RecBisectBfLB;
@@ -24,6 +25,6 @@ module EveryLB {
    extern module TopoCentLB;
    extern module HybridLB;
    extern module HbmLB;
-        extern module BlockLB;
+   extern module BlockLB;
    initnode void initEveryLB(void);
 };
index 905e8fe80ad5e6692269c55aaf8c7605078daaf8..c17230961a69b69578329b77e04f3da5b006c3c2 100644 (file)
@@ -122,8 +122,8 @@ CmiBool GridCommRefineLB::QueryBalanceNow (int step)
 ** specified PE or -1 if the information is unknown.
 **
 ** For machine layers other than vmi-linux, simply return the constant 0.
-** GridCommLB will assume a single-cluster computation and will balance
-** on the scaled processor load and number of LAN messages.
+** GridCommRefineLB will assume a single-cluster computation and will
+** balance on the scaled processor load and number of LAN messages.
 */
 int GridCommRefineLB::Get_Cluster (int pe)
 {
@@ -275,6 +275,7 @@ void GridCommRefineLB::Assign_Object_To_PE (int target_object, int target_pe)
 void GridCommRefineLB::work (CentralLB::LDStats *stats, int count)
 {
   int i;
+  int j;
   CmiBool available;
   CmiBool all_pes_mapped;
   int max_cluster;
@@ -285,6 +286,9 @@ void GridCommRefineLB::work (CentralLB::LDStats *stats, int count)
   int recv_object;
   int recv_pe;
   int recv_cluster;
+  int num_cluster_pes;
+  int num_wan_objs;
+  int avg_wan_objs;
   int target_object;
   int target_pe;
   LDCommData *com_data;
@@ -446,7 +450,7 @@ void GridCommRefineLB::work (CentralLB::LDStats *stats, int count)
     // Move objects away from PEs that exceed the average.
     for (j = 0; j < Num_PEs; j++) {
       if (i == (&PE_Data[j])->cluster) {
-       while ((&PE_Data[j])->num_wan_objs > (avg_wan_objs * FOOBAR)) {
+       while ((&PE_Data[j])->num_wan_objs > (avg_wan_objs * CK_LDB_GridCommRefineLB_Tolerance)) {
          target_object = Find_Maximum_WAN_Object (j);
          target_pe = Find_Minimum_WAN_PE (i);
 
index 5b2ac284a9b31b76a0869be642c387595f425a10..f0e1dba5177d207d52e30d3191175ff5386a2629 100644 (file)
@@ -55,9 +55,10 @@ class GridCommRefineLB : public CentralLB
 
   private:
     int Get_Cluster (int pe);
-    int Find_Maximum_WAN_Object (int cluster);
+    int Find_Maximum_WAN_Object (int pe);
     int Find_Minimum_WAN_PE (int cluster);
     void Assign_Object_To_PE (int target_object, int target_pe);
+    void Remove_Object_From_PE (int target_object, int target_pe);
     CmiBool QueryBalanceNow (int step);
 
     int Num_PEs;
@@ -65,6 +66,7 @@ class GridCommRefineLB : public CentralLB
     int Num_Clusters;
     PE_Data_T *PE_Data;
     Object_Data_T *Object_Data;
+    double CK_LDB_GridCommRefineLB_Tolerance;
 };
 
 #endif
index 1f7047eefd5ef556f7f32fc0fd1c7e451d017adc..d1997e6c9f1509f9441cbc375258bf0b165b031a 100644 (file)
@@ -13,6 +13,7 @@ LOADBALANCERS=\
    $(L)/libmoduleGreedyCommLB.a \
    $(L)/libmoduleGreedyAgentLB.a \
    $(L)/libmoduleGridCommLB.a \
+   $(L)/libmoduleGridCommRefineLB.a \
    $(L)/libmoduleComm1LB.a \
    $(L)/libmoduleOrbLB.a \
    $(L)/libmoduleRecBisectBfLB.a \
@@ -118,6 +119,15 @@ GridCommLB.decl.h: GridCommLB.ci charmxi
 
 $(L)/libmoduleGridCommLB.a: GridCommLB.o manager.o
        $(CHARMC) -o $(L)/libmoduleGridCommLB.a GridCommLB.o manager.o
+
+
+GridCommRefineLB.def.h: GridCommRefineLB.decl.h
+
+GridCommRefineLB.decl.h: GridCommRefineLB.ci charmxi
+       $(CHARMXI) GridCommRefineLB.ci
+
+$(L)/libmoduleGridCommRefineLB.a: GridCommRefineLB.o manager.o
+       $(CHARMC) -o $(L)/libmoduleGridCommRefineLB.a GridCommRefineLB.o manager.o
        
 
 Comm1LB.def.h: Comm1LB.decl.h
@@ -265,6 +275,7 @@ LB_OBJ=EveryLB.o \
     GreedyCommLB.o \
     GreedyAgentLB.o \
     GridCommLB.o \
+    GridCommRefineLB.o \
     Comm1LB.o \
     OrbLB.o \
     RecBisectBfLB.o \
index 8eba846c20625f04271c252f37c312ffca45c132..1ad538a30212c07bc953635351d5240ec6e025b9 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-LOADBALANCERS="DummyLB ComboCentLB RandCentLB RefineLB RefineKLB  RefineCommLB GreedyLB GreedyCommLB GreedyAgentLB GridCommLB Comm1LB OrbLB RecBisectBfLB MetisLB PhasebyArrayLB RotateLB NeighborLB NeighborCommLB WSLB TopoLB RefineTopoLB TopoCentLB HybridLB HbmLB BlockLB"
+LOADBALANCERS="DummyLB ComboCentLB RandCentLB RefineLB RefineKLB  RefineCommLB GreedyLB GreedyCommLB GreedyAgentLB GridCommLB GridCommRefineLB Comm1LB OrbLB RecBisectBfLB MetisLB PhasebyArrayLB RotateLB NeighborLB NeighborCommLB WSLB TopoLB RefineTopoLB TopoCentLB HybridLB HbmLB BlockLB"
 
 out="Make.lb"
 
@@ -22,6 +22,7 @@ do
         manager=""
         [ $bal = 'GreedyCommLB' ] && manager="manager.o"
         [ $bal = 'GridCommLB' ] && manager="manager.o"
+        [ $bal = 'GridCommRefineLB' ] && manager="manager.o"
        cat >> $out << EOB 
 $bal.def.h: $bal.decl.h
 
index 8d05b15643c22d65fe799bf12071a6180c6dfab9..b25912c9de208a0a57da76c8601caab7037ba573 100644 (file)
@@ -1258,8 +1258,8 @@ EveryLB.o: EveryLB.C charm++.h charm.h converse.h conv-config.h \
   LBDatabase.decl.h CentralLBMsg.h ComboCentLB.decl.h RandCentLB.decl.h \
   RefineLB.decl.h RefineKLB.decl.h RefineCommLB.decl.h GreedyLB.decl.h \
   GreedyCommLB.decl.h GreedyAgentLB.decl.h GridCommLB.decl.h \
-  Comm1LB.decl.h OrbLB.decl.h RecBisectBfLB.decl.h MetisLB.decl.h \
-  PhasebyArrayLB.decl.h RotateLB.decl.h NeighborLB.decl.h \
+  GridCommRefineLB.decl.h Comm1LB.decl.h OrbLB.decl.h RecBisectBfLB.decl.h \
+  MetisLB.decl.h PhasebyArrayLB.decl.h RotateLB.decl.h NeighborLB.decl.h \
   NborBaseLB.decl.h NeighborLBMsg.h NeighborCommLB.decl.h WSLB.decl.h \
   TopoLB.decl.h RefineTopoLB.decl.h TopoCentLB.decl.h HybridLB.decl.h \
   HybridBaseLB.decl.h HybridLBMsg.h HbmLB.decl.h BlockLB.decl.h \
@@ -1475,6 +1475,26 @@ GridCommLB.o: GridCommLB.C GridCommLB.decl.h charm++.h charm.h converse.h \
   GridCommLB.def.h
        $(CHARMC) -c -I. GridCommLB.C
 
+GridCommRefineLB.o: GridCommRefineLB.C GridCommRefineLB.decl.h charm++.h \
+  charm.h converse.h conv-config.h conv-autoconfig.h conv-common.h \
+  conv-mach.h conv-mach-opt.h pup_c.h conv-cpm.h conv-cpath.h conv-qd.h \
+  conv-random.h conv-lists.h conv-trace.h persistent.h debug-conv.h pup.h \
+  middle.h middle-conv.h cklists.h ckbitvector.h ckstream.h init.h charm.h \
+  ckhashtable.h debug-charm.h CkMarshall.decl.h cksection.h ckcallback.h \
+  conv-ccs.h sockRoutines.h ccs-server.h ckobjQ.h ckreduction.h \
+  CkReduction.decl.h cknodegroupreduction.h CkArrayReductionMgr.decl.h \
+  ckmemcheckpoint.h CkMemCheckpoint.decl.h readonly.h ckarray.h \
+  cklocation.h LBDatabase.h lbdb.h LBDBManager.h LBObj.h LBOM.h LBComm.h \
+  LBMachineUtil.h LBDatabase.decl.h NullLB.decl.h BaseLB.decl.h \
+  CkLocation.decl.h CkArray.decl.h ComlibArrayListener.h ComlibStrategy.h \
+  convcomlibstrategy.h ComlibLearner.h envelope.h CkFutures.decl.h \
+  charisma.h charisma.decl.h tempo.h tempo.decl.h waitqd.h waitqd.decl.h \
+  sdag.h ckcheckpoint.h CkCheckpoint.decl.h ckevacuation.h \
+  ckarrayreductionmgr.h trace.h trace-bluegene.h CentralLB.decl.h \
+  CentralLBMsg.h GridCommRefineLB.h CentralLB.h BaseLB.h manager.h \
+  GridCommRefineLB.def.h
+       $(CHARMC) -c -I. GridCommRefineLB.C
+
 Comm1LB.o: Comm1LB.C charm++.h charm.h converse.h conv-config.h \
   conv-autoconfig.h conv-common.h conv-mach.h conv-mach-opt.h pup_c.h \
   conv-cpm.h conv-cpath.h conv-qd.h conv-random.h conv-lists.h \
index 1d505eafc5049db5b29a6d8b2a55dff19f8ae323..2815b4635d368227b9dc7c3df0c0bb406901c84e 100644 (file)
@@ -187,7 +187,8 @@ CKHEADERS=ck.h ckstream.h envelope.h init.h qd.h charm.h charm++.h \
          BaseLB.h CentralLB.h CentralLBMsg.h RandCentLB.h RecBisectBfLB.h \
          RefineLB.h RefineKLB.h RefineCommLB.h OrbLB.h \
          GreedyLB.h GreedyCommLB.h GreedyAgentLB.h Comm1LB.h MetisLB.h \
-      TopoLB.h RefineTopoLB.h  TopoCentLB.h  PhasebyArrayLB.h RotateLB.h GridCommLB.h DummyLB.h BlockLB.h \
+         TopoLB.h RefineTopoLB.h  TopoCentLB.h  PhasebyArrayLB.h RotateLB.h \
+         GridCommLB.h GridCommRefineLB.h DummyLB.h BlockLB.h \
          NborBaseLB.h HybridBaseLB.h HybridLB.h HybridLBMsg.h HbmLB.h \
          NeighborLB.h NeighborCommLB.h NeighborLBMsg.h WSLB.h \
          BlueGene.h middle.h middle-conv.h middle-blue.h \
@@ -199,7 +200,7 @@ CKHEADERS=ck.h ckstream.h envelope.h init.h qd.h charm.h charm++.h \
           RandCentLB.decl.h RecBisectBfLB.decl.h BaseLB.decl.h MetisLB.decl.h \
           DummyLB.decl.h RotateLB.decl.h RefineLB.decl.h RefineKLB.decl.h BlockLB.decl.h \
           RefineCommLB.decl.h OrbLB.decl.h GreedyLB.decl.h GreedyCommLB.decl.h \
-          Comm1LB.decl.h GreedyAgentLB.decl.h GridCommLB.decl.h \
+          Comm1LB.decl.h GreedyAgentLB.decl.h GridCommLB.decl.h GridCommRefineLB.decl.h \
          PhasebyArrayLB.decl.h TopoLB.decl.h RefineTopoLB.decl.h       \
          TopoCentLB.decl.h NborBaseLB.decl.h NeighborLB.decl.h \
           NeighborCommLB.decl.h HbmLB.decl.h \
@@ -310,8 +311,8 @@ THREADLIBS=$(L)/libthreads-default.o $(L)/libthreads-qt.o   \
          $(L)/libthreads-pthreads.o $(L)/libthreads-fibers.o \
          $(L)/libthreads-stackcopy.o $(L)/libthreads-memoryalias.o \
           $(L)/libthreads-qt-memoryalias.o     \
-          $(L)/libthreads-context-memoryalias.o        \
-         $(L)/libthreads-uJcontext-memoryalias.o
+         $(L)/libthreads-context-memoryalias.o \
+         $(L)/libthreads-uJcontext-memoryalias.o
 
 CVLIBS=$(L)/libconv-core.a \
        $(L)/libconv-cplus-y.a $(L)/libconv-cplus-n.a \
index af601802bd9e03922daa68124fb1c7eeaafdeb68..1a1637a633a36447a3353d78bb171a56be674597 100644 (file)
@@ -55,7 +55,8 @@ CVHEADERS=cpthreads.h converse.h conv-trace.h trace.h conv-ccs.h \
       RandCentLB.decl.h RecBisectBfLB.decl.h \\r
       MetisLB.decl.h RefineLB.decl.h \\r
       HeapCentLB.decl.h NborBaseLB.decl.h NeighborLB.decl.h \\r
-      WSLB.decl.h GridCommLB.decl.h GreedyRefLB.decl.h RandRefLB.decl.h \\r
+      WSLB.decl.h GridCommLB.decl.h GridCommRefineLB.decl.h \\r
+      GreedyRefLB.decl.h RandRefLB.decl.h \\r
       tempo.decl.h waitqd.decl.h \\r
          CommLB.decl.h Comm1LB.decl.h  \\r
          ampi.decl.h ampimain.decl.h BlueGene.decl.h blue.h\r
@@ -73,7 +74,8 @@ CKHEADERS=ck.h ckstream.h envelope.h init.h qd.h charm.h charm++.h \
          CentralLB.h RandCentLB.h RecBisectBfLB.h \\r
          RefineLB.h HeapCentLB.h CommLB.h Comm1LB.h \\r
          MetisLB.h NborBaseLB.h \\r
-         NeighborLB.h WSLB.h GridCommLB.h GreedyRefLB.h RandRefLB.h \\r
+         NeighborLB.h WSLB.h GridCommLB.h GridCommRefineLB.h \\r
+         GreedyRefLB.h RandRefLB.h \\r
          ampi.h BlueGene.h \\r
          $(CVHEADERS)\r
 \r
@@ -301,7 +303,8 @@ LIBCK_CORE=init.obj register.obj qd.obj ck.obj main.obj msgalloc.obj ckfutures.o
           RecBisectBfLB.obj graph.obj bitvecset.obj \\r
           MetisLB.obj RefineLB.obj Set.obj CommLB.obj Comm1LB.obj\\r
            HeapCentLB.obj heap.obj NborBaseLB.obj NeighborLB.obj WSLB.obj \\r
-          GridCommLB.obj GreedyRefLB.obj RandRefLB.obj CommLBHeap.obj\r
+          GridCommLB.obj GridCommRefineLB.obj GreedyRefLB.obj RandRefLB.obj \\r
+          CommLBHeap.obj\r
 \r
 \r
 CHARMLIBS : CONVERSE $(CK_LIBS_CORE)\r
@@ -391,6 +394,9 @@ WSLB.decl.h WSLB.def.h : WSLB.ci $(CHARMXI)
 GridCommLB.decl.h GridCommLB.def.h : GridCommLB.ci $(CHARMXI)\r
        $(CHARMXI) -ansi GridCommLB.ci\r
 \r
+GridCommRefineLB.decl.h GridCommRefineLB.def.h : GridCommRefineLB.ci $(CHARMXI)\r
+       $(CHARMXI) -ansi GridCommRefineLB.ci\r
+\r
 GreedyRefLB.decl.h GreedyRefLB.def.h : GreedyRefLB.ci $(CHARMXI)\r
        $(CHARMXI) -ansi GreedyRefLB.ci\r
 \r
@@ -505,6 +511,9 @@ WSLB.obj: WSLB.C $(CKHEADERS)
 GridCommLB.obj: GridCommLB.C $(CKHEADERS)\r
        $(CPP) $(CPP_PROJ) /TP GridCommLB.C\r
 \r
+GridCommRefineLB.obj: GridCommRefineLB.C $(CKHEADERS)\r
+       $(CPP) $(CPP_PROJ) /TP GridCommRefineLB.C\r
+\r
 GreedyRefLB.obj: GreedyRefLB.C $(CKHEADERS)\r
        $(CPP) $(CPP_PROJ) /TP GreedyRefLB.C\r
 \r