Counting networks
- 1 September 1994
- journal article
- Published by Association for Computing Machinery (ACM) in Journal of the ACM
- Vol. 41 (5) , 1020-1048
- https://doi.org/10.1145/185675.185815
Abstract
Many fundamental multi-processor coordination problems can be expressed as counting problems : Processes must cooperate to assign successive values from a given range, such as addresses in memory or destinations on an interconnection network. Conventional solutions to these problems perform poorly because of synchronization bottlenecks and high memory contention. Motivated by observations on the behavior of sorting networks, we offer a new approach to solving such problems, by introducing counting networks , a new class of networks that can be used to count. We give two counting network constructions, one of depth log n (1 + log n )/2 using n log (1 + log n )/4 “gates,” and a second of depth log 2 n using n log 2 n /2 gates. These networks avoid the sequential bottlenecks inherent to earlier solutions and substantially lower the memory contention. Finally, to show that counting networks are not merely mathematical creatures, we provide experimental evidence that they outperform conventional synchronization techniques under a variety of circumstances.Keywords
This publication has 6 references indexed in Scilit:
- The periodic balanced sorting networkJournal of the ACM, 1989
- Algorithms for parallel memory allocationInternational Journal of Parallel Programming, 1988
- Two algorithms for barrier synchronizationInternational Journal of Parallel Programming, 1988
- A parallel-design distributed-implementation (PDDI) general-purpose computerTheoretical Computer Science, 1984
- Dynamic decentralized cache schemes for mimd parallel processorsPublished by Association for Computing Machinery (ACM) ,1984
- Basic Techniques for the Efficient Coordination of Very Large Numbers of Cooperating Sequential ProcessorsACM Transactions on Programming Languages and Systems, 1983