Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add comment to ease future deprecation process.
[simgrid.git] / src / surf / ptask_L07.cpp
index cf9f2a1..cc27a24 100644 (file)
@@ -24,8 +24,9 @@ void surf_host_model_init_ptask_L07()
   XBT_CINFO(xbt_cfg, "Switching to the L07 model to handle parallel tasks.");
 
   auto host_model = std::make_shared<simgrid::surf::HostL07Model>("Host_Ptask");
-  simgrid::kernel::EngineImpl::get_instance()->add_model(host_model);
-  simgrid::s4u::Engine::get_instance()->get_netzone_root()->get_impl()->set_host_model(host_model);
+  auto* engine    = simgrid::kernel::EngineImpl::get_instance();
+  engine->add_model(host_model);
+  engine->get_netzone_root()->set_host_model(host_model);
 }
 
 namespace simgrid {
@@ -39,11 +40,11 @@ HostL07Model::HostL07Model(const std::string& name) : HostModel(name)
   auto net_model = std::make_shared<NetworkL07Model>("Network_Ptask", this, maxmin_system);
   auto engine    = simgrid::kernel::EngineImpl::get_instance();
   engine->add_model(net_model);
-  simgrid::s4u::Engine::get_instance()->get_netzone_root()->get_impl()->set_network_model(net_model);
+  engine->get_netzone_root()->set_network_model(net_model);
 
   auto cpu_model = std::make_shared<CpuL07Model>("Cpu_Ptask", this, maxmin_system);
   engine->add_model(cpu_model);
-  simgrid::s4u::Engine::get_instance()->get_netzone_root()->get_impl()->set_cpu_pm_model(cpu_model);
+  engine->get_netzone_root()->set_cpu_pm_model(cpu_model);
 }
 
 CpuL07Model::CpuL07Model(const std::string& name, HostL07Model* hmodel, kernel::lmm::System* sys)
@@ -61,9 +62,8 @@ NetworkL07Model::NetworkL07Model(const std::string& name, HostL07Model* hmodel,
     : NetworkModel(name), hostModel_(hmodel)
 {
   set_maxmin_system(sys);
-  loopback_ =
-      create_link("__loopback__", std::vector<double>{simgrid::config::get_value<double>("network/loopback-bw")});
-  loopback_->set_sharing_policy(s4u::Link::SharingPolicy::FATPIPE);
+  loopback_ = create_link("__loopback__", {simgrid::config::get_value<double>("network/loopback-bw")});
+  loopback_->set_sharing_policy(s4u::Link::SharingPolicy::FATPIPE, {});
   loopback_->set_latency(simgrid::config::get_value<double>("network/loopback-lat"));
   loopback_->seal();
 }
@@ -256,9 +256,10 @@ kernel::resource::LinkImpl* NetworkL07Model::create_wifi_link(const std::string&
  * Resource *
  ************/
 
-kernel::resource::CpuAction* CpuL07::execution_start(double size)
+kernel::resource::CpuAction* CpuL07::execution_start(double size, double user_bound)
 {
   std::vector<s4u::Host*> host_list = {get_iface()};
+  xbt_assert(user_bound <= 0, "User bound not supported by ptask model");
 
   auto* flops_amount = new double[host_list.size()]();
   flops_amount[0]    = size;
@@ -271,7 +272,7 @@ kernel::resource::CpuAction* CpuL07::execution_start(double size)
 
 kernel::resource::CpuAction* CpuL07::sleep(double duration)
 {
-  auto* action = static_cast<L07Action*>(execution_start(1.0));
+  auto* action = static_cast<L07Action*>(execution_start(1.0, -1));
   action->set_max_duration(duration);
   action->set_suspend_state(kernel::resource::Action::SuspendStates::SLEEPING);
   get_model()->get_maxmin_system()->update_variable_penalty(action->get_variable(), 0.0);