Content area
Many algorithms converge more quickly when they execute tasks in a specific order. Scaling such algorithms to a large number of cores requires a well-designed scheduler. While many schedulers have been proposed, a general classification of their design space is still lacking. We survey prior work and propose three dimensions for the design of concurrent priority schedulers: the degree of synchrony, the drift of priorities, and the underlying data structure.
With our observations, we present a taxonomy that guides the design of schedulers. In addition, we propose the Multi Bucket Queue (MBQ) which targets a promising unexplored point in the design space for concurrent priority scheduling. The MBQ leverages the strengths of the Multi Queue and Multi-Level Bucket Queue, while avoiding their weaknesses, yielding a scheduler that keeps threads busy and running useful work, yet with high-efficiency queue operations.
