Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Rename simgrid::kernel::lmm::s_lmm_system_t -> System.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 7 Dec 2017 21:21:47 +0000 (22:21 +0100)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 7 Dec 2017 22:45:26 +0000 (23:45 +0100)
include/simgrid/forward.h
src/kernel/lmm/maxmin.cpp
src/kernel/lmm/maxmin.hpp
src/surf/StorageImpl.cpp
src/surf/cpu_cas01.cpp
src/surf/network_cm02.cpp
src/surf/ptask_L07.cpp
src/surf/ptask_L07.hpp
teshsuite/surf/lmm_usage/lmm_usage.cpp
teshsuite/surf/maxmin_bench/maxmin_bench.cpp

index 317c70f..c45fc62 100644 (file)
@@ -42,7 +42,7 @@ class Element;
 class Variable;
 class Constraint;
 class ConstraintLight;
-class s_lmm_system_t;
+class System;
 }
 namespace routing {
   class NetPoint;
@@ -92,7 +92,7 @@ typedef const simgrid::kernel::lmm::Element* const_lmm_element_t;
 typedef simgrid::kernel::lmm::Variable* lmm_variable_t;
 typedef simgrid::kernel::lmm::Constraint* lmm_constraint_t;
 typedef simgrid::kernel::lmm::ConstraintLight* lmm_constraint_light_t;
-typedef simgrid::kernel::lmm::s_lmm_system_t* lmm_system_t;
+typedef simgrid::kernel::lmm::System* lmm_system_t;
 
 #else
 
index eaa1f1b..6380a5a 100644 (file)
@@ -63,7 +63,7 @@ void Element::increase_concurrency()
              "Concurrency limit overflow!");
 }
 
-void s_lmm_system_t::check_concurrency() const
+void System::check_concurrency() const
 {
   // These checks are very expensive, so do them only if we want to debug SURF LMM
   if (not XBT_LOG_ISENABLED(surf_maxmin, xbt_log_priority_debug))
@@ -109,7 +109,7 @@ void s_lmm_system_t::check_concurrency() const
   }
 }
 
-void s_lmm_system_t::var_free(lmm_variable_t var)
+void System::var_free(lmm_variable_t var)
 {
   XBT_IN("(sys=%p, var=%p)", this, var);
   modified = true;
@@ -143,7 +143,7 @@ void s_lmm_system_t::var_free(lmm_variable_t var)
   XBT_OUT();
 }
 
-s_lmm_system_t::s_lmm_system_t(bool selective_update) : selective_update_active(selective_update)
+System::System(bool selective_update) : selective_update_active(selective_update)
 {
   modified        = false;
   visited_counter = 1;
@@ -151,12 +151,12 @@ s_lmm_system_t::s_lmm_system_t(bool selective_update) : selective_update_active(
   XBT_DEBUG("Setting selective_update_active flag to %d", selective_update_active);
 
   keep_track          = nullptr;
-  variable_mallocator = xbt_mallocator_new(65536, s_lmm_system_t::variable_mallocator_new_f,
-                                           s_lmm_system_t::variable_mallocator_free_f, nullptr);
+  variable_mallocator =
+      xbt_mallocator_new(65536, System::variable_mallocator_new_f, System::variable_mallocator_free_f, nullptr);
   solve_fun = &lmm_solve;
 }
 
-s_lmm_system_t::~s_lmm_system_t()
+System::~System()
 {
   lmm_variable_t var;
   lmm_constraint_t cnst;
@@ -173,7 +173,7 @@ s_lmm_system_t::~s_lmm_system_t()
   xbt_mallocator_free(variable_mallocator);
 }
 
-void s_lmm_system_t::cnst_free(lmm_constraint_t cnst)
+void System::cnst_free(lmm_constraint_t cnst)
 {
   make_constraint_inactive(cnst);
   delete cnst;
@@ -195,25 +195,25 @@ Constraint::Constraint(void* id_value, double bound_value) : bound(bound_value),
   cnst_light = nullptr;
 }
 
-lmm_constraint_t s_lmm_system_t::constraint_new(void* id, double bound_value)
+lmm_constraint_t System::constraint_new(void* id, double bound_value)
 {
   lmm_constraint_t cnst = new Constraint(id, bound_value);
   insert_constraint(cnst);
   return cnst;
 }
 
-void* s_lmm_system_t::variable_mallocator_new_f()
+void* System::variable_mallocator_new_f()
 {
   return new Variable;
 }
 
-void s_lmm_system_t::variable_mallocator_free_f(void* var)
+void System::variable_mallocator_free_f(void* var)
 {
   delete static_cast<lmm_variable_t>(var);
 }
 
-lmm_variable_t s_lmm_system_t::variable_new(simgrid::surf::Action* id, double sharing_weight, double bound,
-                                            int number_of_constraints)
+lmm_variable_t System::variable_new(simgrid::surf::Action* id, double sharing_weight, double bound,
+                                    int number_of_constraints)
 {
   XBT_IN("(sys=%p, id=%p, weight=%f, bound=%f, num_cons =%d)", this, id, sharing_weight, bound, number_of_constraints);
 
@@ -228,13 +228,13 @@ lmm_variable_t s_lmm_system_t::variable_new(simgrid::surf::Action* id, double sh
   return var;
 }
 
-void s_lmm_system_t::variable_free(lmm_variable_t var)
+void System::variable_free(lmm_variable_t var)
 {
   remove_variable(var);
   var_free(var);
 }
 
-void s_lmm_system_t::expand(lmm_constraint_t cnst, lmm_variable_t var, double consumption_weight)
+void System::expand(lmm_constraint_t cnst, lmm_variable_t var, double consumption_weight)
 {
   modified = true;
 
@@ -287,7 +287,7 @@ void s_lmm_system_t::expand(lmm_constraint_t cnst, lmm_variable_t var, double co
   check_concurrency();
 }
 
-void s_lmm_system_t::expand_add(lmm_constraint_t cnst, lmm_variable_t var, double value)
+void System::expand_add(lmm_constraint_t cnst, lmm_variable_t var, double value)
 {
   modified = true;
 
@@ -441,7 +441,7 @@ static void format_element_list(const ElemList& elem_list, int sharing_policy, d
   }
 }
 
-void s_lmm_system_t::print() const
+void System::print() const
 {
   std::string buf = std::string("MAX-MIN ( ");
 
@@ -487,7 +487,7 @@ void s_lmm_system_t::print() const
   }
 }
 
-void s_lmm_system_t::solve()
+void System::solve()
 {
   if (modified) {
     XBT_IN("(sys=%p)", this);
@@ -502,7 +502,7 @@ void s_lmm_system_t::solve()
   }
 }
 
-template <class CnstList> void s_lmm_system_t::solve(CnstList& cnst_list)
+template <class CnstList> void System::solve(CnstList& cnst_list)
 {
   double min_usage = -1;
   double min_bound = -1;
@@ -698,14 +698,13 @@ void lmm_solve(lmm_system_t sys)
 
 /** \brief Attribute the value bound to var->bound.
  *
- *  \param sys the lmm_system_t
  *  \param var the lmm_variable_t
  *  \param bound the new bound to associate with var
  *
  *  Makes var->bound equal to bound. Whenever this function is called a change is  signed in the system. To
  *  avoid false system changing detection it is a good idea to test (bound != 0) before calling it.
  */
-void s_lmm_system_t::update_variable_bound(lmm_variable_t var, double bound)
+void System::update_variable_bound(lmm_variable_t var, double bound)
 {
   modified   = true;
   var->bound = bound;
@@ -751,11 +750,11 @@ int Variable::get_min_concurrency_slack() const
   return minslack;
 }
 
-// Small remark: In this implementation of lmm_enable_var and lmm_disable_var, we will meet multiple times with var when
-// running sys->update_modified_set.
-// A priori not a big performance issue, but we might do better by calling sys->update_modified_set within the for loops
-// (after doing the first for enabling==1, and before doing the last for disabling==1)
-void s_lmm_system_t::enable_var(lmm_variable_t var)
+// Small remark: In this implementation of System::enable_var() and System::disable_var(), we will meet multiple times
+// with var when running System::update_modified_set().
+// A priori not a big performance issue, but we might do better by calling System::update_modified_set() within the for
+// loops (after doing the first for enabling==1, and before doing the last for disabling==1)
+void System::enable_var(lmm_variable_t var)
 {
   xbt_assert(not XBT_LOG_ISENABLED(surf_maxmin, xbt_log_priority_debug) || var->can_enable());
 
@@ -780,7 +779,7 @@ void s_lmm_system_t::enable_var(lmm_variable_t var)
   // Anyway, caller functions all call check_concurrency() in the end.
 }
 
-void s_lmm_system_t::disable_var(lmm_variable_t var)
+void System::disable_var(lmm_variable_t var)
 {
   xbt_assert(not var->staged_weight, "Staged weight should have been cleared");
   // Disabling the variable, move to var to list tail. Subtlety is: here, we need to call update_modified_set
@@ -810,7 +809,7 @@ void s_lmm_system_t::disable_var(lmm_variable_t var)
  * If yes, check that none of the constraints that this variable is involved in is at the limit of its concurrency
  * And then add it to enabled variables
  */
-void s_lmm_system_t::on_disabled_var(lmm_constraint_t cnstr)
+void System::on_disabled_var(lmm_constraint_t cnstr)
 {
   if (cnstr->get_concurrency_limit() < 0)
     return;
@@ -821,7 +820,7 @@ void s_lmm_system_t::on_disabled_var(lmm_constraint_t cnstr)
 
   lmm_element_t elem = &cnstr->disabled_element_set.front();
 
-  // Cannot use foreach loop, because lmm_enable_var will modify disabled_element_set.. within the loop
+  // Cannot use foreach loop, because System::enable_var() will modify disabled_element_set.. within the loop
   while (numelem-- && elem) {
 
     lmm_element_t nextelem;
@@ -854,7 +853,7 @@ void s_lmm_system_t::on_disabled_var(lmm_constraint_t cnstr)
 /* \brief update the weight of a variable, and enable/disable it.
  * @return Returns whether a change was made
  */
-void s_lmm_system_t::update_variable_weight(lmm_variable_t var, double weight)
+void System::update_variable_weight(lmm_variable_t var, double weight)
 {
   xbt_assert(weight >= 0, "Variable weight should not be negative!");
 
@@ -892,7 +891,7 @@ void s_lmm_system_t::update_variable_weight(lmm_variable_t var, double weight)
   XBT_OUT();
 }
 
-void s_lmm_system_t::update_constraint_bound(lmm_constraint_t cnst, double bound)
+void System::update_constraint_bound(lmm_constraint_t cnst, double bound)
 {
   modified = true;
   update_modified_set(cnst);
@@ -902,13 +901,12 @@ void s_lmm_system_t::update_constraint_bound(lmm_constraint_t cnst, double bound
 /** \brief Update the constraint set propagating recursively to other constraints so the system should not be entirely
  *  computed.
  *
- *  \param sys the lmm_system_t
  *  \param cnst the lmm_constraint_t affected by the change
  *
  *  A recursive algorithm to optimize the system recalculation selecting only constraints that have changed. Each
  *  constraint change is propagated to the list of constraints for each variable.
  */
-void s_lmm_system_t::update_modified_set_rec(lmm_constraint_t cnst)
+void System::update_modified_set_rec(lmm_constraint_t cnst)
 {
   for (Element const& elem : cnst->enabled_element_set) {
     lmm_variable_t var = elem.variable;
@@ -925,7 +923,7 @@ void s_lmm_system_t::update_modified_set_rec(lmm_constraint_t cnst)
   }
 }
 
-void s_lmm_system_t::update_modified_set(lmm_constraint_t cnst)
+void System::update_modified_set(lmm_constraint_t cnst)
 {
   /* nothing to do if selective update isn't active */
   if (selective_update_active && not cnst->modified_constraint_set_hook.is_linked()) {
@@ -934,7 +932,7 @@ void s_lmm_system_t::update_modified_set(lmm_constraint_t cnst)
   }
 }
 
-void s_lmm_system_t::remove_all_modified_set()
+void System::remove_all_modified_set()
 {
   // We cleverly un-flag all variables just by incrementing visited_counter
   // In effect, the var->visited value will no more be equal to visited counter
index be288f2..59fd827 100644 (file)
@@ -416,7 +416,7 @@ public:
   short int concurrency_share; /* The maximum number of elements that variable will add to a constraint */
   simgrid::surf::Action* id;
   int id_int;
-  unsigned visited; /* used by lmm_update_modified_set */
+  unsigned visited; /* used by System::update_modified_set() */
   /* \begin{For Lagrange only} */
   double mu;
   double new_mu;
@@ -442,16 +442,16 @@ inline void Element::make_inactive()
 /**
  * @brief LMM system
  */
-XBT_PUBLIC_CLASS s_lmm_system_t
+XBT_PUBLIC_CLASS System
 {
 public:
   /**
    * @brief Create a new Linear MaxMim system
    * @param selective_update whether we should do lazy updates
    */
-  explicit s_lmm_system_t(bool selective_update);
+  explicit System(bool selective_update);
   /** @brief Free an existing Linear MaxMin system */
-  ~s_lmm_system_t();
+  ~System();
 
   /**
    * @brief Create a new Linear MaxMin constraint
@@ -609,8 +609,8 @@ public:
 
 private:
   bool selective_update_active; /* flag to update partially the system only selecting changed portions */
-  unsigned visited_counter;     /* used by lmm_update_modified_set and lmm_remove_modified_set to cleverly (un-)flag the
-                                 * constraints (more details in these functions) */
+  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) */
   boost::intrusive::list<Constraint, boost::intrusive::member_hook<Constraint, boost::intrusive::list_member_hook<>,
                                                                    &Constraint::constraint_set_hook>>
       constraint_set;
index 7741eb1..d7bfde7 100644 (file)
@@ -41,7 +41,7 @@ StorageImpl* StorageImpl::byName(std::string name)
 
 StorageModel::StorageModel() : Model()
 {
-  maxminSystem_ = new simgrid::kernel::lmm::s_lmm_system_t(true /* lazy update */);
+  maxminSystem_ = new simgrid::kernel::lmm::System(true /* lazy update */);
 }
 
 StorageModel::~StorageModel()
index 25635b0..163d045 100644 (file)
@@ -53,7 +53,7 @@ CpuCas01Model::CpuCas01Model() : simgrid::surf::CpuModel()
     xbt_die("Unsupported optimization (%s) for this model", optim.c_str());
   }
 
-  maxminSystem_ = new simgrid::kernel::lmm::s_lmm_system_t(selectiveUpdate_);
+  maxminSystem_ = new simgrid::kernel::lmm::System(selectiveUpdate_);
 
   if (getUpdateMechanism() == UM_LAZY) {
     modifiedSet_ = new ActionLmmList();
@@ -177,7 +177,7 @@ CpuAction *CpuCas01::sleep(double duration)
   XBT_IN("(%s,%g)", getCname(), duration);
   CpuCas01Action* action = new CpuCas01Action(model(), 1.0, isOff(), speed_.scale * speed_.peak, constraint());
 
-  // FIXME: sleep variables should not consume 1.0 in lmm_expand
+  // FIXME: sleep variables should not consume 1.0 in System::expand()
   action->setMaxDuration(duration);
   action->suspended_ = 2;
   if (duration < 0) { // NO_MAX_DURATION
index 43bc60e..149b176 100644 (file)
@@ -152,7 +152,7 @@ NetworkCm02Model::NetworkCm02Model()
     xbt_die("Unsupported optimization (%s) for this model. Accepted: Full, Lazy.", optim.c_str());
   }
 
-  maxminSystem_ = new simgrid::kernel::lmm::s_lmm_system_t(selectiveUpdate_);
+  maxminSystem_ = new simgrid::kernel::lmm::System(selectiveUpdate_);
   loopback_     = NetworkCm02Model::createLink("__loopback__", 498000000, 0.000015, SURF_LINK_FATPIPE);
 
   if (getUpdateMechanism() == UM_LAZY) {
@@ -160,8 +160,8 @@ NetworkCm02Model::NetworkCm02Model()
     maxminSystem_->keep_track = modifiedSet_;
   }
 }
-NetworkCm02Model::NetworkCm02Model(void (*specificSolveFun)(lmm_system_t self))
-  : NetworkCm02Model()
+
+NetworkCm02Model::NetworkCm02Model(void (*specificSolveFun)(lmm_system_t self)) : NetworkCm02Model()
 {
   maxminSystem_->solve_fun = specificSolveFun;
 }
index 1ce1bec..a1ee65d 100644 (file)
@@ -35,7 +35,7 @@ namespace simgrid {
 namespace surf {
 
 HostL07Model::HostL07Model() : HostModel() {
-  maxminSystem_            = new simgrid::kernel::lmm::s_lmm_system_t(true /* lazy */);
+  maxminSystem_            = new simgrid::kernel::lmm::System(true /* lazy */);
   maxminSystem_->solve_fun = &simgrid::kernel::lmm::bottleneck_solve;
   surf_network_model = new NetworkL07Model(this,maxminSystem_);
   surf_cpu_model_pm = new CpuL07Model(this,maxminSystem_);
@@ -49,9 +49,7 @@ HostL07Model::~HostL07Model()
   delete surf_cpu_model_pm;
 }
 
-CpuL07Model::CpuL07Model(HostL07Model *hmodel,lmm_system_t sys)
-  : CpuModel()
-  , hostModel_(hmodel)
+CpuL07Model::CpuL07Model(HostL07Model* hmodel, lmm_system_t sys) : CpuModel(), hostModel_(hmodel)
 {
   maxminSystem_ = sys;
 }
@@ -61,9 +59,7 @@ CpuL07Model::~CpuL07Model()
   maxminSystem_ = nullptr;
 }
 
-NetworkL07Model::NetworkL07Model(HostL07Model *hmodel, lmm_system_t sys)
-  : NetworkModel()
-  , hostModel_(hmodel)
+NetworkL07Model::NetworkL07Model(HostL07Model* hmodel, lmm_system_t sys) : NetworkModel(), hostModel_(hmodel)
 {
   maxminSystem_ = sys;
   loopback_     = NetworkL07Model::createLink("__loopback__", 498000000, 0.000015, SURF_LINK_FATPIPE);
index 3b944a3..70d128b 100644 (file)
@@ -47,7 +47,7 @@ public:
 
 class CpuL07Model : public CpuModel {
 public:
-  CpuL07Model(HostL07Model *hmodel,lmm_system_t sys);
+  CpuL07Model(HostL07Model* hmodel, lmm_system_t sys);
   ~CpuL07Model();
 
   Cpu *createCpu(simgrid::s4u::Host *host, std::vector<double> *speedPerPstate, int core) override;
@@ -56,7 +56,7 @@ public:
 
 class NetworkL07Model : public NetworkModel {
 public:
-  NetworkL07Model(HostL07Model *hmodel, lmm_system_t sys);
+  NetworkL07Model(HostL07Modelhmodel, lmm_system_t sys);
   ~NetworkL07Model();
   LinkImpl* createLink(const std::string& name, double bandwidth, double latency,
                        e_surf_link_sharing_policy_t policy) override;
index 68ce738..7fdd77e 100644 (file)
@@ -98,7 +98,7 @@ static void test1(method_t method)
     simgrid::kernel::lmm::lmm_set_default_protocol_function(
         simgrid::kernel::lmm::func_reno_f, simgrid::kernel::lmm::func_reno_fpi, simgrid::kernel::lmm::func_reno_fpi);
 
-  lmm_system_t Sys    = new simgrid::kernel::lmm::s_lmm_system_t(true);
+  lmm_system_t Sys    = new simgrid::kernel::lmm::System(true);
   lmm_constraint_t L1 = Sys->constraint_new(nullptr, a);
   lmm_constraint_t L2 = Sys->constraint_new(nullptr, b);
   lmm_constraint_t L3 = Sys->constraint_new(nullptr, a);
@@ -186,7 +186,7 @@ static void test2(method_t method)
     lmm_set_default_protocol_function(simgrid::kernel::lmm::func_reno_f, simgrid::kernel::lmm::func_reno_fp,
                                       simgrid::kernel::lmm::func_reno_fpi);
 
-  lmm_system_t Sys      = new simgrid::kernel::lmm::s_lmm_system_t(true);
+  lmm_system_t Sys      = new simgrid::kernel::lmm::System(true);
   lmm_constraint_t CPU1 = Sys->constraint_new(nullptr, 200.0);
   lmm_constraint_t CPU2 = Sys->constraint_new(nullptr, 100.0);
 
@@ -259,7 +259,7 @@ static void test3(method_t method)
     lmm_set_default_protocol_function(simgrid::kernel::lmm::func_reno_f, simgrid::kernel::lmm::func_reno_fp,
                                       simgrid::kernel::lmm::func_reno_fpi);
 
-  lmm_system_t Sys = new simgrid::kernel::lmm::s_lmm_system_t(true);
+  lmm_system_t Sys = new simgrid::kernel::lmm::System(true);
 
   /* Creates the constraints */
   lmm_constraint_t* tmp_cnst = new lmm_constraint_t[15];
index f9d3eb3..d7fed24 100644 (file)
@@ -45,7 +45,7 @@ static void test(int nb_cnst, int nb_var, int nb_elem, unsigned int pw_base_limi
   lmm_variable_t var[nb_var];
   int used[nb_cnst];
 
-  lmm_system_t Sys = new simgrid::kernel::lmm::s_lmm_system_t(true);
+  lmm_system_t Sys = new simgrid::kernel::lmm::System(true);
 
   for (int i = 0; i < nb_cnst; i++) {
     cnst[i] = Sys->constraint_new(NULL, float_random(10.0));