geopm  3.1.1.dev296+g5916b956
GEOPM - Global Extensible Open Power Manager
Public Member Functions | Static Public Member Functions | List of all members
geopm::PowerGovernor Class Referenceabstract

#include <PowerGovernor.hpp>

Inheritance diagram for geopm::PowerGovernor:
Inheritance graph
[legend]

Public Member Functions

 PowerGovernor ()=default
 
virtual ~PowerGovernor ()=default
 
virtual void init_platform_io (void)=0
 Registsters signals and controls with PlatformIO. More...
 
virtual void sample_platform (void)=0
 To be called inside of the Agent's sample_platform() method to read any values required when calling adjust_platform(). This method is currently a noop since no signals are required for this algorithm. More...
 
virtual void adjust_platform (double node_power_request, double &node_power_actual)=0
 Calculates metric of DRAM power history, subtracting that value from the provided target node power. More...
 
virtual bool do_write_batch (void) const =0
 
virtual void set_power_bounds (double min_pkg_power, double max_pkg_power)=0
 Sets min and max package bounds. More...
 
virtual double power_package_time_window (void) const =0
 Get the time window for controlling package power. More...
 

Static Public Member Functions

static std::unique_ptr< PowerGovernormake_unique (void)
 Returns a unique_ptr to a concrete object constructed using the underlying implementation. More...
 
static std::shared_ptr< PowerGovernormake_shared (void)
 Returns a shared_ptr to a concrete object constructed using the underlying implementation. More...
 

Constructor & Destructor Documentation

◆ PowerGovernor()

geopm::PowerGovernor::PowerGovernor ( )
default

◆ ~PowerGovernor()

virtual geopm::PowerGovernor::~PowerGovernor ( )
virtualdefault

Member Function Documentation

◆ adjust_platform()

virtual void geopm::PowerGovernor::adjust_platform ( double  node_power_request,
double &  node_power_actual 
)
pure virtual

Calculates metric of DRAM power history, subtracting that value from the provided target node power.

Parameters
[in]node_power_requestTotal expected node power consumption.
[out]node_power_actualAchievable node power limit. Should equal
Returns
True if platform adjustments have been made, false otherwise.

Implemented in geopm::PowerGovernorImp.

◆ do_write_batch()

virtual bool geopm::PowerGovernor::do_write_batch ( void  ) const
pure virtual

Implemented in geopm::PowerGovernorImp.

◆ init_platform_io()

virtual void geopm::PowerGovernor::init_platform_io ( void  )
pure virtual

Registsters signals and controls with PlatformIO.

Implemented in geopm::PowerGovernorImp.

◆ make_shared()

std::shared_ptr< PowerGovernor > geopm::PowerGovernor::make_shared ( void  )
static

Returns a shared_ptr to a concrete object constructed using the underlying implementation.

◆ make_unique()

std::unique_ptr< PowerGovernor > geopm::PowerGovernor::make_unique ( void  )
static

Returns a unique_ptr to a concrete object constructed using the underlying implementation.

◆ power_package_time_window()

virtual double geopm::PowerGovernor::power_package_time_window ( void  ) const
pure virtual

Get the time window for controlling package power.

Returns
Time window in units of seconds.

Implemented in geopm::PowerGovernorImp.

◆ sample_platform()

virtual void geopm::PowerGovernor::sample_platform ( void  )
pure virtual

To be called inside of the Agent's sample_platform() method to read any values required when calling adjust_platform(). This method is currently a noop since no signals are required for this algorithm.

Implemented in geopm::PowerGovernorImp.

◆ set_power_bounds()

virtual void geopm::PowerGovernor::set_power_bounds ( double  min_pkg_power,
double  max_pkg_power 
)
pure virtual

Sets min and max package bounds.

Parameters
[in]min_pkg_powerMinimum package power.
[in]max_pkg_powerMaximum package power.

Implemented in geopm::PowerGovernorImp.


The documentation for this class was generated from the following files: