X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0617119206ff65bfdad4e484f653638abbc3c747..d883ac7f9b2786862be1fcb700193f66ceecc030:/src/surf/ptask_L07.cpp diff --git a/src/surf/ptask_L07.cpp b/src/surf/ptask_L07.cpp index 0e41e5625a..2a2b54afa6 100644 --- a/src/surf/ptask_L07.cpp +++ b/src/surf/ptask_L07.cpp @@ -3,15 +3,11 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ -#include - -#include -#include - #include "ptask_L07.hpp" +#include "surf/surf.hpp" +#include "xbt/config.hpp" -#include "cpu_interface.hpp" -#include "xbt/utility.hpp" +#include XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_host); XBT_LOG_EXTERNAL_CATEGORY(xbt_cfg); @@ -61,7 +57,7 @@ NetworkL07Model::NetworkL07Model(HostL07Model* hmodel, kernel::lmm::System* sys) : NetworkModel(Model::UpdateAlgo::Full), hostModel_(hmodel) { set_maxmin_system(sys); - loopback_ = NetworkL07Model::createLink("__loopback__", 498000000, 0.000015, SURF_LINK_FATPIPE); + loopback_ = NetworkL07Model::createLink("__loopback__", 498000000, 0.000015, s4u::Link::SharingPolicy::FATPIPE); } NetworkL07Model::~NetworkL07Model() @@ -98,6 +94,7 @@ void HostL07Model::update_actions_state(double /*now*/, double delta) if ((action.latency_ <= 0.0) && (action.is_suspended() == 0)) { action.updateBound(); get_maxmin_system()->update_variable_weight(action.get_variable(), 1.0); + action.set_last_update(); } } XBT_DEBUG("Action (%p) : remains (%g) updated by %g.", &action, action.get_remains(), @@ -167,7 +164,7 @@ L07Action::L07Action(kernel::resource::Model* model, int host_nb, sg_host_t* hos if (bytes_amount[i * host_nb + j] > 0) { double lat=0.0; - std::vector route; + std::vector route; hostList_->at(i)->routeTo(hostList_->at(j), route, &lat); latency = std::max(latency, lat); @@ -195,7 +192,7 @@ L07Action::L07Action(kernel::resource::Model* model, int host_nb, sg_host_t* hos for (int i = 0; i < host_nb; i++) { for (int j = 0; j < host_nb; j++) { if (bytes_amount[i * host_nb + j] > 0.0) { - std::vector route; + std::vector route; hostList_->at(i)->routeTo(hostList_->at(j), route, nullptr); for (auto const& link : route) @@ -231,8 +228,8 @@ Cpu *CpuL07Model::createCpu(simgrid::s4u::Host *host, std::vector *spee return new CpuL07(this, host, speedPerPstate, core); } -LinkImpl* NetworkL07Model::createLink(const std::string& name, double bandwidth, double latency, - e_surf_link_sharing_policy_t policy) +kernel::resource::LinkImpl* NetworkL07Model::createLink(const std::string& name, double bandwidth, double latency, + s4u::Link::SharingPolicy policy) { return new LinkL07(this, name, bandwidth, latency, policy); } @@ -249,16 +246,16 @@ CpuL07::CpuL07(CpuL07Model* model, simgrid::s4u::Host* host, std::vector CpuL07::~CpuL07()=default; LinkL07::LinkL07(NetworkL07Model* model, const std::string& name, double bandwidth, double latency, - e_surf_link_sharing_policy_t policy) + s4u::Link::SharingPolicy policy) : LinkImpl(model, name, model->get_maxmin_system()->constraint_new(this, bandwidth)) { bandwidth_.peak = bandwidth; latency_.peak = latency; - if (policy == SURF_LINK_FATPIPE) + if (policy == s4u::Link::SharingPolicy::FATPIPE) get_constraint()->unshare(); - s4u::Link::onCreation(this->piface_); + s4u::Link::on_creation(this->piface_); } kernel::resource::Action* CpuL07::execution_start(double size) @@ -290,7 +287,7 @@ bool CpuL07::is_used() /** @brief take into account changes of speed (either load or max) */ void CpuL07::onSpeedChange() { kernel::lmm::Variable* var = nullptr; - const_lmm_element_t elem = nullptr; + const kernel::lmm::Element* elem = nullptr; get_model()->get_maxmin_system()->update_constraint_bound(get_constraint(), speed_.peak * speed_.scale); while ((var = get_constraint()->get_variable(&elem))) { @@ -353,6 +350,8 @@ void LinkL07::apply_event(tmgr_trace_event_t triggered, double value) void LinkL07::setBandwidth(double value) { bandwidth_.peak = value; + LinkImpl::on_bandwidth_change(); + get_model()->get_maxmin_system()->update_constraint_bound(get_constraint(), bandwidth_.peak * bandwidth_.scale); } @@ -360,7 +359,7 @@ void LinkL07::setLatency(double value) { kernel::lmm::Variable* var = nullptr; L07Action *action; - const_lmm_element_t elem = nullptr; + const kernel::lmm::Element* elem = nullptr; latency_.peak = value; while ((var = get_constraint()->get_variable(&elem))) { @@ -392,7 +391,7 @@ void L07Action::updateBound() if (communicationAmount_[i * hostNb + j] > 0) { double lat = 0.0; - std::vector route; + std::vector route; hostList_->at(i)->routeTo(hostList_->at(j), route, &lat); lat_current = std::max(lat_current, lat * communicationAmount_[i * hostNb + j]); @@ -400,7 +399,7 @@ void L07Action::updateBound() } } } - double lat_bound = sg_tcp_gamma / (2.0 * lat_current); + double lat_bound = kernel::resource::NetworkModel::cfg_tcp_gamma / (2.0 * lat_current); XBT_DEBUG("action (%p) : lat_bound = %g", this, lat_bound); if ((latency_ <= 0.0) && (suspended_ == Action::SuspendStates::not_suspended)) { if (rate_ < 0)