Multi-Queues Can Be State-of-the-Art Priority Schedulers

09/02/2021
by   Anastasiia Postnikova, et al.
0

Designing and implementing efficient parallel priority schedulers is an active research area. An intriguing proposed design is the Multi-Queue: given n threads and m≥ n distinct priority queues, task insertions are performed uniformly at random, while, to delete, a thread picks two queues uniformly at random, and removes the observed task of higher priority. This approach scales well, and has probabilistic rank guarantees: roughly, the rank of each task removed, relative to remaining tasks in all other queues, is O(m) in expectation. Yet, the performance of this pattern is below that of well-engineered schedulers, which eschew theoretical guarantees for practical efficiency. We investigate whether it is possible to design and implement a Multi-Queue-based task scheduler that is both highly efficient and has analytical guarantees. We propose a new variant called the Stealing Multi-Queue (SMQ), a cache-efficient variant of the Multi-Queue, which leverages both queue affinity – each thread has a local queue, from which tasks are usually removed; but, with some probability, threads also attempt to steal higher-priority tasks from the other queues – and task batching, that is, the processing of several tasks in a single insert / delete step. These ideas are well-known for task scheduling without priorities; our theoretical contribution is showing that, despite relaxations, this design can still provide rank guarantees, which in turn implies bounds on total work performed. We provide a general SMQ implementation that can surpass state-of-the-art schedulers such as Galois and PMOD in terms of performance on popular graph-processing benchmarks. Notably, the performance improvement comes mainly from the superior rank guarantees provided by our scheduler, confirming that analytically-reasoned approaches can still provide performance improvements for priority task scheduling.

READ FULL TEXT

page 19

page 20

page 22

page 28

page 29

page 32

page 33

page 34

research
08/25/2019

A parallel priority queue with fast updates for GPU architectures

The high computational throughput of modern graphics processing units (G...
research
06/20/2018

A Faster External Memory Priority Queue with DecreaseKeys

A priority queue is a fundamental data structure that maintains a dynami...
research
09/26/2016

An Infinite Dimensional Model for A Single Server Priority Queue

We consider a Markovian single server queue in which customers are preem...
research
05/15/2022

Dynamic Ready Queue Based Process Priority Scheduling Algorithm

CPU scheduling is the reason behind the performance of multiprocessing a...
research
12/07/2016

An Infinite Dimensional Model for a Many Server Priority Queue

We consider a Markovian many server queueing system in which customers a...
research
03/10/2020

Fissile Locks

Classic test-and-test (TS) mutual exclusion locks are simple, and enjoy ...
research
05/08/2019

Algorithms for Grey-Weighted Distance Computations

With the increasing size of datasets and demand for real time response f...

Please sign up or login with your details

Forgot password? Click here to reset