X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fe351f7439d06e7b0a7621ba282ea27c536133f9..a487f5837ecc86122e698b3b969533fd453a65c8:/src/plugins/host_energy.cpp diff --git a/src/plugins/host_energy.cpp b/src/plugins/host_energy.cpp index f1167b87a8..a6e0d76aaf 100644 --- a/src/plugins/host_energy.cpp +++ b/src/plugins/host_energy.cpp @@ -343,20 +343,30 @@ void HostEnergy::init_watts_range_list() double p_full; double p_epsilon; - if (current_power_values.size() == 2) { // Case: Idle:AllCores - p_full = xbt_str_parse_double((current_power_values.at(1)).c_str(), + 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_epsilon = p_full; - } else { // Case: Idle:Epsilon:AllCores 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(), "Invalid obsolete XML file. Fix your watt_per_state property."); - if (host_->get_core_count() == 1) + if (host_->get_core_count() == 1) { p_epsilon = p_full; - else + } else { 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) { + p_epsilon = p_full; + } else { + p_epsilon = p_idle; + } } + PowerRange range(p_idle, p_epsilon, p_full); power_range_watts_list_.push_back(range);