The concurrency literature presents a number of approaches for building non-blocking, FIFO, multiple-producer and multiple-consumer (MPMC) queues. However, only a fraction of them have high performance. In addition, many queue designs, such as LCRQ, trade memory usage for better performance. The recently proposed SCQ design achieves both memory efficiency as well as excellent performance. Unfortunately, both LCRQ and SCQ are only lock-free. On the other hand, existing wait-free queues are either not very performant or suffer from potentially unbounded memory usage. Strictly described, the latter queues, such as Yang & Mellor-Crummey's (YMC) queue, forfeit wait-freedom as they are blocking when memory is exhausted. We present a wait-free q...
The throughput of concurrent priority queues is pivotal to multiprocessor applications such as discr...
Queue-based spin locks allow programs with busy-wait syn-chronization to scale to very large multipr...
With the growing use of multiprocessors, data structures that support concurrent operations have be...
Link to published version: http://portal.acm.org/ft_gateway.cfm?id=248106&type=pdf&coll=portal&dl=AC...
Core-to-core communication is critical to the effective use of multi-core processors. A number of so...
In applications such as sharded data processing systems, data flow programming and load sharing appl...
As core counts increase and as heterogeneity becomes more common in parallel computing, we face the ...
A ring buffer or cyclical queue is a First In, First Out (FIFO) queue that stores elements on a fixe...
Multiserver queueing systems are found at the core of a wide variety of practical systems. Many impo...
The use of efficient synchronization mechanisms is crucial for implementing fine grained parallel pr...
Link to published version: http://portal.acm.org/ft_gateway.cfm?id=379566&type=pdf&coll=portal&dl=AC...
We present an efficient and practical lock-free implementation of a concurrent priority queue that i...
We present a new lock-free multiple-producer and multiple-consumer (MPMC) FIFO queue design which is...
A Large instruction window is a key requirement to exploit greater Instruction Level Parallelism in ...
The load-store queue (LQ-SQ) of modem superscalar processors is responsible for keeping the order of...
The throughput of concurrent priority queues is pivotal to multiprocessor applications such as discr...
Queue-based spin locks allow programs with busy-wait syn-chronization to scale to very large multipr...
With the growing use of multiprocessors, data structures that support concurrent operations have be...
Link to published version: http://portal.acm.org/ft_gateway.cfm?id=248106&type=pdf&coll=portal&dl=AC...
Core-to-core communication is critical to the effective use of multi-core processors. A number of so...
In applications such as sharded data processing systems, data flow programming and load sharing appl...
As core counts increase and as heterogeneity becomes more common in parallel computing, we face the ...
A ring buffer or cyclical queue is a First In, First Out (FIFO) queue that stores elements on a fixe...
Multiserver queueing systems are found at the core of a wide variety of practical systems. Many impo...
The use of efficient synchronization mechanisms is crucial for implementing fine grained parallel pr...
Link to published version: http://portal.acm.org/ft_gateway.cfm?id=379566&type=pdf&coll=portal&dl=AC...
We present an efficient and practical lock-free implementation of a concurrent priority queue that i...
We present a new lock-free multiple-producer and multiple-consumer (MPMC) FIFO queue design which is...
A Large instruction window is a key requirement to exploit greater Instruction Level Parallelism in ...
The load-store queue (LQ-SQ) of modem superscalar processors is responsible for keeping the order of...
The throughput of concurrent priority queues is pivotal to multiprocessor applications such as discr...
Queue-based spin locks allow programs with busy-wait syn-chronization to scale to very large multipr...
With the growing use of multiprocessors, data structures that support concurrent operations have be...