All Classes Namespaces Files Functions Variables Typedefs Enumerator Macros Groups Pages
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller Class Reference

Sampling Thread Controller. More...

Inheritance diagram for MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller:
Inheritance graph
[legend]
Collaboration diagram for MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller:
Collaboration graph
[legend]

Public Member Functions

 Sampling_Thread_Controller ()
 
void start ()
 mark the start of a measurement phase/period. More...
 
void stop ()
 mark the end of a measurement phase/period. More...
 
void calc ()
 calculate the metric value between start() and stop(). More...
 
void show_meter_reading () const
 Print the calculated metric value to standard output, requires an invocation of calc() already done. More...
 
void set_device (const nvmlDevice_t &device_handle)
 
const NVML_Energy::Power_Unitget_power () const
 
const NVML_Energy::Power_DB_Typeget_power_db () const
 
const NVML_Energy::Time_DB_Typeget_time_db () const
 
NVML_Energy::Power_DB_Typeget_power_db_nonconst ()
 
NVML_Energy::Time_DB_Typeget_time_db_nonconst ()
 
void set_time_db (const NVML_Energy<>::Time_DB_Type &x)
 
void set_power_db (const NVML_Energy<>::Power_DB_Type &x)
 
NVML_Energy::Time_Unit const & get_stop_time ()
 
NVML_Energy::Time_Unit const & get_start_time ()
 
void reset_state ()
 

Private Member Functions

 DECLARE_CLASS_NAME ("Sampling_Thread_Controller")
 

Static Private Member Functions

static NVML_Energy::Power_Unit get_UNREALISTIC_POWER_VALUE ()
 
static void * thread_program (void *arg)
 

Private Attributes

bool sampling
 
nvmlDevice_t device
 Device handle. More...
 
NVML_Energy::Power_Unit power
 Power value for each sample. More...
 
NVML_Energy::Time_Unit time
 Time value for each sample. More...
 
NVML_Energy::Time_DB_Type time_db
 Power data database. More...
 
NVML_Energy::Power_DB_Type power_db
 
pthread_t thread
 
pthread_attr_t attr
 

Detailed Description

template<GPU_Device_Id_Type device_id>
class MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller

Sampling Thread Controller.

Start a thread sampling power samples, and wait for stop signal.

Constructor & Destructor Documentation

template<GPU_Device_Id_Type device_id>
MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::Sampling_Thread_Controller ( )
inline

Member Function Documentation

template<GPU_Device_Id_Type device_id>
void MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::calc ( )
inlinevirtual

calculate the metric value between start() and stop().

Implements MeterPU::Measurement_Controller.

Here is the call graph for this function:

Here is the caller graph for this function:

template<GPU_Device_Id_Type device_id>
MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::DECLARE_CLASS_NAME ( "Sampling_Thread_Controller"  )
private
template<GPU_Device_Id_Type device_id>
const NVML_Energy ::Power_Unit& MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::get_power ( ) const
inline
template<GPU_Device_Id_Type device_id>
const NVML_Energy ::Power_DB_Type& MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::get_power_db ( ) const
inline

Here is the caller graph for this function:

template<GPU_Device_Id_Type device_id>
NVML_Energy ::Power_DB_Type& MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::get_power_db_nonconst ( )
inline

Here is the caller graph for this function:

template<GPU_Device_Id_Type device_id>
NVML_Energy ::Time_Unit const& MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::get_start_time ( )
inline
template<GPU_Device_Id_Type device_id>
NVML_Energy ::Time_Unit const& MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::get_stop_time ( )
inline
template<GPU_Device_Id_Type device_id>
const NVML_Energy ::Time_DB_Type& MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::get_time_db ( ) const
inline

Here is the caller graph for this function:

template<GPU_Device_Id_Type device_id>
NVML_Energy ::Time_DB_Type& MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::get_time_db_nonconst ( )
inline

Here is the caller graph for this function:

template<GPU_Device_Id_Type device_id>
static NVML_Energy ::Power_Unit MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::get_UNREALISTIC_POWER_VALUE ( )
inlinestaticprivate
template<GPU_Device_Id_Type device_id>
void MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::reset_state ( )
inline

Here is the caller graph for this function:

template<GPU_Device_Id_Type device_id>
void MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::set_device ( const nvmlDevice_t &  device_handle)
inline

Here is the caller graph for this function:

template<GPU_Device_Id_Type device_id>
void MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::set_power_db ( const NVML_Energy<>::Power_DB_Type &  x)
inline

Here is the caller graph for this function:

template<GPU_Device_Id_Type device_id>
void MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::set_time_db ( const NVML_Energy<>::Time_DB_Type &  x)
inline

Here is the caller graph for this function:

template<GPU_Device_Id_Type device_id>
void MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::show_meter_reading ( ) const
inlinevirtual

Print the calculated metric value to standard output, requires an invocation of calc() already done.

Implements MeterPU::Measurement_Controller.

template<GPU_Device_Id_Type device_id>
void MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::start ( )
inlinevirtual

mark the start of a measurement phase/period.

Implements MeterPU::Measurement_Controller.

Here is the call graph for this function:

Here is the caller graph for this function:

template<GPU_Device_Id_Type device_id>
void MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::stop ( )
inlinevirtual

mark the end of a measurement phase/period.

Implements MeterPU::Measurement_Controller.

Here is the call graph for this function:

Here is the caller graph for this function:

template<GPU_Device_Id_Type device_id>
static void* MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::thread_program ( void *  arg)
inlinestaticprivate

Here is the caller graph for this function:

Member Data Documentation

template<GPU_Device_Id_Type device_id>
pthread_attr_t MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::attr
private
template<GPU_Device_Id_Type device_id>
nvmlDevice_t MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::device
private

Device handle.

template<GPU_Device_Id_Type device_id>
NVML_Energy ::Power_Unit MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::power
private

Power value for each sample.

template<GPU_Device_Id_Type device_id>
NVML_Energy ::Power_DB_Type MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::power_db
private
template<GPU_Device_Id_Type device_id>
bool MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::sampling
private
template<GPU_Device_Id_Type device_id>
pthread_t MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::thread
private
template<GPU_Device_Id_Type device_id>
NVML_Energy ::Time_Unit MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::time
private

Time value for each sample.

template<GPU_Device_Id_Type device_id>
NVML_Energy ::Time_DB_Type MeterPU::NVML_Energy_Measurement_Controller< device_id >::Sampling_Thread_Controller::time_db
private

Power data database.

Store time and power value pairs.


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