X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/090f69e16fc2256292aa7ca819b9d80a2a51d8d4..b3e6487cbebfaada40d407ac8d98daf9e370153c:/src/surf/cpu_ti.hpp diff --git a/src/surf/cpu_ti.hpp b/src/surf/cpu_ti.hpp index 9557b0566f..c1c72bb82d 100644 --- a/src/surf/cpu_ti.hpp +++ b/src/surf/cpu_ti.hpp @@ -1,40 +1,42 @@ -/* Copyright (c) 2013-2021. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2013-2022. The SimGrid Team. All rights reserved. */ /* 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. */ -#ifndef SURF_MODEL_CPUTI_H_ -#define SURF_MODEL_CPUTI_H_ +#ifndef SURF_MODEL_CPUTI_HPP_ +#define SURF_MODEL_CPUTI_HPP_ -#include "cpu_interface.hpp" +#include "src/kernel/resource/CpuImpl.hpp" #include "src/kernel/resource/profile/Profile.hpp" #include #include -namespace simgrid { -namespace kernel { -namespace resource { +namespace simgrid::kernel::resource { /*********** * Classes * ***********/ class XBT_PRIVATE CpuTiModel; class XBT_PRIVATE CpuTi; +class XBT_PRIVATE CpuTiAction; -/********* - * Trace * - *********/ +/*********** + * Profile * + ***********/ class CpuTiProfile { + std::vector time_points_; + std::vector integral_; + public: explicit CpuTiProfile(const profile::Profile* profile); + const std::vector& get_time_points() const { return time_points_; } + double integrate_simple(double a, double b) const; double integrate_simple_point(double a) const; double solve_simple(double a, double amount) const; - 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 { @@ -42,6 +44,15 @@ class CpuTiTmgr { FIXED, /*< Trace fixed, no availability file */ DYNAMIC /*< Dynamic, have an availability file */ }; + Type type_ = Type::FIXED; + double value_ = 0.0; /*< Percentage of cpu speed available. Value fixed between 0 and 1 */ + + /* Dynamic */ + double last_time_ = 0.0; /*< Integral interval last point (discrete time) */ + double total_ = 0.0; /*< Integral total between 0 and last point */ + + std::unique_ptr profile_ = nullptr; + profile::Profile* speed_profile_ = nullptr; public: explicit CpuTiTmgr(double value) : value_(value){}; @@ -52,17 +63,6 @@ public: double integrate(double a, double b) const; double solve(double a, double amount) const; double get_power_scale(double a) const; - -private: - Type type_ = Type::FIXED; - double value_; /*< Percentage of cpu speed available. Value fixed between 0 and 1 */ - - /* Dynamic */ - double last_time_ = 0.0; /*< Integral interval last point (discrete time) */ - double total_ = 0.0; /*< Integral total between 0 and last point */ - - std::unique_ptr profile_ = nullptr; - profile::Profile* speed_profile_ = nullptr; }; /********** @@ -150,8 +150,6 @@ public: CpuTiList modified_cpus_; }; -} // namespace resource -} // namespace kernel -} // namespace simgrid +} // namespace simgrid::kernel::resource -#endif /* SURF_MODEL_CPUTI_H_ */ +#endif /* SURF_MODEL_CPUTI_HPP_ */