ACM Transactions on Computer Systems · 1996 · 118 citations · 35 references
ComputingComputer EngineeringComputer ScienceData StructuresMessage PassingParallel ComputingBarrier SynchronizationDistributed ComputingDistributed Memory SystemsParallel Data StructuresShared-memory MultiprocessingShared-memory ParallelismConcurrent Tree Data StructuresCountersDistributed Data StructuresDistributed MemoryDistributed Shared MemoryMessage Passing ArchitecturesProducer-consumer BuffersShared-memory Data Structures
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 (log 2 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.
35
Optimization by Simulated Annealing
Scott Kirkpatrick, C. D. Gelatt, M.P. Vecchi · Science · 1983 · 44.6K citations
Sorting networks and their applications
Kenneth E. Batcher · 1968 · 2.4K citations
Maurice Herlihy · ACM Transactions on Programming Languages and Systems · 1991 · 1.8K citations · Full text