A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
(Energy] Add sg_get_idle_consumption_at function
[simgrid.git]
/
src
/
plugins
/
host_energy.cpp
diff --git
a/src/plugins/host_energy.cpp
b/src/plugins/host_energy.cpp
index
b596892
..
4b82556
100644
(file)
--- a/
src/plugins/host_energy.cpp
+++ b/
src/plugins/host_energy.cpp
@@
-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_;
}
@@
-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(","));
@@
-591,18
+598,25
@@
double sg_host_get_consumed_energy(sg_host_t host)
}
/** @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 when the host is idling
*/
-double sg_host_get_
wattidle_at(sg_host_t host, int pstate
)
+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(
pstate
);
+ 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_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.");
+ return host->extension<HostEnergy>()->get_watt_idle_at(pstate);
+}
+
double sg_host_get_wattmin_at(sg_host_t host, int pstate)
{
xbt_assert(HostEnergy::EXTENSION_ID.valid(),