From fc45b14055d16a944771ccf34cd94f5511e6fb24 Mon Sep 17 00:00:00 2001 From: Christian Heinrich Date: Tue, 17 Jul 2018 10:29:21 +0200 Subject: [PATCH] [ENERGY] Don't halt, just emit warning in special case Even though 'AllCores' and 'OneCore' are the same in the special case of #cores == 1, just go with the OneCore value. This makes it much simpler to play around with the platform without having to change the power profile each time. --- src/plugins/host_energy.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/plugins/host_energy.cpp b/src/plugins/host_energy.cpp index 74417363b6..340c283b50 100644 --- a/src/plugins/host_energy.cpp +++ b/src/plugins/host_energy.cpp @@ -341,12 +341,15 @@ void HostEnergy::init_watts_range_list() // In this case, 1core == AllCores current_power_values.push_back(current_power_values.at(1)); } else { // size == 3 - xbt_assert((current_power_values.at(1)) == (current_power_values.at(2)), - "Power properties incorrectly defined for host %s.\n" - "The energy profile of mono-cores should be formatted as 'Idle:FullSpeed' only.\n" - "If you go for a 'Idle:OneCore:AllCores' power profile on mono-cores, then OneCore and AllCores " - "must be equal.", - host_->get_cname()); + current_power_values[2] = current_power_values.at(1); + static thread_local bool displayed_warning = false; + if (not displayed_warning) { // Otherwise we get in the worst case no_pstate*no_hosts warnings + XBT_WARN("Host %s is a single-core machine and part of the power profile is '%s'" + ", which is in the 'Idle:OneCore:AllCores' format." + " Since this is a single-core machine, AllCores and OneCore are identical." + " Here, only the value for 'OneCore' is used.", host_->get_cname(), current_power_values_str.c_str()); + displayed_warning = true; + } } } else { xbt_assert(current_power_values.size() == 3, -- 2.20.1