* This ignores any potential external load coming from a trace.
* @param core The number of core of this Cpu
*/
- virtual Cpu* create_cpu(s4u::Host* host, const std::vector<double>& speed_per_pstate, int core) = 0;
+ virtual Cpu* create_cpu(s4u::Host* host, const std::vector<double>& speed_per_pstate) = 0;
void update_actions_state_lazy(double now, double delta) override;
void update_actions_state_full(double now, double delta) override;
virtual int get_pstate_count() const { return speed_per_pstate_.size(); }
- virtual void set_pstate(int pstate_index);
virtual int get_pstate() const { return pstate_; }
+ virtual Cpu* set_pstate(int pstate_index);
- /*< @brief Setup the trace file with availability events (peak speed changes due to external load).
- * Trace must contain relative values (ratio between 0 and 1)
+ /*< @brief Setup the profile file with availability events (peak speed changes due to external load).
+ * Profile must contain relative values (ratio between 0 and 1)
*/
- virtual void set_speed_profile(profile::Profile* profile);
+ virtual Cpu* set_speed_profile(profile::Profile* profile);
+
+ /**
+ * @brief Set the CPU's speed
+ *
+ * @param speed_per_state list of powers for this processor (default power is at index 0)
+ */
+ Cpu* set_pstate_speed(const std::vector<double>& speed_per_state);
/**
* @brief Execute some quantity of computation