X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cc8d2ce4d1db8900ad36293537ce7a0f7091cc3f..68e556ff4911879f80e138964a97534bc0ca4985:/src/plugins/host_energy.cpp diff --git a/src/plugins/host_energy.cpp b/src/plugins/host_energy.cpp index b5968923e6..0c31528ff0 100644 --- a/src/plugins/host_energy.cpp +++ b/src/plugins/host_energy.cpp @@ -226,7 +226,6 @@ double HostEnergy::get_watt_idle_at(int pstate) { xbt_assert(not power_range_watts_list_.empty(), "No power range properties specified for host %s", host_->get_cname()); - return power_range_watts_list_[pstate].idle_; } @@ -246,9 +245,9 @@ double HostEnergy::get_watt_max_at(int pstate) double HostEnergy::get_power_range_slope_at(int pstate) { - xbt_assert(not power_range_watts_list_.empty(), "No power range properties specified for host %s", - host_->get_cname()); - return power_range_watts_list_[pstate].slope_; + xbt_assert(not power_range_watts_list_.empty(), "No power range properties specified for host %s", + host_->get_cname()); + return power_range_watts_list_[pstate].slope_; } /** @brief Computes the power consumed by the host according to the current situation @@ -394,9 +393,17 @@ void HostEnergy::init_watts_range_list() XBT_WARN("%s", msg.c_str()); return; } + const char* all_power_values_str = host_->get_property("wattage_per_state"); - if (all_power_values_str == nullptr) + if (all_power_values_str == nullptr) { + /* If no power values are given, we assume it's 0 everywhere */ + XBT_DEBUG("No energetic profiles given for host %s, using 0 W by default.", host_->get_cname()); + for (int i = 0; i < host_->get_pstate_count(); ++i) { + PowerRange range(0,0,0); + power_range_watts_list_.push_back(range); + } return; + } std::vector all_power_values; boost::split(all_power_values, all_power_values_str, boost::is_any_of(",")); @@ -590,10 +597,21 @@ double sg_host_get_consumed_energy(sg_host_t host) return host->extension()->get_consumed_energy(); } +/** @ingroup plugin_host_energy + * @brief Get the amount of watt dissipated when the host is idling + * This function is deprecated and will not work after v3.27. Use sg_host_get_idle_consumption_at instead. + */ +double sg_host_get_idle_consumption(sg_host_t host) +{ + xbt_assert(HostEnergy::EXTENSION_ID.valid(), + "The Energy plugin is not active. Please call sg_host_energy_plugin_init() during initialization."); + return host->extension()->get_watt_idle_at(0); +} + /** @ingroup plugin_host_energy * @brief Get the amount of watt dissipated at the given pstate when the host is idling */ -double sg_host_get_wattidle_at(sg_host_t host, int pstate) +double sg_host_get_idle_consumption_at(sg_host_t host, int pstate) { xbt_assert(HostEnergy::EXTENSION_ID.valid(), "The Energy plugin is not active. Please call sg_host_energy_plugin_init() during initialization."); @@ -601,7 +619,7 @@ double sg_host_get_wattidle_at(sg_host_t host, int pstate) } /** @ingroup plugin_host_energy - * @brief Get the amount of watt dissipated at the given pstate when the host is idling + * @brief Get the amount of watt dissipated at the given pstate when the host is at 0 or epsilon% CPU usage. */ double sg_host_get_wattmin_at(sg_host_t host, int pstate) {