From: Martin Quinson Date: Fri, 11 May 2018 23:38:23 +0000 (+0200) Subject: simplifications & cosmetics in CpuTi model X-Git-Tag: v3.20~239 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/9a68636011cc76d73938b2823c055efbdea88bc0?ds=sidebyside simplifications & cosmetics in CpuTi model --- diff --git a/src/surf/cpu_ti.cpp b/src/surf/cpu_ti.cpp index c2827d33d7..53e49ebb82 100644 --- a/src/surf/cpu_ti.cpp +++ b/src/surf/cpu_ti.cpp @@ -220,19 +220,19 @@ double CpuTiTmgr::get_power_scale(double a) } /** -* \brief Creates a new integration trace from a tmgr_trace_t -* -* \param speedTrace CPU availability trace -* \param value Percentage of CPU speed available (useful to fixed tracing) -* \return Integration trace structure -*/ -CpuTiTmgr::CpuTiTmgr(tmgr_trace_t speedTrace, double value) : speed_trace_(speedTrace) + * \brief Creates a new integration trace from a tmgr_trace_t + * + * \param speed_trace CPU availability trace + * \param value Percentage of CPU speed available (useful to fixed tracing) + * \return Integration trace structure + */ +CpuTiTmgr::CpuTiTmgr(tmgr_trace_t speed_trace, double value) : speed_trace_(speed_trace) { double total_time = 0.0; trace_ = 0; -/* no availability file, fixed trace */ - if (not speedTrace) { + /* no availability file, fixed trace */ + if (not speed_trace) { type_ = TRACE_FIXED; value_ = value; XBT_DEBUG("No availability trace. Constant value = %f", value); @@ -240,22 +240,21 @@ CpuTiTmgr::CpuTiTmgr(tmgr_trace_t speedTrace, double value) : speed_trace_(speed } /* only one point available, fixed trace */ - if (speedTrace->event_list.size() == 1) { - trace_mgr::DatedValue val = speedTrace->event_list.front(); - type_ = TRACE_FIXED; - value_ = val.value_; + if (speed_trace->event_list.size() == 1) { + type_ = TRACE_FIXED; + value_ = speed_trace->event_list.front().value_; return; } type_ = TRACE_DYNAMIC; /* count the total time of trace file */ - for (auto const& val : speedTrace->event_list) + for (auto const& val : speed_trace->event_list) total_time += val.date_; - trace_ = new CpuTiTrace(speedTrace); + trace_ = new CpuTiTrace(speed_trace); last_time_ = total_time; - total_ = trace_->integrate_simple(0, total_time); + total_ = trace_->integrate_simple(0, total_time); XBT_DEBUG("Total integral %f, last_time %f ", total_, last_time_); } @@ -325,9 +324,9 @@ double CpuTiModel::next_occuring_event(double now) /* iterates over modified cpus to update share resources */ for (auto it = std::begin(modified_cpus_); it != std::end(modified_cpus_);) { - CpuTi& ti = *it; - ++it; // increment iterator here since the following call to ti.updateActionsFinishTime() may invalidate it - ti.update_actions_finish_time(now); + CpuTi& cpu = *it; + ++it; // increment iterator here since the following call to ti.update_actions_finish_time() may invalidate it + cpu.update_actions_finish_time(now); } /* get the min next event if heap not empty */ @@ -385,21 +384,18 @@ void CpuTi::set_speed_trace(tmgr_trace_t trace) void CpuTi::apply_event(tmgr_trace_event_t event, double value) { if (event == speed_.event) { - tmgr_trace_t speedTrace; - CpuTiTmgr* trace; - XBT_DEBUG("Finish trace date: value %f", value); /* update remaining of actions and put in modified cpu list */ update_remaining_amount(surf_get_clock()); set_modified(true); - speedTrace = speed_integrated_trace_->speed_trace_; + tmgr_trace_t speedTrace = speed_integrated_trace_->speed_trace_; trace_mgr::DatedValue val = speedTrace->event_list.back(); delete speed_integrated_trace_; speed_.scale = val.value_; - trace = new CpuTiTmgr(TRACE_FIXED, val.value_); + CpuTiTmgr* trace = new CpuTiTmgr(TRACE_FIXED, val.value_); XBT_DEBUG("value %f", val.value_); speed_integrated_trace_ = trace; @@ -546,9 +542,9 @@ void CpuTi::update_remaining_amount(double now) CpuAction *CpuTi::execution_start(double size) { XBT_IN("(%s,%g)", get_cname(), size); - CpuTiAction* action = new CpuTiAction(static_cast(get_model()), size, is_off(), this); + CpuTiAction* action = new CpuTiAction(this, size); - action_set_.push_back(*action); + action_set_.push_back(*action); // Actually start the action XBT_OUT(); return action; @@ -561,7 +557,7 @@ CpuAction *CpuTi::sleep(double duration) duration = std::max(duration, sg_surf_precision); XBT_IN("(%s,%g)", get_cname(), duration); - CpuTiAction* action = new CpuTiAction(static_cast(get_model()), 1.0, is_off(), this); + CpuTiAction* action = new CpuTiAction(this, 1.0); action->set_max_duration(duration); action->suspended_ = kernel::resource::Action::SuspendStates::sleeping; @@ -580,14 +576,14 @@ CpuAction *CpuTi::sleep(double duration) void CpuTi::set_modified(bool modified) { - CpuTiList& modifiedCpu = static_cast(get_model())->modified_cpus_; + CpuTiList& modified_cpus = static_cast(get_model())->modified_cpus_; if (modified) { if (not cpu_ti_hook.is_linked()) { - modifiedCpu.push_back(*this); + modified_cpus.push_back(*this); } } else { if (cpu_ti_hook.is_linked()) - simgrid::xbt::intrusive_erase(modifiedCpu, *this); + simgrid::xbt::intrusive_erase(modified_cpus, *this); } } @@ -595,9 +591,7 @@ void CpuTi::set_modified(bool modified) * Action * **********/ -CpuTiAction::CpuTiAction(CpuTiModel *model_, double cost, bool failed, CpuTi *cpu) - : CpuAction(model_, cost, failed) - , cpu_(cpu) +CpuTiAction::CpuTiAction(CpuTi* cpu, double cost) : CpuAction(cpu->get_model(), cost, cpu->is_off()), cpu_(cpu) { cpu_->set_modified(true); } diff --git a/src/surf/cpu_ti.hpp b/src/surf/cpu_ti.hpp index 76017eba7a..b58b80eccb 100644 --- a/src/surf/cpu_ti.hpp +++ b/src/surf/cpu_ti.hpp @@ -78,10 +78,10 @@ public: class XBT_PRIVATE CpuTiAction : public CpuAction { friend class CpuTi; public: - CpuTiAction(CpuTiModel *model, double cost, bool failed, CpuTi *cpu); + CpuTiAction(CpuTi* cpu, double cost); ~CpuTiAction(); - void set_state(simgrid::kernel::resource::Action::State state) override; + void set_state(kernel::resource::Action::State state) override; void cancel() override; void suspend() override; void resume() override; @@ -128,8 +128,6 @@ public: double sum_priority_ = 0; /*< the sum of actions' priority that are running on cpu */ double last_update_ = 0; /*< last update of actions' remaining amount done */ - double current_frequency_; - boost::intrusive::list_member_hook<> cpu_ti_hook; };