X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d0ca0b57339ad99a6b5d1a49be3a4ad69fc5916c..a73d204e173f35c0abb92b26e061929066b8b283:/src/plugins/host_energy.cpp diff --git a/src/plugins/host_energy.cpp b/src/plugins/host_energy.cpp index a5543c46db..46c48c2e6f 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 @@ -341,10 +340,11 @@ void HostEnergy::init_watts_range_list() boost::split(all_power_values, old_prop, boost::is_any_of(",")); xbt_assert(all_power_values.size() == (unsigned)host_->get_pstate_count(), - "Invalid XML file. Found %lu energetic profiles for %d pstates", - all_power_values.size(), host_->get_pstate_count()); + "Invalid XML file. Found %zu energetic profiles for %d pstates", all_power_values.size(), + host_->get_pstate_count()); - std::string msg = std::string("DEPRECATION WARNING: Property 'watt_per_state' will not work after v3.28.\n"); + // XBT_ATTRIB_DEPRECATED_v327: puting this macro name here so that we find it during the deprecation cleanups of v3.28 + std::string msg = std::string("DEPRECATION WARNING: Property 'watt_per_state' will only work until v3.28.\n"); msg += std::string("The old syntax 'Idle:OneCore:AllCores' must be converted into 'Idle:Epsilon:AllCores' to " "properly model the consumption of non-whole tasks on mono-core hosts. Here are the values to " "use for host '") + @@ -360,8 +360,6 @@ void HostEnergy::init_watts_range_list() double p_epsilon; if (current_power_values.size() == 3) { - p_idle = xbt_str_parse_double((current_power_values.at(0)).c_str(), - "Invalid obsolete XML file. Fix your watt_per_state property."); p_one_core = xbt_str_parse_double((current_power_values.at(1)).c_str(), "Invalid obsolete XML file. Fix your watt_per_state property."); p_full = xbt_str_parse_double((current_power_values.at(2)).c_str(), @@ -372,8 +370,6 @@ void HostEnergy::init_watts_range_list() p_epsilon = p_one_core - ((p_full - p_one_core) / (host_->get_core_count() - 1)); } } else { // consuption given with idle and full only - p_idle = xbt_str_parse_double((current_power_values.at(0)).c_str(), - "Invalid obsolete XML file. Fix your watt_per_state property."); p_full = xbt_str_parse_double((current_power_values.at(1)).c_str(), "Invalid obsolete XML file. Fix your watt_per_state property."); if (host_->get_core_count() == 1) { @@ -411,8 +407,8 @@ void HostEnergy::init_watts_range_list() XBT_DEBUG("%s: power properties: %s", host_->get_cname(), all_power_values_str); xbt_assert(all_power_values.size() == (unsigned)host_->get_pstate_count(), - "Invalid XML file. Found %lu energetic profiles for %d pstates", - all_power_values.size(), host_->get_pstate_count()); + "Invalid XML file. Found %zu energetic profiles for %d pstates", all_power_values.size(), + host_->get_pstate_count()); int i = 0; for (auto const& current_power_values_str : all_power_values) { @@ -598,10 +594,20 @@ 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 + */ +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."); @@ -609,7 +615,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) {