Changes that take object CPU load into better consideration when balancing.
[charm.git] / src / ck-ldb / GridCommLB.h
index d6464833cd5f625b1cf96fa87c82dd110ca853d2..d1ea556e21ba199d1e7bb40b46eab76e758fe1cf 100644 (file)
@@ -2,6 +2,7 @@
 #define _GRIDCOMMLB_H_
 
 #include <limits.h>
+#include <math.h>
 #include <stdio.h>
 
 #include "charm++.h"
 
 #include "CentralLB.h"
 
+#define CK_LDB_GRIDCOMMLB_MODE 0
+#define CK_LDB_GRIDCOMMLB_BACKGROUND_LOAD 1
+#define CK_LDB_GRIDCOMMLB_LOAD_TOLERANCE 0.05
+
 #ifndef MAXINT
 #define MAXINT 2147483647
 #endif
 
+#ifndef MAXDOUBLE
+#define MAXDOUBLE 1e10
+#endif
+
 #if CONVERSE_VERSION_VMI
 extern "C" int CmiGetCluster (int process);
 #endif
@@ -64,10 +73,14 @@ class GridCommLB : public CentralLB
     void Examine_InterObject_Messages (CentralLB::LDStats *stats);
     void Map_NonMigratable_Objects_To_PEs ();
     void Map_Migratable_Objects_To_PEs (int cluster);
-    int Find_Maximum_WAN_Object (int cluster);
-    int Find_Minimum_WAN_PE (int cluster);
+    int Find_Maximum_Object (int cluster);
+    int Find_Minimum_PE (int cluster);
     void Assign_Object_To_PE (int target_object, int target_pe);
 
+    int CK_LDB_GridCommLB_Mode;
+    int CK_LDB_GridCommLB_Background_Load;
+    double CK_LDB_GridCommLB_Load_Tolerance;
+
     int Num_PEs;
     int Num_Objects;
     int Num_Clusters;