Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[Energy] cosmetics and comments
[simgrid.git] / src / plugins / host_energy.cpp
index b596892..0c31528 100644 (file)
@@ -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<std::string> 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<HostEnergy>()->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<HostEnergy>()->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)
 {