Work-stealing with Configurable Scheduling Strategies
Poster (konferens), 2013
Work-stealing systems are typically oblivious to the nature of the
tasks they are scheduling. They do not know or take into account
how long a task will take to execute or how many subtasks it will
spawn. Moreover, task execution order is typically determined by
an underlying task storage data structure, and cannot be changed.
There are thus possibilities for optimizing task parallel executions
by providing information on specific tasks and their preferred execution
order to the scheduling system.
We investigate generalizations of work-stealing and introduce
a framework enabling applications to dynamically provide hints
on the nature of specific tasks using scheduling strategies. Strategies
can be used to independently control both local task execution
and steal order. Strategies allow optimizations on specific tasks, in
contrast to more conventional scheduling policies that are typically
global in scope. Strategies are composable and allow different, specific
scheduling choices for different parts of an application simultaneously.
We have implemented a work-stealing system based on
our strategy framework. A series of benchmarks demonstrates beneficial
effects that can be achieved with scheduling strategies.