DPsim
Loading...
Searching...
No Matches
DPsim::ThreadScheduler Class Reference
Inheritance diagram for DPsim::ThreadScheduler:
[legend]
Collaboration diagram for DPsim::ThreadScheduler:
[legend]

Public Member Functions

 ThreadScheduler (Int threads, String outMeasurementFile, Bool useConditionVariable)
 
void step (Real time, Int timeStepCount)
 Performs a single simulation step.
 
virtual void stop ()
 Called on simulation stop to reliably clean up e.g. running helper threads.
 
- Public Member Functions inherited from DPsim::Scheduler
 Scheduler (CPS::Logger::Level logLevel=CPS::Logger::Level::off)
 
virtual void createSchedule (const CPS::Task::List &tasks, const Edges &inEdges, const Edges &outEdges)=0
 Creates the schedule for the given dependency graph.
 
void resolveDeps (CPS::Task::List &tasks, Edges &inEdges, Edges &outEdges)
 
TaskTime getAveragedMeasurement (CPS::Task::Ptr task)
 

Protected Member Functions

void finishSchedule (const Edges &inEdges)
 
void scheduleTask (int thread, CPS::Task::Ptr task)
 
- Protected Member Functions inherited from DPsim::Scheduler
void topologicalSort (const CPS::Task::List &tasks, const Edges &inEdges, const Edges &outEdges, CPS::Task::List &sortedTasks)
 Simple topological sort, filtering out tasks that do not need to be executed.
 
void initMeasurements (const CPS::Task::List &tasks)
 
void updateMeasurement (CPS::Task *task, TaskTime time)
 
void writeMeasurements (CPS::String filename)
 Write measurement data to file.
 
void readMeasurements (CPS::String filename, std::unordered_map< CPS::String, TaskTime::rep > &measurements)
 Read measurement data from file to use it for the scheduling.
 
TaskTime getAveragedMeasurement (CPS::Task *task)
 

Protected Attributes

Int mNumThreads
 
- Protected Attributes inherited from DPsim::Scheduler
CPS::Task::Ptr mRoot
 
CPS::Logger::Level mLogLevel
 Log level.
 
CPS::Logger::Log mSLog
 Logger.
 

Additional Inherited Members

- Public Types inherited from DPsim::Scheduler
typedef std::unordered_map< CPS::Task::Ptr, std::deque< CPS::Task::Ptr > > Edges
 
typedef std::chrono::steady_clock::duration TaskTime
 Time measurement for the task execution.
 
- Static Public Attributes inherited from DPsim::Scheduler
static CPS::AttributeBase::Ptr external
 
- Static Protected Member Functions inherited from DPsim::Scheduler
static void levelSchedule (const CPS::Task::List &tasks, const Edges &inEdges, const Edges &outEdges, std::vector< CPS::Task::List > &levels)
 

Detailed Description

Definition at line 17 of file ThreadScheduler.h.

Constructor & Destructor Documentation

◆ ThreadScheduler()

ThreadScheduler::ThreadScheduler ( Int threads,
String outMeasurementFile,
Bool useConditionVariable )

Definition at line 16 of file ThreadScheduler.cpp.

◆ ~ThreadScheduler()

ThreadScheduler::~ThreadScheduler ( )
virtual

Definition at line 26 of file ThreadScheduler.cpp.

Member Function Documentation

◆ finishSchedule()

void ThreadScheduler::finishSchedule ( const Edges & inEdges)
protected

Definition at line 35 of file ThreadScheduler.cpp.

◆ scheduleTask()

void ThreadScheduler::scheduleTask ( int thread,
CPS::Task::Ptr task )
protected

Definition at line 31 of file ThreadScheduler.cpp.

◆ step()

void ThreadScheduler::step ( Real time,
Int timeStepCount )
virtual

Performs a single simulation step.

Implements DPsim::Scheduler.

Definition at line 67 of file ThreadScheduler.cpp.

◆ stop()

void ThreadScheduler::stop ( )
virtual

Called on simulation stop to reliably clean up e.g. running helper threads.

Reimplemented from DPsim::Scheduler.

Definition at line 81 of file ThreadScheduler.cpp.

Member Data Documentation

◆ mNumThreads

Int DPsim::ThreadScheduler::mNumThreads
protected

Definition at line 30 of file ThreadScheduler.h.


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