Distributed counting at maximum speed

1 The Problem The importance of distributed data structures for sharing a high data access load among the processors of a network with no shared memory has been widely recognized in the past few years. Each processor holds some share of all the data, and access operations are triggered spontaneously at any processor (by a human user or by a running application program). The theoretical interest in the design and analysis of distributed data structures has been fueled by the fact that unlike for distributed algorithms, processors in distributed data structures do not primarily cooperate to solve a problem, but rather compete against each other: The operation triggered at one processor may (adversely) aaect the result of the operation triggered at some other processor. For instance, whenever two processors simultaneously try to delete the minimum in a priority queue (used in a distributed branch-and-bound computation), only one of them can succeed; the other has to go for the second smallest element. In particular, distributed solutions have been proposed for counting, a basic step in virtually any computation. A distributed counter is a variable that is common to all processors in the network, and that supports an atomic test-and-increment operation. Its implementation must aim at avoiding the hot spot problem of a central solution, and at keeping the number of exchanged messages small. Early proposals towards this end suggest to combine requests in a tree YTL86, GVW89]. To avoid having a processor play the governing role of the root in combining trees, counting networks (topologically identical to sorting networks, but with balancing elements instead of compare-and-exchange modules) have been proposed AHS91, AHS94] and developed further AA95, AA92, BM96, KP92]. Applications often require that a counting scheme be linearizable HW90] in the sense that whenever the rst of two operations nishes before the second starts, the rst gets a lower counter value than the second. Counting networks are not linearizable, but merely satisfy an elementary soundness condition: Whenever no operation is active in the system (it is in a quiescent state), the mechanism has delivered consecutive counter values, with none missing and none delivered twice. They can be made linearizable HSW91, HSW96], with a signiicant extra eeort that makes them by far less eecient (for restricted machine models, LSST96, MPT97] show that counting networks are linearizable). The literature on counting networks reeects the substantial eeort that has been invested in the search …

[1]  Maurice Herlihy,et al.  Counting networks and multi-processor coordination , 1991, STOC '91.

[2]  Maurice Herlihy,et al.  Counting networks , 1994, JACM.

[3]  Mary K. Vernon,et al.  Efficient synchronization primitives for large-scale cache-coherent multiprocessors , 1989, ASPLOS III.

[4]  E. Upfal A Steady State Analysis of Diiracting Trees , 1997 .

[5]  Marios Mavronicolas,et al.  The strength of counting networks , 1996, PODC '96.

[6]  Marina Papatriantafilou,et al.  The impact of timing on linearizability in counting networks , 1997, Proceedings 11th International Parallel Processing Symposium.

[7]  Hagit Attiya,et al.  Counting networks with arbitrary fan-out , 1992, SODA '92.

[8]  Nir Shavit,et al.  Elimination Trees and the Construction of Pools and Stacks , 1997, Theory of Computing Systems.

[9]  C. Greg Plaxton,et al.  Small-depth counting networks , 1992, STOC '92.

[10]  Nancy A. Lynch,et al.  Counting networks are practically linearizable , 1996, PODC '96.

[11]  Nir Shavit,et al.  Reactive Diiracting Trees , 1997 .

[12]  Roger Wattenhofer,et al.  An Inherent Bottleneck in Distributed Counting , 1998, J. Parallel Distributed Comput..

[13]  Maurice Herlihy,et al.  Scalable concurrent counting , 1995, TOCS.

[14]  Nian-Feng Tzeng,et al.  Distributing Hot-Spot Addressing in Large-Scale Multiprocessors , 1987, IEEE Transactions on Computers.

[15]  Nir Shavityz,et al.  Diiracting Trees , 1994 .

[16]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.