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

by   Anastasiia Postnikova, et al.

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.



There are no comments yet.


page 19

page 20

page 22

page 28

page 29

page 32

page 33

page 34


A parallel priority queue with fast updates for GPU architectures

The high computational throughput of modern graphics processing units (G...

A Faster External Memory Priority Queue with DecreaseKeys

A priority queue is a fundamental data structure that maintains a dynami...

An Infinite Dimensional Model for A Single Server Priority Queue

We consider a Markovian single server queue in which customers are preem...

Dynamic Ready Queue Based Process Priority Scheduling Algorithm

CPU scheduling is the reason behind the performance of multiprocessing a...

Fissile Locks

Classic test-and-test (TS) mutual exclusion locks are simple, and enjoy ...

Enabling Work-conserving Bandwidth Guarantees for Multi-tenant Datacenters via Dynamic Tenant-Queue Binding

Today's cloud networks are shared among many tenants. Bandwidth guarante...

Algorithms for Grey-Weighted Distance Computations

With the increasing size of datasets and demand for real time response f...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.