geopm::CNLIOGroup(3) – IOGroup for interaction with Compute Node Linux
Namespaces
The CNLIOGroup
class and the IOGroup
class are members of
the namespace geopm
, but the full names, geopm::CNLIOGroup
and
geopm::IOGroup
, have been abbreviated in this manual.
Similarly, the std::
namespace specifier has been omitted from the
interface definitions for the following standard types: std::vector
,
std::pair
, std::string
, std::map
, and std::function
, to enable
better rendering of this manual.
Synopsis
#include <geopm/CNLIOGroup.hpp>
Link with -lgeopmd
set<string> CNLIOGroup::signal_names(void) const override;
set<string> CNLIOGroup::control_names(void) const override;
bool CNLIOGroup::is_valid_signal(const string &signal_name) const override;
bool CNLIOGroup::is_valid_control(const string &control_name) const override;
int CNLIOGroup::signal_domain_type(const string &signal_name) const override;
int CNLIOGroup::control_domain_type(const string &control_name) const override;
int CNLIOGroup::push_signal(const string &signal_name, int domain_type,
int domain_idx) override;
int CNLIOGroup::push_control(const string &control_name, int domain_type,
int domain_idx) override;
void CNLIOGroup::read_batch(void) override;
void CNLIOGroup::write_batch(void) override;
double CNLIOGroup::sample(int batch_idx) override;
void CNLIOGroup::adjust(int batch_idx, double setting) override;
double CNLIOGroup::read_signal(const string &signal_name, int domain_type,
int domain_idx) override;
void CNLIOGroup::write_control(const string &control_name, int domain_type,
int domain_idx, double setting) override;
void CNLIOGroup::save_control(void) override;
void CNLIOGroup::restore_control(void) override;
function<double(const vector<double> &)>
CNLIOGroup::agg_function(const string &signal_name) const override;
function<string(double)>
CNLIOGroup::format_function(const string &signal_name) const override;
string CNLIOGroup::signal_description(const string &signal_name) const override;
string CNLIOGroup::control_description(const string &control_name) const override;
int CNLIOGroup::signal_behavior(const string &signal_name) const override;
void CNLIOGroup::save_control(const string &save_path) override;
void CNLIOGroup::restore_control(const string &save_path) override;
static string CNLIOGroup::plugin_name(void);
static unique_ptr<IOGroup> CNLIOGroup::make_plugin(void);
Description
The CNLIOGroup provides board-level energy counters from Compute Node Linux
as signals. These values are obtained through the /sys/cray/pm_counters
on
Compute Node Linux systems.
Class Methods
signal_names()
: Returns the list of signal names provided by this IOGroup.control_names()
: Does nothing; this IOGroup does not provide any controls.is_valid_signal()
: Returns whether the given signal_name is supported by the CNLIOGroup for the current platform.is_valid_control()
: Returns false; this IOGroup does not provide any controls.signal_domain_type()
: If the signal_name is valid for this IOGroup, returnsGEOPM_DOMAIN_BOARD
. Otherwise, returnsGEOPM_DOMAIN_INVALID
.control_domain_type()
: ReturnsGEOPM_DOMAIN_INVALID
; this IOGroup does not provide any controls.push_signal()
: Adds the signal specified by signal_name to the list of signals to be read duringread_batch()
. Throws an error if domain_type is notGEOPM_DOMAIN_BOARD
. The domain_idx is ignored.push_control()
: Should not be called; this IOGroup does not provide any controls. Always throws an error.read_batch()
: Read all pushed signals from the platform so that the next call tosample()
will reflect the updated data. The intention is thatread_batch()
will read the all of theIOGroup
’s signals into memory once per call.write_batch()
: Does nothing; this IOGroup does not provide any controls.sample()
: Returns the value of the signal specified by a signal_idx returned frompush_signal()
. The value will have been updated by the most recent call toread_batch()
.adjust()
: Should not be called; this IOGroup does not provide any controls. Always throws an error.read_signal()
: Immediately return the stored value for the given signal_name. Throws an error if domain_type is notGEOPM_DOMAIN_BOARD
. The domain_idx is ignored.write_control()
: Should not be called; this IOGroup does not provide any controls. Always throws an error.save_control()
: Does nothing; this IOGroup does not provide any controls.restore_control()
: Does nothing; this IOGroup does not provide any controls.agg_function()
: Return a function that should be used when aggregating the given signal. For more information see geopm::Agg(3).format_function()
: Return a function that should be used when formatting the given signal. For more information see geopm::Agg(3).signal_description()
: Returns a string description for signal_name, if defined.control_description()
: Should not be called; this IOGroup does not provide any controls. Always throws an error.signal_behavior()
: Returns one of theIOGroup::signal_behavior_e
values which describes 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.plugin_name()
: Returns the name of the plugin to use when this plugin is registered with the IOGroup factory; see geopm::PluginFactory(3) for more details.make_plugin()
: Returns a pointer to a new CNLIOGroup object; see geopm::PluginFactory(3) for more details.