SimGrid  3.13
Versatile Simulation of Distributed Systems
simgrid::surf::CpuTiTgmr Class Reference

#include <cpu_ti.hpp>

Public Member Functions

 CpuTiTgmr (trace_type type, double value)
 
 CpuTiTgmr (tmgr_trace_t speedTrace, double value)
 Creates a new integration trace from a tmgr_trace_t. More...
 
 ~CpuTiTgmr ()
 
double integrate (double a, double b)
 Integrate trace. More...
 
double solve (double a, double amount)
 Computes the time needed to execute "amount" on cpu. More...
 
double solveSomewhatSimple (double a, double amount)
 Auxiliary function to solve integral. More...
 
double getPowerScale (double a)
 Auxiliary function to update the CPU speed scale. More...
 

Public Attributes

trace_type type_
 
double value_
 
double lastTime_ = 0.0
 
double total_ = 0.0
 
CpuTiTracetrace_ = nullptr
 
tmgr_trace_t speedTrace_ = nullptr
 

Constructor & Destructor Documentation

simgrid::surf::CpuTiTgmr::CpuTiTgmr ( trace_type  type,
double  value 
)
inline
simgrid::surf::CpuTiTgmr::CpuTiTgmr ( tmgr_trace_t  speedTrace,
double  value 
)

Creates a new integration trace from a tmgr_trace_t.

Parameters
speedTraceCPU availability trace
valuePercentage of CPU speed available (useful to fixed tracing)
spacingInitial spacing
Returns
Integration trace structure
simgrid::surf::CpuTiTgmr::~CpuTiTgmr ( )

Member Function Documentation

double simgrid::surf::CpuTiTgmr::integrate ( double  a,
double  b 
)

Integrate trace.

Wrapper around surf_cpu_integrate_trace_simple() to get the cyclic effect.

Parameters
traceTrace structure.
aBegin of interval
bEnd of interval
Returns
the integrate value. -1 if an error occurs.
double simgrid::surf::CpuTiTgmr::solve ( double  a,
double  amount 
)

Computes the time needed to execute "amount" on cpu.

Here, amount can span multiple trace periods

Parameters
aInitial time
amountAmount to be executed
Returns
End time
double simgrid::surf::CpuTiTgmr::solveSomewhatSimple ( double  a,
double  amount 
)

Auxiliary function to solve integral.

Here, amount is <= trace->total and a <=trace->last_time

double simgrid::surf::CpuTiTgmr::getPowerScale ( double  a)

Auxiliary function to update the CPU speed scale.

This function uses the trace structure to return the speed scale at the determined time a.

Parameters
traceTrace structure to search the updated speed scale
aTime
Returns
CPU speed scale

Member Data Documentation

trace_type simgrid::surf::CpuTiTgmr::type_
double simgrid::surf::CpuTiTgmr::value_
double simgrid::surf::CpuTiTgmr::lastTime_ = 0.0
double simgrid::surf::CpuTiTgmr::total_ = 0.0
CpuTiTrace* simgrid::surf::CpuTiTgmr::trace_ = nullptr
tmgr_trace_t simgrid::surf::CpuTiTgmr::speedTrace_ = nullptr

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