+Host* Host::set_pstate_speed(const std::vector<double>& speed_per_state)
+{
+ kernel::actor::simcall([this, &speed_per_state] { pimpl_cpu->set_pstate_speed(speed_per_state); });
+ return this;
+}
+
+Host* Host::set_pstate_speed(const std::vector<std::string>& speed_per_state)
+{
+ std::vector<double> speed_list(speed_per_state.size());
+ for (const auto& speed_str : speed_per_state) {
+ try {
+ double speed = xbt_parse_get_speed("", 0, speed_str.c_str(), nullptr, "");
+ speed_list.push_back(speed);
+ } catch (const simgrid::ParseError& e) {
+ xbt_die("Host(%s): Impossible to set_pstate_speed, invalid speed %s", get_cname(), speed_str.c_str());
+ }
+ }
+ set_pstate_speed(speed_list);
+ return this;
+}
+