Diffracting trees
- 1 November 1996
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Computer Systems
- Vol. 14 (4) , 385-428
- https://doi.org/10.1145/235543.235546
Abstract
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 widthw, yet the depth of a diffracting tree isO(logw), whereas counting networks have depthO(log2w). 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.Keywords
This publication has 12 references indexed in Scilit:
- Reactive synchronization algorithms for multiprocessorsPublished by Association for Computing Machinery (ACM) ,1994
- Wait-free synchronizationACM Transactions on Programming Languages and Systems, 1991
- Synchronization algorithms for shared-memory multiprocessorsComputer, 1990
- The performance of spin lock alternatives for shared-memory multiprocessorsIEEE Transactions on Parallel and Distributed Systems, 1990
- Distributing Hot-Spot Addressing in Large-Scale MultiprocessorsIEEE Transactions on Computers, 1987
- Hierarchical correctness proofs for distributed algorithmsPublished by Association for Computing Machinery (ACM) ,1987
- On Maintaining Dynamic Information in a Concurrent EnvironmentSIAM Journal on Computing, 1986
- Database Applications of the FETCH-AND-ADD InstructionIEEE Transactions on Computers, 1984
- Optimization by Simulated AnnealingScience, 1983
- Basic Techniques for the Efficient Coordination of Very Large Numbers of Cooperating Sequential ProcessorsACM Transactions on Programming Languages and Systems, 1983