SimGrid  3.18
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

◆ CpuTiTgmr() [1/2]

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

◆ CpuTiTgmr() [2/2]

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)
Returns
Integration trace structure

◆ ~CpuTiTgmr()

simgrid::surf::CpuTiTgmr::~CpuTiTgmr ( )

Member Function Documentation

◆ integrate()

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

Integrate trace.

Wrapper around surf_cpu_integrate_trace_simple() to get the cyclic effect.

Parameters
aBegin of interval
bEnd of interval
Returns
the integrate value. -1 if an error occurs.

◆ solve()

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

◆ solveSomewhatSimple()

double simgrid::surf::CpuTiTgmr::solveSomewhatSimple ( double  a,
double  amount 
)

Auxiliary function to solve integral.

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

◆ getPowerScale()

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
aTime
Returns
CPU speed scale

Member Data Documentation

◆ type_

trace_type simgrid::surf::CpuTiTgmr::type_

◆ value_

double simgrid::surf::CpuTiTgmr::value_

◆ lastTime_

double simgrid::surf::CpuTiTgmr::lastTime_ = 0.0

◆ total_

double simgrid::surf::CpuTiTgmr::total_ = 0.0

◆ trace_

CpuTiTrace* simgrid::surf::CpuTiTgmr::trace_ = nullptr

◆ speedTrace_

tmgr_trace_t simgrid::surf::CpuTiTgmr::speedTrace_ = nullptr

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