geopm
|
IOGroup that provides signals from the application. More...
#include <ProfileIOGroup.hpp>
Public Member Functions | |
ProfileIOGroup () | |
ProfileIOGroup (const PlatformTopo &topo, ApplicationSampler &application_sampler) | |
virtual | ~ProfileIOGroup () |
std::set< std::string > | signal_names (void) const override |
Returns the names of all signals provided by the IOGroup. More... | |
std::set< std::string > | control_names (void) const override |
Returns the names of all controls provided by the IOGroup. More... | |
bool | is_valid_signal (const std::string &signal_name) const override |
Test if signal_name refers to a signal supported by the group. More... | |
bool | is_valid_control (const std::string &control_name) const override |
Test if control_name refers to a control supported by the group. More... | |
int | signal_domain_type (const std::string &signal_name) const override |
Query the domain for a named signal. More... | |
int | control_domain_type (const std::string &control_name) const override |
Query the domain for a named control. More... | |
int | push_signal (const std::string &signal_name, int domain_type, int domain_idx) override |
Add a signal to the list of signals that is read by read_batch() and sampled by sample(). More... | |
int | push_control (const std::string &control_name, int domain_type, int domain_idx) override |
Add a control to the list of controls that is written by write_batch() and configured with adjust(). More... | |
void | read_batch (void) override |
Read all pushed signals from the platform so that the next call to sample() will reflect the updated data. More... | |
void | write_batch (void) override |
Write all of the pushed controls so that values previously given to adjust() are written to the platform. More... | |
double | sample (int signal_idx) override |
Retrieve signal value from data read by last call to read_batch() for a particular signal previously pushed with push_signal(). More... | |
void | adjust (int control_idx, double setting) override |
Adjust a setting for a particular control that was previously pushed with push_control(). This adjustment will be written to the platform on the next call to write_batch(). More... | |
double | read_signal (const std::string &signal_name, int domain_type, int domain_idx) override |
Read from platform and interpret into SI units a signal given its name and domain. Does not modify the values stored by calling read_batch(). More... | |
void | write_control (const std::string &control_name, int domain_type, int domain_idx, double setting) override |
Interpret the setting and write setting to the platform. Does not modify the values stored by calling adjust(). More... | |
void | save_control (void) override |
Save the state of all controls so that any subsequent changes made through the IOGroup can be undone with a call to the restore() method. More... | |
void | restore_control (void) override |
Restore all controls to values recorded in previous call to the save() method. More... | |
std::function< double(const std::vector< double > &)> | agg_function (const std::string &signal_name) const override |
Return a function that should be used when aggregating the given signal. More... | |
std::function< std::string(double)> | format_function (const std::string &signal_name) const override |
Returns a function that can be used to convert a signal of the given name into a printable string. May be one of the IOGroup::format_*() static methods, or another function. More... | |
std::string | signal_description (const std::string &signal_name) const override |
Returns a description of the signal. This string can be used by tools to generate help text for users of the IOGroup. More... | |
std::string | control_description (const std::string &control_name) const override |
Returns a description of the control. This string can be used by tools to generate help text for users of the IOGroup. More... | |
int | signal_behavior (const std::string &signal_name) const override |
Returns a hint about how a signal will change as a function of time. More... | |
void | connect (void) |
Public Member Functions inherited from geopm::IOGroup | |
IOGroup ()=default | |
virtual | ~IOGroup ()=default |
Static Public Member Functions | |
static std::string | plugin_name (void) |
static std::unique_ptr< IOGroup > | make_plugin (void) |
Static Public Member Functions inherited from geopm::IOGroup | |
static std::vector< std::string > | iogroup_names (void) |
static std::unique_ptr< IOGroup > | make_unique (const std::string &iogroup_name) |
static m_units_e | string_to_units (const std::string &str) |
Convert a string to the corresponding m_units_e value. More... | |
static std::string | units_to_string (int) |
Convert the m_units_e value to the corresponding string. More... | |
static m_signal_behavior_e | string_to_behavior (const std::string &str) |
Convert a string to the corresponding m_signal_behavior_e value. More... | |
Additional Inherited Members | |
Public Types inherited from geopm::IOGroup | |
enum | m_units_e { M_UNITS_NONE, M_UNITS_SECONDS, M_UNITS_HERTZ, M_UNITS_WATTS, M_UNITS_JOULES, M_UNITS_CELSIUS, M_NUM_UNITS } |
enum | m_signal_behavior_e { M_SIGNAL_BEHAVIOR_CONSTANT, M_SIGNAL_BEHAVIOR_MONOTONE, M_SIGNAL_BEHAVIOR_VARIABLE, M_SIGNAL_BEHAVIOR_LABEL, M_NUM_SIGNAL_BEHAVIOR } |
Description of the runtime behavior of a signal. More... | |
Static Public Attributes inherited from geopm::IOGroup | |
static const std::string | M_PLUGIN_PREFIX = "libgeopmiogroup_" |
IOGroup that provides signals from the application.
geopm::ProfileIOGroup::ProfileIOGroup | ( | ) |
geopm::ProfileIOGroup::ProfileIOGroup | ( | const PlatformTopo & | topo, |
ApplicationSampler & | application_sampler | ||
) |
|
virtual |
|
overridevirtual |
Adjust a setting for a particular control that was previously pushed with push_control(). This adjustment will be written to the platform on the next call to write_batch().
[in] | control_idx | The index returned by previous call to push_control(). |
[in] | setting | Value of the control in SI units. |
Implements geopm::IOGroup.
|
overridevirtual |
Return a function that should be used when aggregating the given signal.
[in] | signal_name | Name of the signal. |
Implements geopm::IOGroup.
void geopm::ProfileIOGroup::connect | ( | void | ) |
|
overridevirtual |
Returns a description of the control. This string can be used by tools to generate help text for users of the IOGroup.
Implements geopm::IOGroup.
|
overridevirtual |
Query the domain for a named control.
[in] | control_name | Name of the control to query. |
Implements geopm::IOGroup.
|
overridevirtual |
Returns the names of all controls provided by the IOGroup.
Implements geopm::IOGroup.
|
overridevirtual |
Returns a function that can be used to convert a signal of the given name into a printable string. May be one of the IOGroup::format_*() static methods, or another function.
Reimplemented from geopm::IOGroup.
|
overridevirtual |
Test if control_name refers to a control supported by the group.
[in] | control_name | Name of control to test. |
Implements geopm::IOGroup.
|
overridevirtual |
Test if signal_name refers to a signal supported by the group.
[in] | signal_name | Name of signal to test. |
Implements geopm::IOGroup.
|
static |
|
static |
|
overridevirtual |
Add a control to the list of controls that is written by write_batch() and configured with adjust().
[in] | control_name | Name of the control requested. |
[in] | domain_type | One of the values from the PlatformTopo::m_domain_e enum described in PlatformTopo.hpp. |
[in] | domain_idx | The index of the domain within the set of domains of the same type on the platform. |
Implements geopm::IOGroup.
|
overridevirtual |
Add a signal to the list of signals that is read by read_batch() and sampled by sample().
[in] | signal_name | Name of the signal requested. |
[in] | domain_type | One of the values from the PlatformTopo::m_domain_e enum described in PlatformTopo.hpp. |
[in] | domain_idx | The index of the domain within the set of domains of the same type on the platform. |
Implements geopm::IOGroup.
|
overridevirtual |
Read all pushed signals from the platform so that the next call to sample() will reflect the updated data.
Implements geopm::IOGroup.
|
overridevirtual |
Read from platform and interpret into SI units a signal given its name and domain. Does not modify the values stored by calling read_batch().
[in] | signal_name | Name of the signal requested. |
[in] | domain_type | One of the values from the PlatformTopo::m_domain_e enum described in PlatformTopo.hpp. |
[in] | domain_idx | The index of the domain within the set of domains of the same type on the platform. |
Implements geopm::IOGroup.
|
overridevirtual |
Restore all controls to values recorded in previous call to the save() method.
Implements geopm::IOGroup.
|
overridevirtual |
Retrieve signal value from data read by last call to read_batch() for a particular signal previously pushed with push_signal().
[in] | sample_idx | The index returned by previous call to push_signal(). |
Implements geopm::IOGroup.
|
overridevirtual |
Save the state of all controls so that any subsequent changes made through the IOGroup can be undone with a call to the restore() method.
Implements geopm::IOGroup.
|
overridevirtual |
Returns a hint about how a signal will change as a function of time.
This can be used when generating reports to decide how to summarize a signal's value for the entire application run.
[in] | signal_name | Name of the signal. |
Implements geopm::IOGroup.
|
overridevirtual |
Returns a description of the signal. This string can be used by tools to generate help text for users of the IOGroup.
Implements geopm::IOGroup.
|
overridevirtual |
Query the domain for a named signal.
[in] | signal_name | Name of the signal to query. |
Implements geopm::IOGroup.
|
overridevirtual |
Returns the names of all signals provided by the IOGroup.
Implements geopm::IOGroup.
|
overridevirtual |
Write all of the pushed controls so that values previously given to adjust() are written to the platform.
Implements geopm::IOGroup.
|
overridevirtual |
Interpret the setting and write setting to the platform. Does not modify the values stored by calling adjust().
[in] | control_name | Name of the control requested. |
[in] | domain_type | One of the values from the PlatformTopo::m_domain_e enum described in PlatformTopo.hpp. |
[in] | domain_idx | The index of the domain within the set of domains of the same type on the platform. |
[in] | setting | Value in SI units of the setting for the control. |
Implements geopm::IOGroup.