Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
routing: move an empty implementation to the super class
[simgrid.git] / src / surf / plugins / energy.cpp
index 451dd83..02ffe37 100644 (file)
@@ -69,13 +69,13 @@ void HostEnergy::update()
   double start_time = this->last_updated;
   double finish_time = surf_get_clock();
   double cpu_load;
-  if (surf_host->p_cpu->m_speedPeak == 0)
+  if (surf_host->p_cpu->p_speed.peak == 0)
     // Some users declare a pstate of speed 0 flops (eg to model boot time).
     // We consider that the machine is then fully loaded. That's arbitrary but it avoids a NaN
     cpu_load = 1;
   else
     cpu_load = lmm_constraint_get_usage(surf_host->p_cpu->getConstraint())
-                / surf_host->p_cpu->m_speedPeak;
+                / surf_host->p_cpu->p_speed.peak;
 
   if (cpu_load > 1) // A machine with a load > 1 consumes as much as a fully loaded machine, not mores
     cpu_load = 1;
@@ -94,7 +94,7 @@ void HostEnergy::update()
   this->last_updated = finish_time;
 
   XBT_DEBUG("[update_energy of %s] period=[%.2f-%.2f]; current power peak=%.0E flop/s; consumption change: %.2f J -> %.2f J",
-      surf_host->getName(), start_time, finish_time, surf_host->p_cpu->m_speedPeak, previous_energy, energy_this_step);
+      surf_host->getName(), start_time, finish_time, surf_host->p_cpu->p_speed.peak, previous_energy, energy_this_step);
 }
 
 HostEnergy::HostEnergy(simgrid::s4u::Host *ptr) :
@@ -103,10 +103,10 @@ HostEnergy::HostEnergy(simgrid::s4u::Host *ptr) :
   initWattsRangeList();
 
   if (host->properties() != NULL) {
-    char* off_power_str = (char*)xbt_dict_get_or_null(
-      host->properties(), "watt_off");
+    char* off_power_str = (char*)xbt_dict_get_or_null(host->properties(), "watt_off");
     if (off_power_str != NULL)
-      watts_off = atof(off_power_str);
+      watts_off = xbt_str_parse_double(off_power_str,
+          bprintf("Invalid value for property watt_off of host %s: %%s",host->name().c_str()));
     else
       watts_off = 0;
   }
@@ -183,8 +183,10 @@ void HostEnergy::initWattsRangeList()
     /* min_power corresponds to the idle power (cpu load = 0) */
     /* max_power is the power consumed at 100% cpu load       */
     power_range_watts_list.push_back(power_range(
-      atof(xbt_dynar_get_as(current_power_values, 0, char*)),
-      atof(xbt_dynar_get_as(current_power_values, 1, char*))
+      xbt_str_parse_double(xbt_dynar_get_as(current_power_values, 0, char*),
+          bprintf("Invalid min value for pstate %d on host %s: %%s", i, host->name().c_str())),
+      xbt_str_parse_double(xbt_dynar_get_as(current_power_values, 1, char*),
+          bprintf("Invalid min value for pstate %d on host %s: %%s", i, host->name().c_str()))
     ));
 
     xbt_dynar_free(&current_power_values);