Added lookahead scheduler.

Most scheduler now use estimated finish time instead of predicted execution time.
This commit is contained in:
Matthias
2017-07-26 18:56:44 +02:00
parent b93d8565a0
commit 19d695d4d8
13 changed files with 468 additions and 110 deletions
@@ -113,6 +113,7 @@ protected:
wepMap_t wepMap;
bool simulationMode;
double cummulativePredictionTime = 0;
std::map<resource::ComputingResource*, std::vector<std::shared_ptr<SchedulingDecision>>> scheduledTasks;
protected:
// Hook functions for AbstractScheduler functions below to allow customisation of common functionality
@@ -121,6 +122,8 @@ protected:
virtual void _notifyWEPUpdate(WepMapEntry& wepe, std::set<wep::AtomicWepNode*> readyToExecute, std::unique_lock<std::mutex>& schedulerLock) {}
virtual void _notifySchedulingDecisionStatusUpdate(WepMapEntry& wepe, std::shared_ptr<SchedulingDecision> sd, std::unique_lock<std::mutex>& schedulerLock) {}
virtual double _getResourceEstimatedAvailableTime(resource::ComputingResource* resource);
// Convenience functions for passing a scheduling decision to the execution layer.
bool executeSchedulingDecision(WepMapEntry& wepe, std::shared_ptr<SchedulingDecision> sd, std::unique_lock<std::mutex>& schedulerLock) noexcept;