Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Please sonar
authorBruno Donassolo <bruno.donassolo@inria.fr>
Tue, 25 May 2021 08:35:34 +0000 (10:35 +0200)
committerBruno Donassolo <bruno.donassolo@inria.fr>
Tue, 25 May 2021 08:35:34 +0000 (10:35 +0200)
examples/cpp/network-factors/s4u-network-factors.cpp
src/kernel/resource/NetworkModelIntf_test.cpp
src/surf/network_cm02.cpp
src/surf/network_cm02.hpp
src/surf/network_interface.cpp
src/surf/network_interface.hpp

index a5a5c9a..e4235a0 100644 (file)
@@ -52,7 +52,7 @@ constexpr static double LATENCY   = .1e-6;
 
 /*************************************************************************************************/
 /** @brief Create a simple platform based on Dahu cluster */
-static void load_platform(const sg4::Engine& e)
+static void load_platform()
 {
   /**
    * Inspired on dahu cluster on Grenoble
@@ -67,12 +67,13 @@ static void load_platform(const sg4::Engine& e)
    */
 
   auto* root         = sg4::create_star_zone("dahu");
-  std::string prefix = "dahu-", suffix = ".grid5000.fr";
+  std::string prefix = "dahu-";
+  std::string suffix = ".grid5000.fr";
 
   for (int id = 0; id < 32; id++) {
     std::string hostname = prefix + std::to_string(id) + suffix;
     /* create host */
-    sg4::Host* host = root->create_host(hostname, 1)->set_core_count(32)->seal();
+    const sg4::Host* host = root->create_host(hostname, 1)->set_core_count(32)->seal();
     /* create UP/DOWN link */
     sg4::Link* l_up   = root->create_link(hostname + "_up", BW_REMOTE)->set_latency(LATENCY)->seal();
     sg4::Link* l_down = root->create_link(hostname + "_down", BW_REMOTE)->set_latency(LATENCY)->seal();
@@ -179,7 +180,7 @@ public:
         /* Create a communication representing the ongoing communication */
         auto mbox     = sg4::Mailbox::by_name(host->get_name());
         auto* payload = new std::string(msg);
-        mbox->put(payload, size);
+        mbox->put(payload, static_cast<uint64_t>(size));
       }
     }
 
@@ -212,10 +213,10 @@ int main(int argc, char* argv[])
 {
   sg4::Engine e(&argc, argv);
   /* setting network model to default one */
-  e.set_config("network/model:CM02");
+  sg4::Engine::set_config("network/model:CM02");
 
   /* create platform */
-  load_platform(e);
+  load_platform();
   /* setting network factors callbacks */
   simgrid::kernel::resource::NetworkModelIntf* model = e.get_netzone_root()->get_network_model();
   model->set_lat_factor_cb(latency_factor_cb);
index b4eb9f3..e7c8460 100644 (file)
@@ -20,16 +20,16 @@ TEST_CASE("kernel::resource::NetworkModelIntf: Factors invalid callbacks: except
   for (const auto& model : std::vector<std::string>{"LV08", "SMPI", "IB", "CM02"}) {
     _sg_cfg_init_status = 0; /* HACK: clear config global to be able to do set_config in UTs */
     simgrid::s4u::Engine e("test");
-    e.set_config("network/model:" + model);
+    simgrid::s4u::Engine::set_config("network/model:" + model);
     simgrid::s4u::create_full_zone("root");
 
     SECTION("Model: " + model)
     {
-      simgrid::kernel::resource::NetworkModelIntf* model = e.get_netzone_root()->get_network_model();
-      REQUIRE_THROWS_AS(model->set_lat_factor_cb({}), std::invalid_argument);
-      REQUIRE_THROWS_AS(model->set_lat_factor_cb(nullptr), std::invalid_argument);
-      REQUIRE_THROWS_AS(model->set_bw_factor_cb({}), std::invalid_argument);
-      REQUIRE_THROWS_AS(model->set_bw_factor_cb(nullptr), std::invalid_argument);
+      simgrid::kernel::resource::NetworkModelIntf* m = e.get_netzone_root()->get_network_model();
+      REQUIRE_THROWS_AS(m->set_lat_factor_cb({}), std::invalid_argument);
+      REQUIRE_THROWS_AS(m->set_lat_factor_cb(nullptr), std::invalid_argument);
+      REQUIRE_THROWS_AS(m->set_bw_factor_cb({}), std::invalid_argument);
+      REQUIRE_THROWS_AS(m->set_bw_factor_cb(nullptr), std::invalid_argument);
     }
   }
 }
@@ -39,16 +39,16 @@ TEST_CASE("kernel::resource::NetworkModelIntf: Invalid network/latency-factor an
   for (const auto& model : std::vector<std::string>{"LV08", "CM02"}) {
     _sg_cfg_init_status = 0; /* HACK: clear config global to be able to do set_config in UTs */
     simgrid::s4u::Engine e("test");
-    e.set_config("network/model:" + model);
-    e.set_config("network/latency-factor:10");
-    e.set_config("network/bandwidth-factor:0.3");
+    simgrid::s4u::Engine::set_config("network/model:" + model);
+    simgrid::s4u::Engine::set_config("network/latency-factor:10");
+    simgrid::s4u::Engine::set_config("network/bandwidth-factor:0.3");
     simgrid::s4u::create_full_zone("root");
 
     SECTION("Model: " + model)
     {
-      simgrid::kernel::resource::NetworkModelIntf* model = e.get_netzone_root()->get_network_model();
-      REQUIRE_THROWS_AS(model->set_lat_factor_cb(factor_cb), std::invalid_argument);
-      REQUIRE_THROWS_AS(model->set_bw_factor_cb(factor_cb), std::invalid_argument);
+      simgrid::kernel::resource::NetworkModelIntf* m = e.get_netzone_root()->get_network_model();
+      REQUIRE_THROWS_AS(m->set_lat_factor_cb(factor_cb), std::invalid_argument);
+      REQUIRE_THROWS_AS(m->set_bw_factor_cb(factor_cb), std::invalid_argument);
     }
   }
 }
@@ -58,16 +58,17 @@ TEST_CASE("kernel::resource::NetworkModelIntf: Invalid smpi/lat-factor and smpi/
   for (const auto& model : std::vector<std::string>{"SMPI", "IB"}) {
     _sg_cfg_init_status = 0; /* HACK: clear config global to be able to do set_config in UTs */
     simgrid::s4u::Engine e("test");
-    e.set_config("network/model:" + model);
-    e.set_config("smpi/lat-factor:65472:0.940694;15424:0.697866;9376:0.58729;5776:1.08739;3484:0.77493");
-    e.set_config("smpi/bw-factor:65472:11.6436;15424:3.48845");
+    simgrid::s4u::Engine::set_config("network/model:" + model);
+    simgrid::s4u::Engine::set_config(
+        "smpi/lat-factor:65472:0.940694;15424:0.697866;9376:0.58729;5776:1.08739;3484:0.77493");
+    simgrid::s4u::Engine::set_config("smpi/bw-factor:65472:11.6436;15424:3.48845");
     simgrid::s4u::create_full_zone("root");
 
     SECTION("Model: " + model)
     {
-      simgrid::kernel::resource::NetworkModelIntf* model = e.get_netzone_root()->get_network_model();
-      REQUIRE_THROWS_AS(model->set_lat_factor_cb(factor_cb), std::invalid_argument);
-      REQUIRE_THROWS_AS(model->set_bw_factor_cb(factor_cb), std::invalid_argument);
+      simgrid::kernel::resource::NetworkModelIntf* m = e.get_netzone_root()->get_network_model();
+      REQUIRE_THROWS_AS(m->set_lat_factor_cb(factor_cb), std::invalid_argument);
+      REQUIRE_THROWS_AS(m->set_bw_factor_cb(factor_cb), std::invalid_argument);
     }
   }
 }
index e293749..dc4afd6 100644 (file)
@@ -200,12 +200,13 @@ void NetworkCm02Model::update_actions_state_full(double /*now*/, double delta)
 }
 
 void NetworkCm02Model::comm_action_expand_constraints(const s4u::Host* src, const s4u::Host* dst,
-                                                      NetworkCm02Action* action, const std::vector<LinkImpl*>& route,
-                                                      const std::vector<LinkImpl*>& back_route)
+                                                      const NetworkCm02Action* action,
+                                                      const std::vector<LinkImpl*>& route,
+                                                      const std::vector<LinkImpl*>& back_route) const
 {
   /* expand route links constraints for route and back_route */
-  NetworkWifiLink* src_wifi_link = nullptr;
-  NetworkWifiLink* dst_wifi_link = nullptr;
+  const NetworkWifiLink* src_wifi_link = nullptr;
+  const NetworkWifiLink* dst_wifi_link = nullptr;
   if (not route.empty() && route.front()->get_sharing_policy() == s4u::Link::SharingPolicy::WIFI) {
     src_wifi_link = static_cast<NetworkWifiLink*>(route.front());
   }
index 0cf669d..390e3b5 100644 (file)
@@ -38,8 +38,9 @@ class NetworkCm02Model : public NetworkModel {
   NetworkCm02Action* comm_action_create(s4u::Host* src, s4u::Host* dst, double size,
                                         const std::vector<LinkImpl*>& route, bool failed);
   /** @brief Expand link contraint considering this new communication action */
-  void comm_action_expand_constraints(const s4u::Host* src, const s4u::Host* dst, NetworkCm02Action* action,
-                                      const std::vector<LinkImpl*>& route, const std::vector<LinkImpl*>& back_route);
+  void comm_action_expand_constraints(const s4u::Host* src, const s4u::Host* dst, const NetworkCm02Action* action,
+                                      const std::vector<LinkImpl*>& route,
+                                      const std::vector<LinkImpl*>& back_route) const;
   /** @brief Set communication bounds for latency and bandwidth */
   void comm_action_set_bounds(const s4u::Host* src, const s4u::Host* dst, double size, NetworkCm02Action* action,
                               const std::vector<LinkImpl*>& route,
@@ -61,6 +62,8 @@ public:
 protected:
   virtual void check_lat_factor_cb();
   virtual void check_bw_factor_cb();
+
+private:
   std::function<NetworkFactorCb> lat_factor_cb_;
   std::function<NetworkFactorCb> bw_factor_cb_;
 };
index d4e4eb0..69e392a 100644 (file)
@@ -52,7 +52,7 @@ double NetworkModel::next_occurring_event_full(double now)
   return minRes;
 }
 
-double NetworkModel::get_bandwidth_constraint(double rate, double bound, double size)
+double NetworkModel::get_bandwidth_constraint(double rate, double bound, double /* size */) const
 {
   return rate < 0 ? bound : std::min(bound, rate);
 }
index 88f9351..8c643c7 100644 (file)
@@ -94,12 +94,12 @@ public:
    * @param size The size of the message.
    * @return The new bandwidth.
    */
-  double get_bandwidth_constraint(double rate, double bound, double size);
+  double get_bandwidth_constraint(double rate, double bound, double size) const;
 
   double next_occurring_event_full(double now) override;
 
-  virtual void set_lat_factor_cb(const std::function<NetworkFactorCb>& cb) override { THROW_UNIMPLEMENTED; }
-  virtual void set_bw_factor_cb(const std::function<NetworkFactorCb>& cb) override { THROW_UNIMPLEMENTED; }
+  void set_lat_factor_cb(const std::function<NetworkFactorCb>& cb) override { THROW_UNIMPLEMENTED; }
+  void set_bw_factor_cb(const std::function<NetworkFactorCb>& cb) override { THROW_UNIMPLEMENTED; }
 
   LinkImpl* loopback_ = nullptr;
 };