geopm
3.1.1.dev296+g5916b956
GEOPM - Global Extensible Open Power Manager
|
#include <FrequencyTimeBalancer.hpp>
Public Member Functions | |
FrequencyTimeBalancer ()=default | |
virtual | ~FrequencyTimeBalancer ()=default |
virtual std::vector< double > | balance_frequencies_by_time (const std::vector< double > &previous_times, const std::vector< double > &previous_control_frequencies, const std::vector< double > &previous_achieved_frequencies, const std::vector< std::pair< unsigned int, double > > &frequency_limits_by_high_priority_count, double low_priority_frequency)=0 |
Return the recommended frequency controls given observed times while operating under a given set of previous frequency controls. The returned vector is the same size as the input vectors. More... | |
virtual double | get_target_time () const =0 |
return the target time last used to balance the frequencies. More... | |
Static Public Member Functions | |
static std::unique_ptr< FrequencyTimeBalancer > | make_unique (double minimum_frequency, double maximum_frequency) |
Allocate a FrequencyTimeBalancer instance. More... | |
static std::shared_ptr< FrequencyTimeBalancer > | make_shared (double minimum_frequency, double maximum_frequency) |
Allocate a FrequencyTimeBalancer instance. More... | |
Select frequency control settings that are expected to balance measured execution times. Assumes time impact of up to (frequency_old/frequency_new) percent. Workloads less frequency-sensitive than that should be able to go lower than the recommended frequencies. This is expected to converge toward those lower frequencies if it is repeatedly re-evaluated some time after applying the recommended frequency controls.
|
default |
|
virtualdefault |
|
pure virtual |
Return the recommended frequency controls given observed times while operating under a given set of previous frequency controls. The returned vector is the same size as the input vectors.
previous_times | Time spent in the region to be balanced, measured by any domain. |
previous_control_frequencies | Frequency control last applied over the region to be balanced, measured by the same domain as previous_times . |
previous_achieved_frequencies | Average observed frequencies over the region to be balanced, measured by the same domain as previous_times . |
Implemented in geopm::FrequencyTimeBalancerImp.
|
pure virtual |
return the target time last used to balance the frequencies.
Implemented in geopm::FrequencyTimeBalancerImp.
|
static |
Allocate a FrequencyTimeBalancer instance.
minimum_frequency | The lowest frequency control to allow in rebalancing frequency control decisions. |
maximum_frequency | The highest frequency control to allow in rebalancing frequency control decisions. |
|
static |
Allocate a FrequencyTimeBalancer instance.
minimum_frequency | The lowest frequency control to allow in rebalancing frequency control decisions. |
maximum_frequency | The highest frequency control to allow in rebalancing frequency control decisions. |