X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ee342b491120996fbe7088bd59debf5517e2e3c4..38f246c4c46920a78ea0af8233449f402c178f04:/src/surf/cpu_ti.hpp diff --git a/src/surf/cpu_ti.hpp b/src/surf/cpu_ti.hpp index 81b56185b3..4d6cd178bd 100644 --- a/src/surf/cpu_ti.hpp +++ b/src/surf/cpu_ti.hpp @@ -6,9 +6,8 @@ #ifndef SURF_MODEL_CPUTI_H_ #define SURF_MODEL_CPUTI_H_ +#include "cpu_interface.hpp" #include "src/kernel/resource/profile/Profile.hpp" -#include "src/surf/cpu_interface.hpp" - #include #include @@ -35,7 +34,7 @@ public: std::vector time_points_; std::vector integral_; - static int binary_search(const std::vector& array, double a); + static long binary_search(const std::vector& array, double a); }; class CpuTiTmgr { @@ -82,7 +81,6 @@ public: void cancel() override; void suspend() override; void resume() override; - void set_max_duration(double duration) override; void set_sharing_penalty(double sharing_penalty) override; double get_remains() override; @@ -98,22 +96,22 @@ using ActionTiList = boost::intrusive::list; /************ * Resource * ************/ -class CpuTi : public Cpu { +class CpuTi : public CpuImpl { public: CpuTi(s4u::Host* host, const std::vector& speed_per_pstate); CpuTi(const CpuTi&) = delete; CpuTi& operator&(const CpuTi&) = delete; ~CpuTi() override; - void set_speed_profile(profile::Profile* profile) override; + CpuImpl* set_speed_profile(profile::Profile* profile) override; void apply_event(profile::Event* event, double value) override; void update_actions_finish_time(double now); void update_remaining_amount(double now); bool is_used() const override; - CpuAction* execution_start(double size) override; - CpuAction* execution_start(double, int) override + CpuAction* execution_start(double size, double user_bound) override; + CpuAction* execution_start(double, int, double) override { THROW_UNIMPLEMENTED; return nullptr; @@ -140,13 +138,12 @@ using CpuTiList = boost::intrusive::list; *********/ class CpuTiModel : public CpuModel { public: - static void create_pm_vm_models(); // Make both models be TI models + static void create_pm_models(); // Make CPU PM model - CpuTiModel(); + using CpuModel::CpuModel; CpuTiModel(const CpuTiModel&) = delete; CpuTiModel& operator=(const CpuTiModel&) = delete; - ~CpuTiModel() override; - Cpu* create_cpu(s4u::Host* host, const std::vector& speed_per_pstate) override; + CpuImpl* create_cpu(s4u::Host* host, const std::vector& speed_per_pstate) override; double next_occurring_event(double now) override; void update_actions_state(double now, double delta) override;