| | |
Summary: Counting Networks1
James Aspnes y
Maurice Herlihy z
Nir Shavit x
August 4, 1993
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 o er 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 construc-
tions, one of depth logn(1 + logn)=2 using n logn(1 + logn)=4 \gates," and a
second of depth log2
n using n log2
n=2 gates. These networks avoid the sequen-
tial bottlenecks inherent to earlier solutions, and substantially lower the memory
contention.
|