Class TaskRescheduler
Defined in File TaskRescheduler.hpp
Inheritance Relationships
Derived Types
public combigrid::RebalancingTaskRescheduler(Class RebalancingTaskRescheduler)public combigrid::StaticTaskRescheduler(Class StaticTaskRescheduler)
Class Documentation
-
class TaskRescheduler
Interface of a task re-scheduler.
Subclassed by combigrid::RebalancingTaskRescheduler, combigrid::StaticTaskRescheduler
Public Functions
-
virtual std::vector<std::pair<LevelVector, int>> eval(const std::map<LevelVector, int> &levelVectorToProcessGroupIndex, const std::map<LevelVector, unsigned long> &levelVectorToTaskDuration, LoadModel *loadModel) = 0
Calculates changes in task distribution with the goal of a more balanced runtime of process groups.
- Parameters:
levelVectorToProcessGroupIndex – The current task distribution.
levelVectorToTaskDuration – The last measured durations of the tasks run function.
loadModel – The load model to use for the prognosis of future task loads.
- Returns:
Vector of pair with level vector and process group. To realize the calculated optimized task distribution; the task (defined by its level vector) has to be moved to the process group (defined by its process group id).
-
virtual ~TaskRescheduler() = default
-
virtual std::vector<std::pair<LevelVector, int>> eval(const std::map<LevelVector, int> &levelVectorToProcessGroupIndex, const std::map<LevelVector, unsigned long> &levelVectorToTaskDuration, LoadModel *loadModel) = 0