X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0eb29dadc6192f2e03193bbd5088a2c7c03dc4d8..afe124fe4b3c9b00609c62393ef020bb3b8a9d9a:/src/surf/plugins/energy.cpp diff --git a/src/surf/plugins/energy.cpp b/src/surf/plugins/energy.cpp index 8f5a2baeaa..0f7f72c105 100644 --- a/src/surf/plugins/energy.cpp +++ b/src/surf/plugins/energy.cpp @@ -63,9 +63,15 @@ using simgrid::energy::surf_energy; /* Computes the consumption so far. Called lazily on need. */ static void update_consumption(simgrid::surf::Host *host, HostEnergy *host_energy) { - double cpu_load = lmm_constraint_get_usage(host->p_cpu->getConstraint()) / host->p_cpu->m_speedPeak; double start_time = host_energy->last_updated; double finish_time = surf_get_clock(); + double cpu_load; + if (host->p_cpu->m_speedPeak == 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(host->p_cpu->getConstraint()) / host->p_cpu->m_speedPeak; double previous_energy = host_energy->total_energy;