From 2b5fb90a70e5b8abfd4215fc71ed0a00634c146b Mon Sep 17 00:00:00 2001 From: Christian Heinrich Date: Fri, 16 Jun 2017 13:52:18 +0200 Subject: [PATCH] [ENERGY] Add API call for querying current consumption --- include/simgrid/plugins/energy.h | 2 ++ src/surf/plugins/host_energy.cpp | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/include/simgrid/plugins/energy.h b/include/simgrid/plugins/energy.h index bc1da109dc..a4d9be7611 100644 --- a/include/simgrid/plugins/energy.h +++ b/include/simgrid/plugins/energy.h @@ -17,11 +17,13 @@ XBT_PUBLIC(void) sg_host_energy_update_all(); XBT_PUBLIC(double) sg_host_get_consumed_energy(sg_host_t host); XBT_PUBLIC(double) sg_host_get_wattmin_at(sg_host_t host, int pstate); XBT_PUBLIC(double) sg_host_get_wattmax_at(sg_host_t host, int pstate); +XBT_PUBLIC(double) sg_host_get_current_consumption(sg_host_t host); #define MSG_host_energy_plugin_init() sg_energy_plugin_init() #define MSG_host_get_consumed_energy(host) sg_host_get_consumed_energy(host) #define MSG_host_get_wattmin_at(host,pstate) sg_host_get_wattmin_at(host,pstate) #define MSG_host_get_wattmax_at(host,pstate) sg_host_get_wattmax_at(host,pstate) +#define MSG_host_get_current_consumption(host) sg_host_get_current_consumption(host) SG_END_DECL() diff --git a/src/surf/plugins/host_energy.cpp b/src/surf/plugins/host_energy.cpp index 79228b0fc2..9698183d39 100644 --- a/src/surf/plugins/host_energy.cpp +++ b/src/surf/plugins/host_energy.cpp @@ -434,4 +434,13 @@ double sg_host_get_wattmax_at(sg_host_t host, int pstate) return host->extension()->getWattMaxAt(pstate); } +/** @brief Returns the current consumption of the host */ +double sg_host_get_current_consumption(sg_host_t host) +{ + xbt_assert(HostEnergy::EXTENSION_ID.valid(), + "The Energy plugin is not active. Please call sg_energy_plugin_init() during initialization."); + double cpu_load = lmm_constraint_get_usage(host->pimpl_cpu->constraint()) / host->speed(); + return host->extension()->getCurrentWattsValue(cpu_load); +} + SG_END_DECL() -- 2.20.1