TY - CONF
T1 - Reactive diffracting trees
AU - Della-Libera, Giovanni
AU - Shavit, Nir
N1 - Funding Information:
1A preliminary version of this paper appeared in the Proceedings of the 9th Annual Symposium on Parallel Algorithms and Architectures (SPAA), Newport, RI, pp. 24 32, June 1997. Giovanni Della-Libera’s work was supported by NSF Grant CCR-9225124, AFOSR-ONR Grant F49620-94-1-0199, and DARPA Grant F19628-95-C-0118. His current address is: The Microsoft Corporation, One Microsoft Way, Redmond, WA 98052. Nir Shavit’s work was supported by NSF Grant CCR-9520298, Grant 03610882 from the Israel Science Foundation, and a grant from the Israel Ministry of Science. His current address is: Sun Microsystems Laboratories, One Network Drive, Burlington, MA 01803-0902.
PY - 1997
Y1 - 1997
N2 - Shared counters are concurrent objects which provide a fetch-and-increment operation on a distributed system and can be used to implement a variety of data structures, such as barriers, pools, stacks, and priority queues. Diffracting trees are novel data structures that provide an effective, high throughput and low contention, shared counter construction. Under high loads, their performance has been shown to surpass all known counter implementations. Unfortunately, Diffracting trees of differing depths are optimal for limited load ranges, and a deep tree that performs well under high load performs rather poorly when the load is very low. To overcome this drawback, we introduce the Reactive Diffracting Tree, a novel Diffracting tree construction which can grow and shrink as necessary to better handle the changing access patterns and memory layout of the machine on which it runs. It provides true scalability and locality by dynamically `morphing' itself all the way from a simple queue-lock based counter under low load, through a range of increasingly deeper/shallower Diffracting trees as the load varies. Empirical evidence, collected on a 32-node Alewife cache-coherent multiprocessor and the Proteus distributed shared-memory simulator, shows that the reactive diffracting tree provides throughput within a constant factor of optimal depth Diffracting trees at all load levels. It also proves to be an effective competitor with known randomized load balancing algorithms in producer/consumer applications.
AB - Shared counters are concurrent objects which provide a fetch-and-increment operation on a distributed system and can be used to implement a variety of data structures, such as barriers, pools, stacks, and priority queues. Diffracting trees are novel data structures that provide an effective, high throughput and low contention, shared counter construction. Under high loads, their performance has been shown to surpass all known counter implementations. Unfortunately, Diffracting trees of differing depths are optimal for limited load ranges, and a deep tree that performs well under high load performs rather poorly when the load is very low. To overcome this drawback, we introduce the Reactive Diffracting Tree, a novel Diffracting tree construction which can grow and shrink as necessary to better handle the changing access patterns and memory layout of the machine on which it runs. It provides true scalability and locality by dynamically `morphing' itself all the way from a simple queue-lock based counter under low load, through a range of increasingly deeper/shallower Diffracting trees as the load varies. Empirical evidence, collected on a 32-node Alewife cache-coherent multiprocessor and the Proteus distributed shared-memory simulator, shows that the reactive diffracting tree provides throughput within a constant factor of optimal depth Diffracting trees at all load levels. It also proves to be an effective competitor with known randomized load balancing algorithms in producer/consumer applications.
UR - http://www.scopus.com/inward/record.url?scp=0030652540&partnerID=8YFLogxK
U2 - 10.1145/258492.258495
DO - 10.1145/258492.258495
M3 - ???researchoutput.researchoutputtypes.contributiontoconference.paper???
AN - SCOPUS:0030652540
SP - 24
EP - 32
T2 - Proceedings of the 1997 9th Annual ACM Symposium on Parallel Algorithms and Architectures, SPAA
Y2 - 22 June 1997 through 25 June 1997
ER -