SimGrid  3.21
Versatile Simulation of Distributed Systems
host_dvfs.cpp File Reference
#include "simgrid/plugins/dvfs.h"
#include "simgrid/plugins/load.h"
#include "simgrid/s4u/Engine.hpp"
#include "src/internal_config.h"
#include "src/kernel/activity/ExecImpl.hpp"
#include "src/plugins/vm/VirtualMachineImpl.hpp"
#include <xbt/config.hpp>
#include <boost/algorithm/string.hpp>

Classes

class  simgrid::plugin::dvfs::Governor
 Add this to your host tag: More...
 
class  simgrid::plugin::dvfs::Performance
 The linux kernel doc describes this governor as follows: https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt. More...
 
class  simgrid::plugin::dvfs::Powersave
 The linux kernel doc describes this governor as follows: https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt. More...
 
class  simgrid::plugin::dvfs::OnDemand
 The linux kernel doc describes this governor as follows: https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt. More...
 
class  simgrid::plugin::dvfs::Conservative
 This is the conservative governor, which is very similar to the OnDemand governor. More...
 

Namespaces

 simgrid
 
 simgrid::plugin
 
 simgrid::plugin::dvfs
 

Functions

 XBT_LOG_NEW_DEFAULT_SUBCATEGORY (surf_plugin_dvfs, surf, "Logging specific to the SURF HostDvfs plugin")
 
static void on_host_added (simgrid::s4u::Host &host)
 
void sg_host_dvfs_plugin_init ()
 Initializes the HostDvfs plugin. More...
 

Variables

static simgrid::config::Flag< double > cfg_sampling_rate ("plugin/dvfs/sampling-rate", {"plugin/dvfs/sampling_rate"}, "How often should the dvfs plugin check whether the frequency needs to be changed?", 0.1, [](double val){if(val !=0.1) sg_host_dvfs_plugin_init();})
 
static simgrid::config::Flag< std::string > cfg_governor ("plugin/dvfs/governor", "Which Governor should be used that adapts the CPU frequency?", "performance", std::map< std::string, std::string >({ {"conservative", "TODO: Doc"}, {"ondemand", "TODO: Doc"}, {"performance", "TODO: Doc"}, {"powersave", "TODO: Doc"}, }), [](std::string val) { if(val !="performance") sg_host_dvfs_plugin_init();})
 
static simgrid::config::Flag< int > cfg_min_pstate ("plugin/dvfs/min-pstate", {"plugin/dvfs/min_pstate"}, "Which pstate is the minimum (and hence fastest) pstate for this governor?", 0, [](int index) {})
 
static const int max_pstate_not_limited = -1
 
static simgrid::config::Flag< int > cfg_max_pstate ("plugin/dvfs/max-pstate", {"plugin/dvfs/max_pstate"}, "Which pstate is the maximum (and hence slowest) pstate for this governor?", max_pstate_not_limited, [](int index) {})
 

Function Documentation

◆ XBT_LOG_NEW_DEFAULT_SUBCATEGORY()

XBT_LOG_NEW_DEFAULT_SUBCATEGORY ( surf_plugin_dvfs  ,
surf  ,
"Logging specific to the SURF HostDvfs plugin"   
)

◆ on_host_added()

static void on_host_added ( simgrid::s4u::Host host)
static

This lambda function is the function the actor (daemon) will execute all the time - in the case of the dvfs plugin, this controls when to lower/raise the frequency.

Variable Documentation

◆ cfg_sampling_rate

simgrid::config::Flag<double> cfg_sampling_rate("plugin/dvfs/sampling-rate", {"plugin/dvfs/sampling_rate"}, "How often should the dvfs plugin check whether the frequency needs to be changed?", 0.1, [](double val){if(val !=0.1) sg_host_dvfs_plugin_init();})
static

◆ cfg_governor

simgrid::config::Flag<std::string> cfg_governor("plugin/dvfs/governor", "Which Governor should be used that adapts the CPU frequency?", "performance", std::map< std::string, std::string >({ {"conservative", "TODO: Doc"}, {"ondemand", "TODO: Doc"}, {"performance", "TODO: Doc"}, {"powersave", "TODO: Doc"}, }), [](std::string val) { if(val !="performance") sg_host_dvfs_plugin_init();})
static

◆ cfg_min_pstate

simgrid::config::Flag<int> cfg_min_pstate("plugin/dvfs/min-pstate", {"plugin/dvfs/min_pstate"}, "Which pstate is the minimum (and hence fastest) pstate for this governor?", 0, [](int index) {})
static

◆ max_pstate_not_limited

const int max_pstate_not_limited = -1
static

◆ cfg_max_pstate

simgrid::config::Flag<int> cfg_max_pstate("plugin/dvfs/max-pstate", {"plugin/dvfs/max_pstate"}, "Which pstate is the maximum (and hence slowest) pstate for this governor?", max_pstate_not_limited, [](int index) {})
static