Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
lmm::System: rename some fields, and initialize them at declaration, not in ctor
authorMartin Quinson <martin.quinson@loria.fr>
Sat, 31 Mar 2018 07:32:36 +0000 (09:32 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Sat, 31 Mar 2018 13:35:22 +0000 (15:35 +0200)
src/kernel/lmm/fair_bottleneck.cpp
src/kernel/lmm/lagrange.cpp
src/kernel/lmm/maxmin.cpp
src/kernel/lmm/maxmin.hpp
src/surf/cpu_cas01.cpp

index 94cb183..bb1bd48 100644 (file)
@@ -21,7 +21,7 @@ simgrid::kernel::lmm::System* simgrid::kernel::lmm::make_new_fair_bottleneck_sys
 
 void simgrid::kernel::lmm::FairBottleneck::bottleneck_solve()
 {
-  if (not modified)
+  if (not modified_)
     return;
 
   XBT_DEBUG("Variable set : %zu", variable_set.size());
@@ -144,7 +144,7 @@ void simgrid::kernel::lmm::FairBottleneck::bottleneck_solve()
   } while (not var_list.empty());
 
   cnst_list.clear();
-  modified = true;
+  modified_ = true;
   if (XBT_LOG_ISENABLED(surf_maxmin, xbt_log_priority_debug)) {
     XBT_DEBUG("Fair bottleneck done");
     print();
index f8afafd..8d6cb06 100644 (file)
@@ -142,7 +142,7 @@ void Lagrange::lagrange_solve()
     print();
   }
 
-  if (not modified)
+  if (not modified_)
     return;
 
   /* Initialize lambda. */
index 0b27a67..bdef76e 100644 (file)
@@ -117,7 +117,7 @@ void System::check_concurrency() const
 void System::var_free(Variable* var)
 {
   XBT_IN("(sys=%p, var=%p)", this, var);
-  modified = true;
+  modified_ = true;
 
   // TODOLATER Can do better than that by leaving only the variable in only one enabled_element_set, call
   // update_modified_set, and then remove it..
@@ -144,19 +144,13 @@ void System::var_free(Variable* var)
 
   check_concurrency();
 
-  xbt_mallocator_release(variable_mallocator, var);
+  xbt_mallocator_release(variable_mallocator_, var);
   XBT_OUT();
 }
 
 System::System(bool selective_update) : selective_update_active(selective_update)
 {
-  modified        = false;
-  visited_counter = 1;
-
   XBT_DEBUG("Setting selective_update_active flag to %d", selective_update_active);
-
-  variable_mallocator =
-      xbt_mallocator_new(65536, System::variable_mallocator_new_f, System::variable_mallocator_free_f, nullptr);
 }
 
 System::~System()
@@ -173,7 +167,7 @@ System::~System()
   while ((cnst = extract_constraint()))
     cnst_free(cnst);
 
-  xbt_mallocator_free(variable_mallocator);
+  xbt_mallocator_free(variable_mallocator_);
   delete modified_set_;
 }
 
@@ -221,8 +215,8 @@ Variable* System::variable_new(simgrid::kernel::resource::Action* id, double sha
 {
   XBT_IN("(sys=%p, id=%p, weight=%f, bound=%f, num_cons =%d)", this, id, sharing_weight, bound, number_of_constraints);
 
-  Variable* var = static_cast<Variable*>(xbt_mallocator_get(variable_mallocator));
-  var->initialize(id, sharing_weight, bound, number_of_constraints, visited_counter - 1);
+  Variable* var = static_cast<Variable*>(xbt_mallocator_get(variable_mallocator_));
+  var->initialize(id, sharing_weight, bound, number_of_constraints, visited_counter_ - 1);
   if (sharing_weight)
     variable_set.push_front(*var);
   else
@@ -240,7 +234,7 @@ void System::variable_free(Variable* var)
 
 void System::expand(Constraint* cnst, Variable* var, double consumption_weight)
 {
-  modified = true;
+  modified_ = true;
 
   // Check if this variable already has an active element in this constraint
   // If it does, substract it from the required slack
@@ -293,7 +287,7 @@ void System::expand(Constraint* cnst, Variable* var, double consumption_weight)
 
 void System::expand_add(Constraint* cnst, Variable* var, double value)
 {
-  modified = true;
+  modified_ = true;
 
   check_concurrency();
 
@@ -492,7 +486,7 @@ void System::print() const
 
 void System::lmm_solve()
 {
-  if (modified) {
+  if (modified_) {
     XBT_IN("(sys=%p)", this);
     /* Compute Usage and store the variables that reach the maximum. If selective_update_active is true, only
      * constraints that changed are considered. Otherwise all constraints with active actions are considered.
@@ -681,7 +675,7 @@ template <class CnstList> void System::lmm_solve(CnstList& cnst_list)
 
   } while (cnst_light_num > 0);
 
-  modified = false;
+  modified_ = false;
   if (selective_update_active)
     remove_all_modified_set();
 
@@ -704,7 +698,7 @@ template <class CnstList> void System::lmm_solve(CnstList& cnst_list)
  */
 void System::update_variable_bound(Variable* var, double bound)
 {
-  modified   = true;
+  modified_  = true;
   var->bound = bound;
 
   if (not var->cnsts.empty())
@@ -860,7 +854,7 @@ void System::update_variable_weight(Variable* var, double weight)
 
   XBT_IN("(sys=%p, var=%p, weight=%f)", this, var, weight);
 
-  modified = true;
+  modified_ = true;
 
   // Are we enabling this variable?
   if (enabling_var) {
@@ -888,7 +882,7 @@ void System::update_variable_weight(Variable* var, double weight)
 
 void System::update_constraint_bound(Constraint* cnst, double bound)
 {
-  modified = true;
+  modified_ = true;
   update_modified_set(cnst);
   cnst->bound = bound;
 }
@@ -906,7 +900,7 @@ void System::update_modified_set_rec(Constraint* cnst)
   for (Element const& elem : cnst->enabled_element_set) {
     Variable* var = elem.variable;
     for (Element const& elem2 : var->cnsts) {
-      if (var->visited == visited_counter)
+      if (var->visited == visited_counter_)
         break;
       if (elem2.constraint != cnst && not elem2.constraint->modified_constraint_set_hook.is_linked()) {
         modified_constraint_set.push_back(*elem2.constraint);
@@ -914,7 +908,7 @@ void System::update_modified_set_rec(Constraint* cnst)
       }
     }
     // var will be ignored in later visits as long as sys->visited_counter does not move
-    var->visited = visited_counter;
+    var->visited = visited_counter_;
   }
 }
 
@@ -934,7 +928,7 @@ void System::remove_all_modified_set()
   // To be clean, when visited counter has wrapped around, we force these var->visited values so that variables that
   // were in the modified a long long time ago are not wrongly skipped here, which would lead to very nasty bugs
   // (i.e. not readibily reproducible, and requiring a lot of run time before happening).
-  if (++visited_counter == 1) {
+  if (++visited_counter_ == 1) {
     /* the counter wrapped around, reset each variable->visited */
     for (Variable& var : variable_set)
       var.visited = 0;
index 8c006f5..c67f8c4 100644 (file)
@@ -575,7 +575,7 @@ private:
   template <class CnstList> void lmm_solve(CnstList& cnst_list);
 
 public:
-  bool modified;
+  bool modified_ = false;
   boost::intrusive::list<Variable, boost::intrusive::member_hook<Variable, boost::intrusive::list_member_hook<>,
                                                                  &Variable::variable_set_hook>>
       variable_set;
@@ -593,15 +593,17 @@ public:
 
 private:
   bool selective_update_active; /* flag to update partially the system only selecting changed portions */
-  unsigned visited_counter;     /* used by System::update_modified_set() and System::remove_all_modified_set() to
-                                 * cleverly (un-)flag the constraints (more details in these functions) */
+  unsigned visited_counter_ = 1; /* used by System::update_modified_set() and System::remove_all_modified_set() to
+                                  * cleverly (un-)flag the constraints (more details in these functions) */
   boost::intrusive::list<Constraint, boost::intrusive::member_hook<Constraint, boost::intrusive::list_member_hook<>,
                                                                    &Constraint::constraint_set_hook>>
       constraint_set;
   boost::intrusive::list<Constraint, boost::intrusive::member_hook<Constraint, boost::intrusive::list_member_hook<>,
                                                                    &Constraint::modified_constraint_set_hook>>
       modified_constraint_set;
-  xbt_mallocator_t variable_mallocator;
+  xbt_mallocator_t variable_mallocator_ =
+      xbt_mallocator_new(65536, System::variable_mallocator_new_f, System::variable_mallocator_free_f, nullptr);
+  ;
 };
 
 class XBT_PUBLIC FairBottleneck : public System {
index d9f5f14..9d3213d 100644 (file)
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_cpu_cas, surf_cpu, "Logging specific to the SURF CPU module");
 
+/***********
+ * Options *
+ ***********/
+
 static simgrid::config::Flag<std::string>
     cpu_optim_opt("cpu/optim", "Optimization algorithm to use for CPU resources. ", "Lazy",