Class TaskRescheduler

Inheritance Relationships

Derived Types

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