DPsim
|
Public Member Functions | |
SequentialScheduler (String outMeasurementFile=String(), CPS::Logger::Level logLevel=CPS::Logger::Level::info) | |
void | createSchedule (const CPS::Task::List &tasks, const Edges &inEdges, const Edges &outEdges) |
Creates the schedule for the given dependency graph. | |
void | step (Real time, Int timeStepCount) |
Performs a single simulation step. | |
void | stop () |
Called on simulation stop to reliably clean up e.g. running helper threads. | |
![]() | |
Scheduler (CPS::Logger::Level logLevel=CPS::Logger::Level::off) | |
void | resolveDeps (CPS::Task::List &tasks, Edges &inEdges, Edges &outEdges) |
TaskTime | getAveragedMeasurement (CPS::Task::Ptr task) |
Additional Inherited Members | |
![]() | |
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 CPS::AttributeBase::Ptr | external |
![]() | |
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) |
![]() | |
static void | levelSchedule (const CPS::Task::List &tasks, const Edges &inEdges, const Edges &outEdges, std::vector< CPS::Task::List > &levels) |
![]() | |
CPS::Task::Ptr | mRoot |
CPS::Logger::Level | mLogLevel |
Log level. | |
CPS::Logger::Log | mSLog |
Logger. | |
Definition at line 19 of file SequentialScheduler.h.
|
inline |
Definition at line 21 of file SequentialScheduler.h.
|
virtual |
Creates the schedule for the given dependency graph.
Implements DPsim::Scheduler.
Definition at line 21 of file SequentialScheduler.cpp.
|
virtual |
Performs a single simulation step.
Implements DPsim::Scheduler.
Definition at line 32 of file SequentialScheduler.cpp.
|
virtual |
Called on simulation stop to reliably clean up e.g. running helper threads.
Reimplemented from DPsim::Scheduler.
Definition at line 47 of file SequentialScheduler.cpp.