|
| FFNetAgent () |
|
| FFNetAgent (PlatformIO &plat_io, const PlatformTopo &topo, const std::map< std::pair< geopm_domain_e, int >, std::shared_ptr< DomainNetMap > > &net_map, const std::map< geopm_domain_e, std::shared_ptr< RegionHintRecommender > > &freq_recommender, std::shared_ptr< Waiter > waiter) |
|
virtual | ~FFNetAgent ()=default |
|
void | init (int level, const std::vector< int > &fan_in, bool is_level_root) override |
| Set the level where this Agent is active and push signals/controls for that level. More...
|
|
void | validate_policy (std::vector< double > &in_policy) const override |
| Called by Controller to validate incoming policy values and configure defaults requested in incoming policy. Policy sender can request default value with 'NaN' at the desired offset in the policy vector. Returned policy should not contain 'NaN's and be consumeable by descend and adjust_platform. More...
|
|
void | split_policy (const std::vector< double > &in_policy, std::vector< std::vector< double > > &out_policy) override |
| Called by Controller to split policy for children at next level down the tree. More...
|
|
bool | do_send_policy (void) const override |
| Called by Controller to determine if new policy values should be sent down the tree to the Agent's children. More...
|
|
void | aggregate_sample (const std::vector< std::vector< double > > &in_sample, std::vector< double > &out_sample) override |
| Aggregate samples from children for the next level up the tree. More...
|
|
bool | do_send_sample (void) const override |
|
void | adjust_platform (const std::vector< double > &in_policy) override |
| Adjust the platform settings based the policy from above. More...
|
|
bool | do_write_batch (void) const override |
| Called by the Controller to decide whether to call write_batch() to update platform controls. More...
|
|
void | sample_platform (std::vector< double > &out_sample) override |
| Read signals from the platform and interpret/aggregate these signals to create a sample which can be sent up the tree. More...
|
|
void | wait (void) override |
| Called by Controller to wait for sample period to elapse. This controls the cadence of the Controller main loop. More...
|
|
std::vector< std::pair< std::string, std::string > > | report_header (void) const override |
| Custom fields that will be added to the report header when this agent is used. More...
|
|
std::vector< std::pair< std::string, std::string > > | report_host (void) const override |
| Custom fields for the host section of the report. More...
|
|
std::map< uint64_t, std::vector< std::pair< std::string, std::string > > > | report_region (void) const override |
| Custom fields for each region in the report. More...
|
|
std::vector< std::string > | trace_names (void) const override |
| Column headers to be added to the trace. More...
|
|
std::vector< std::function< std::string(double)> > | trace_formats (void) const override |
| Returns format string for each column added to the trace. More...
|
|
void | trace_values (std::vector< double > &values) override |
| Called by Controller to get latest values to be added to the trace. More...
|
|
void | enforce_policy (const std::vector< double > &policy) const override |
| Enforce the policy one time with PlatformIO::write_control(). Called to enforce static policies in the absence of a Controller. More...
|
|
| Agent ()=default |
|
virtual | ~Agent ()=default |
|
|
static std::string | plugin_name (void) |
|
static std::unique_ptr< Agent > | make_plugin (void) |
|
static std::vector< std::string > | policy_names (void) |
|
static std::vector< std::string > | sample_names (void) |
|
static std::vector< std::string > | agent_names (void) |
|
static std::unique_ptr< Agent > | make_unique (const std::string &agent_name) |
|
static int | num_policy (const std::map< std::string, std::string > &dictionary) |
| Used to look up the number of values in the policy vector sent down the tree for a specific Agent. This should be called with the dictionary returned by agent_factory().dictionary(agent_name) for the Agent of interest. More...
|
|
static int | num_policy (const std::string &agent_name) |
| Used to look up the number of values in the policy vector sent down the tree for a specific Agent. More...
|
|
static int | num_sample (const std::map< std::string, std::string > &dictionary) |
| Used to look up the number of values in the sample vector sent up the tree for a specific Agent. This should be called with the dictionary returned by agent_factory().dictionary(agent_name) for the Agent of interest. More...
|
|
static int | num_sample (const std::string &agent_name) |
| Used to look up the number of values in the sample vector sent up the tree for a specific Agent. More...
|
|
static std::vector< std::string > | policy_names (const std::map< std::string, std::string > &dictionary) |
| Used to look up the names of values in the policy vector sent down the tree for a specific Agent. This should be called with the dictionary returned by agent_factory().dictionary(agent_name) for the Agent of interest. More...
|
|
static std::vector< std::string > | policy_names (const std::string &agent_name) |
| Used to look up the names of values in the policy vector sent down the tree for a specific Agent. More...
|
|
static std::vector< std::string > | sample_names (const std::map< std::string, std::string > &dictionary) |
| Used to look up the names of values in the sample vector sent up the tree for a specific Agent. This should be called with the dictionary returned by agent_factory().dictionary(agent_name) for the Agent of interest. More...
|
|
static std::vector< std::string > | sample_names (const std::string &agent_name) |
| Used to look up the names of values in the sample vector sent up the tree for a specific Agent. More...
|
|
static std::map< std::string, std::string > | make_dictionary (const std::vector< std::string > &policy_names, const std::vector< std::string > &sample_names) |
| Used to create a correctly-formatted dictionary for an Agent at the time the Agent is registered with the factory. Concrete Agent classes may provide policy_names() and sample_names() methods to provide the vectors to be passed to this method. More...
|
|
static void | aggregate_sample (const std::vector< std::vector< double > > &in_sample, const std::vector< std::function< double(const std::vector< double > &)> > &agg_func, std::vector< double > &out_sample) |
| Generically aggregate a vector of samples given a vector of aggregation functions. This helper method applies a different aggregation function to each sample element while aggregating across child samples. More...
|
|