geopm  3.1.1.dev272+gdfb40a8d
GEOPM - Global Extensible Open Power Manager
Public Member Functions | List of all members
geopm::PowerGovernorImp Class Reference

#include <PowerGovernorImp.hpp>

Inheritance diagram for geopm::PowerGovernorImp:
Inheritance graph
[legend]
Collaboration diagram for geopm::PowerGovernorImp:
Collaboration graph
[legend]

Public Member Functions

 PowerGovernorImp ()
 
 PowerGovernorImp (PlatformIO &platform_io, const PlatformTopo &platform_topo)
 
virtual ~PowerGovernorImp ()
 
void init_platform_io (void) override
 Registsters signals and controls with PlatformIO. More...
 
virtual void sample_platform (void) override
 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...
 
void adjust_platform (double node_power_request, double &node_power_actual) override
 Calculates metric of DRAM power history, subtracting that value from the provided target node power. More...
 
bool do_write_batch (void) const override
 
void set_power_bounds (double min_pkg_power, double max_pkg_power) override
 Sets min and max package bounds. More...
 
double power_package_time_window (void) const override
 Get the time window for controlling package power. More...
 
- Public Member Functions inherited from geopm::PowerGovernor
 PowerGovernor ()=default
 
virtual ~PowerGovernor ()=default
 

Additional Inherited Members

- Static Public Member Functions inherited from geopm::PowerGovernor
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

◆ PowerGovernorImp() [1/2]

geopm::PowerGovernorImp::PowerGovernorImp ( )

◆ PowerGovernorImp() [2/2]

geopm::PowerGovernorImp::PowerGovernorImp ( PlatformIO &  platform_io,
const PlatformTopo &  platform_topo 
)

◆ ~PowerGovernorImp()

geopm::PowerGovernorImp::~PowerGovernorImp ( )
virtual

Member Function Documentation

◆ adjust_platform()

void geopm::PowerGovernorImp::adjust_platform ( double  node_power_request,
double &  node_power_actual 
)
overridevirtual

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.

Implements geopm::PowerGovernor.

◆ do_write_batch()

bool geopm::PowerGovernorImp::do_write_batch ( void  ) const
overridevirtual

Implements geopm::PowerGovernor.

◆ init_platform_io()

void geopm::PowerGovernorImp::init_platform_io ( void  )
overridevirtual

Registsters signals and controls with PlatformIO.

Implements geopm::PowerGovernor.

◆ power_package_time_window()

double geopm::PowerGovernorImp::power_package_time_window ( void  ) const
overridevirtual

Get the time window for controlling package power.

Returns
Time window in units of seconds.

Implements geopm::PowerGovernor.

◆ sample_platform()

void geopm::PowerGovernorImp::sample_platform ( void  )
overridevirtual

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.

Implements geopm::PowerGovernor.

◆ set_power_bounds()

void geopm::PowerGovernorImp::set_power_bounds ( double  min_pkg_power,
double  max_pkg_power 
)
overridevirtual

Sets min and max package bounds.

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

Implements geopm::PowerGovernor.


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