Scalable concurrent counting

  • Authors:
  • Maurice Herlihy;Beng-Hong Lim;Nir Shavit

  • Affiliations:
  • Brown Univ., Providence, RI;Massachusetts Institute of Technology, Cambridge;Tel-Aviv Univ., Tel-Aviv, Israel

  • Venue:
  • ACM Transactions on Computer Systems (TOCS)
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

Abstract

The notion of counting is central to a number of basic multiprocessor coordination problems, such as dynamic load balancing, barrier synchronization, and concurrent data structure design. We investigate the scalability of a variety of counting techniques for large-scale multiprocessors. We compare counting techniques based on: (1) spin locks, (2) message passing, (3) distributed queues, (4) software combining trees, and (5) counting networks. Our comparison is based on a series of simple benchmarks on a simulated 64-processor Alewife machine, a distributed-memory multiprocessor currently under development at MIT. Although locking techniques are known to perform well on small-scale, bus-based multiprocessors, serialization limits performance, and contention can degrade performance. Both counting networks and combining trees outperform the other methods substantially by avoiding serialization and alleviating contention, although combining-tree throughput is more sensitive to variations in load. A comparison of shared-memory and message-passing implementations of counting networks and combining trees shows that message-passing implementations have substantially higher throughput.