From: Christian Heinrich Date: Fri, 16 Jun 2017 11:52:18 +0000 (+0200) Subject: [ENERGY] Add API call for querying current consumption X-Git-Tag: v3.16~77 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/2b5fb90a70e5b8abfd4215fc71ed0a00634c146b?hp=7cb96467cddc465b7b0f8f819755bc9c850198c5 [ENERGY] Add API call for querying current consumption --- 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()