On maintaining dynamic information in a concurrent environment
SIAM Journal on Computing
Distributing Hot-Spot Addressing in Large-Scale Multiprocessors
IEEE Transactions on Computers
Hierarchical correctness proofs for distributed algorithms
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
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
A software instruction counter
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
ACM Transactions on Programming Languages and Systems (TOPLAS)
Counting networks and multi-processor coordination
STOC '91 Proceedings of the twenty-third annual ACM symposium on Theory of computing
Process coordination with fetch-and-increment
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
A simple load balancing scheme for task allocation in parallel machines
SPAA '91 Proceedings of the third annual ACM symposium on Parallel algorithms and architectures
Low contention linearizable counting
SFCS '91 Proceedings of the 32nd annual symposium on Foundations of computer science
STOC '92 Proceedings of the twenty-fourth annual ACM symposium on Theory of computing
Counting networks with arbitrary fan-out
SODA '92 Proceedings of the third annual ACM-SIAM symposium on Discrete algorithms
Low contention load balancing on large-scale multiprocessors
SPAA '92 Proceedings of the fourth annual ACM symposium on Parallel algorithms and architectures
A dynamic distributed load balancing algorithm with provable good performance
SPAA '93 Proceedings of the fifth annual ACM symposium on Parallel algorithms and architectures
Contention in shared memory algorithms
STOC '93 Proceedings of the twenty-fifth annual ACM symposium on Theory of computing
Diffracting trees (preliminary version)
SPAA '94 Proceedings of the sixth annual ACM symposium on Parallel algorithms and architectures
Reactive synchronization algorithms for multiprocessors
ASPLOS VI Proceedings of the sixth international conference on Architectural support for programming languages and operating systems
Coins, weights and contention in balancing networks
PODC '94 Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing
A combinatorial treatment of balancing networks
PODC '94 Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing
Elimination trees and the construction of pools and stacks: preliminary version
Proceedings of the seventh annual ACM symposium on Parallel algorithms and architectures
A logarithmic depth counting network
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
A steady state analysis of diffracting trees (extended abstract)
Proceedings of the eighth annual ACM symposium on Parallel algorithms and architectures
ACM Transactions on Programming Languages and Systems (TOPLAS)
Distributed Algorithms
Advanced Computer Architecture: Parallelism,Scalability,Programmability
Advanced Computer Architecture: Parallelism,Scalability,Programmability
The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors
IEEE Transactions on Parallel and Distributed Systems
PROTEUS: A HIGH-PERFORMANCE PARALLEL-ARCHITECTURE SIMULATOR
PROTEUS: A HIGH-PERFORMANCE PARALLEL-ARCHITECTURE SIMULATOR
THE MIT ALEWIFE MACHINE: A LARGE-SCALE DISTRIBUTED-MEMORY MULTIPROCESSOR
THE MIT ALEWIFE MACHINE: A LARGE-SCALE DISTRIBUTED-MEMORY MULTIPROCESSOR
Algorithms for Scalable Synchronization on Shared-Memory Multiproceessors
Algorithms for Scalable Synchronization on Shared-Memory Multiproceessors
Contention in balancing networks resolved (extended abstract)
PODC '98 Proceedings of the seventeenth annual ACM symposium on Principles of distributed computing
Combining funnels: a new twist on an old tale…
PODC '98 Proceedings of the seventeenth annual ACM symposium on Principles of distributed computing
Scalable concurrent priority queue algorithms
Proceedings of the eighteenth annual ACM symposium on Principles of distributed computing
Applications of Probabilistic Quorums to Iterative Algorithms
ICDCS '01 Proceedings of the The 21st International Conference on Distributed Computing Systems
Ordered Multicast and Distributed Swap
ACM SIGOPS Operating Systems Review
A scalable lock-free stack algorithm
Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures
The counting pyramid: an adaptive distributed counting scheme
Journal of Parallel and Distributed Computing
Distributed Computing
Linear Lower Bounds on Real-World Implementations of Concurrent Objects
FOCS '05 Proceedings of the 46th Annual IEEE Symposium on Foundations of Computer Science
Randomized registers and iterative algorithms
Distributed Computing
Adaptive work stealing with parallelism feedback
Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
Self-tuning reactive diffracting trees
Journal of Parallel and Distributed Computing
Cloud control with distributed rate limiting
Proceedings of the 2007 conference on Applications, technologies, architectures, and protocols for computer communications
A scalable lock-free stack algorithm
Journal of Parallel and Distributed Computing
Supporting increment and decrement operations in balancing networks
STACS'99 Proceedings of the 16th annual conference on Theoretical aspects of computer science
OPODIS'07 Proceedings of the 11th international conference on Principles of distributed systems
Theoretical Computer Science
Scalable producer-consumer pools based on elimination-diffraction trees
Euro-Par'10 Proceedings of the 16th international Euro-Par conference on Parallel processing: Part II
Scalable flat-combining based synchronous queues
DISC'10 Proceedings of the 24th international conference on Distributed computing
Data structures in the multicore age
Communications of the ACM
Fast and scalable rendezvousing
DISC'11 Proceedings of the 25th international conference on Distributed computing
Constructing shared objects that are both robust and high-throughput
DISC'06 Proceedings of the 20th international conference on Distributed Computing
Self-tuning reactive distributed trees for counting and balancing
OPODIS'04 Proceedings of the 8th international conference on Principles of Distributed Systems
Revisiting the combining synchronization technique
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
Scalable lock-free FIFO queues using efficient elimination techniques
Proceedings of the 5th ACM COMPUTE Conference: Intelligent & scalable system technologies
Reducing contention through priority updates
Proceedings of the twenty-fifth annual ACM symposium on Parallelism in algorithms and architectures
Elimination Trees and the Construction of Pools and Stacks
Theory of Computing Systems
Hi-index | 0.02 |
Shared counters are among the most basic coordination structures in multiprocessor conputation, with applications ranging from barrier synchronization to concurrent-data-structure design. This article introduces diffracting trees, novel data structures for share counting and load balancing in a distributed/parallel environment. Empirical evidence, collected on a simulated distributed shared-memory machine and several simulated message-passing architectures, shows that diffracting trees scale better and are more robust than both combining trees and counting networks, currently the most effective known methods for implementing concurrent counters in software. The use of a randomized coordination method together with a combinatorial data structure overcomes the resiliency drawbacks of combining trees. Our simulations show that to handle the same load, diffracting trees and counting networks should have a similar width w, yet the depth of a diffracting tree is O(log w), whereas counting networks have depth O(log2 w). Diffracting trees have already been used to implement highly efficient producer/consumer queues, and we believe diffraction will prove to be an effective alternative paradigm to combining and queue-locking in the design of many concurrent data structures.