High-performance computer architecture
High-performance computer architecture
Efficient synchronization primitives for large-scale cache-coherent multiprocessors
ASPLOS III Proceedings of the third international conference on Architectural support for programming languages and operating systems
Adaptive backoff synchronization techniques
ISCA '89 Proceedings of the 16th annual international symposium on Computer architecture
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
A simple and correct shared-queue algorithm using compare-and-swap
Proceedings of the 1990 ACM/IEEE conference on Supercomputing
Simple, fast, and practical non-blocking and blocking concurrent queue algorithms
PODC '96 Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing
Bounded Concurrent Time-Stamping
SIAM Journal on Computing
Practical implementations of non-blocking synchronization primitives
PODC '97 Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Specifying Concurrent Program Modules
ACM Transactions on Programming Languages and Systems (TOPLAS)
Combining funnels: a dynamic approach to software combining
Journal of Parallel and Distributed Computing
Computer Architecture and Parallel Processing
Computer Architecture and Parallel Processing
A Nonblocking Algorithm for Shared Queues Using Compare-and-Swap
IEEE Transactions on Computers
A scalable lock-free stack algorithm
Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures
Nonblocking memory management support for dynamic-sized data structures
ACM Transactions on Computer Systems (TOCS)
Supporting increment and decrement operations in balancing networks
STACS'99 Proceedings of the 16th annual conference on Theoretical aspects of computer science
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Derivation of a Scalable Lock-Free Stack Algorithm
Electronic Notes in Theoretical Computer Science (ENTCS)
FastForward for efficient pipeline parallelism: a cache-optimized concurrent lock-free queue
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
Trace-based Derivation of a Lock-Free Queue Algorithm
Electronic Notes in Theoretical Computer Science (ENTCS)
Distributed computing and the multicore revolution
ACM SIGACT News
Verifying Michael and Scott's lock-free queue algorithm using trace reduction
CATS '08 Proceedings of the fourteenth symposium on Computing: the Australasian theory - Volume 77
Communications of the ACM - Security in the Browser
Non-blocking Array-Based Algorithms for Stacks and Queues
ICDCN '09 Proceedings of the 10th International Conference on Distributed Computing and Networking
A scalable lock-free stack algorithm
Journal of Parallel and Distributed Computing
OPODIS'07 Proceedings of the 11th international conference on Principles of distributed systems
Data structures in the multicore age
Communications of the ACM
Aether: a scalable approach to logging
Proceedings of the VLDB Endowment
Cache-aware lock-free queues for multiple producers/consumers and weak memory consistency
OPODIS'10 Proceedings of the 14th international conference on Principles of distributed systems
An adaptive technique for constructing robust and high-throughput shared objects
OPODIS'10 Proceedings of the 14th international conference on Principles of distributed systems
Wait-free queues with multiple enqueuers and dequeuers
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
A lock-free algorithm for concurrent bags
Proceedings of the twenty-third annual ACM symposium on Parallelism in algorithms and architectures
PLP: page latch-free shared-everything OLTP
Proceedings of the VLDB Endowment
Fast and scalable rendezvousing
DISC'11 Proceedings of the 25th international conference on Distributed computing
CAFÉ: scalable task pools with adjustable fairness and contention
DISC'11 Proceedings of the 25th international conference on Distributed computing
Toward high-throughput algorithms on many-core architectures
ACM Transactions on Architecture and Code Optimization (TACO) - HIPEAC Papers
Constructing shared objects that are both robust and high-throughput
DISC'06 Proceedings of the 20th international conference on Distributed Computing
A methodology for creating fast wait-free data structures
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
On the implementation of concurrent objects
Dependable and Historic Computing
Scalability of write-ahead logging on multicore and multisocket hardware
The VLDB Journal — The International Journal on Very Large Data Bases
SALSA: scalable and low synchronization NUMA-aware algorithm for producer-consumer pools
Proceedings of the twenty-fourth annual ACM symposium on Parallelism in algorithms and architectures
How to prove algorithms linearisable
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
An efficient unbounded lock-free queue for multi-core systems
Euro-Par'12 Proceedings of the 18th international conference on Parallel Processing
Fast concurrent queues for x86 processors
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
Scalable and dynamically balanced shared-everything OLTP with physiological partitioning
The VLDB Journal — The International Journal on Very Large Data Bases
Scalable lock-free FIFO queues using efficient elimination techniques
Proceedings of the 5th ACM COMPUTE Conference: Intelligent & scalable system technologies
Automatic linearizability proofs of concurrent objects with cooperating updates
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Aspect-Oriented linearizability proofs
CONCUR'13 Proceedings of the 24th international conference on Concurrency Theory
Eliminating unscalable communication in transaction processing
The VLDB Journal — The International Journal on Very Large Data Bases
Hi-index | 0.02 |
This paper shows for the first time that elimination, a scaling technique formerly applied only to counters and LIFO structures, can be applied to FIFO data structures, specifically, to linearizable FIFO queues. We show how to transform existing nonscalable FIFO queue implementations into scalable implementations using the elimination technique, while preserving lock-freedom and linearizablity.We apply our transformation to the FIFO queue algorithm of Michael and Scott, which is included in the Java™ Concurrency Package. Empirical evaluation on a state-of-the-art CMT multiprocessor chip shows that by using elimination as a backoff technique for the Michael and Scott queue algorithm, we can achieve comparable performance at low loads, and improved scalability as load increases.