XBT_PUBLIC(void) sg_host_load_plugin_init();
XBT_PUBLIC(double) sg_host_get_current_load(sg_host_t host);
+XBT_PUBLIC(double) sg_host_get_idle_time(sg_host_t host);
XBT_PUBLIC(double) sg_host_get_computed_flops(sg_host_t host);
XBT_PUBLIC(void) sg_host_load_reset(sg_host_t host);
double getCurrentLoad();
double getComputedFlops();
double getAverageLoad();
+ double getIdleTime();
void update();
void reset();
return current_flops / static_cast<double>(host->getSpeed() * host->getCoreCount());
}
+/**
+ * Return idle time since last reset
+ */
+double HostLoad::getIdleTime() {
+ return idle_time;
+}
+
double HostLoad::getAverageLoad()
{
return getComputedFlops() / (host->getSpeed() * host->getCoreCount() * (surf_get_clock() - last_reset));
return host->extension<HostLoad>()->getCurrentLoad();
}
+/** @brief Returns the time this host was idle since the last reset
+ *
+ * See also @ref plugin_load
+ */
+double sg_host_get_idle_time(sg_host_t host)
+{
+ xbt_assert(HostLoad::EXTENSION_ID.valid(),
+ "The Load plugin is not active. Please call sg_host_load_plugin_init() during initialization.");
+
+ return host->extension<HostLoad>()->getIdleTime();
+}
+
double sg_host_get_computed_flops(sg_host_t host)
{
xbt_assert(HostLoad::EXTENSION_ID.valid(),