TY - JOUR
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 - 2000/7
Y1 - 2000/7
N2 - A shared counter is a concurrent object that provides a fetch-and-increment operation in a distributed system. Recently, diffracting trees have been introduced as an efficient way of implementing shared counters in heavily loaded distributed systems. Diffracting trees dynamically partition processors into small groups that can access a collection of disjoint local counters quickly in a globally coordinated way. Their empirical performance under heavy load surpasses all other shared counter implementations. However, diffracting trees of any particular depth are optimal for only a limited load range. Thus, there would be great benefit in designing a diffracting tree algorithm that would effectively scale up from a simple centralized queue-lock-based counter at low loads to the optimal size diffracting tree counter as the load increases and scale back down to a queue-lock as the load decreases. This paper presents the reactive diffracting tree data structure and an implementation of it in a shared memory multiprocessor system. The reactive diffracting tree is a shared structure similar to a diffracting tree, with the added property that it can grow and shrink to better handle changing access patterns and the memory layouts, providing true scalability and locality. The tree mimics the behavior of an optimal size diffracting tree for each concurrency range. Empirical evidence, collected on the Alewife cache-coherent multiprocessor and the Proteus simulator, shows that the reactive diffracting tree provides throughput within a constant factor of optimal diffracting trees at all load levels. It also proves to be an effective competitor with randomized load balancing algorithms in several producer/consumer applications.
AB - A shared counter is a concurrent object that provides a fetch-and-increment operation in a distributed system. Recently, diffracting trees have been introduced as an efficient way of implementing shared counters in heavily loaded distributed systems. Diffracting trees dynamically partition processors into small groups that can access a collection of disjoint local counters quickly in a globally coordinated way. Their empirical performance under heavy load surpasses all other shared counter implementations. However, diffracting trees of any particular depth are optimal for only a limited load range. Thus, there would be great benefit in designing a diffracting tree algorithm that would effectively scale up from a simple centralized queue-lock-based counter at low loads to the optimal size diffracting tree counter as the load increases and scale back down to a queue-lock as the load decreases. This paper presents the reactive diffracting tree data structure and an implementation of it in a shared memory multiprocessor system. The reactive diffracting tree is a shared structure similar to a diffracting tree, with the added property that it can grow and shrink to better handle changing access patterns and the memory layouts, providing true scalability and locality. The tree mimics the behavior of an optimal size diffracting tree for each concurrency range. Empirical evidence, collected on the Alewife cache-coherent multiprocessor and the Proteus simulator, shows that the reactive diffracting tree provides throughput within a constant factor of optimal diffracting trees at all load levels. It also proves to be an effective competitor with randomized load balancing algorithms in several producer/consumer applications.
UR - http://www.scopus.com/inward/record.url?scp=0041992467&partnerID=8YFLogxK
U2 - 10.1006/jpdc.2000.1630
DO - 10.1006/jpdc.2000.1630
M3 - ???researchoutput.researchoutputtypes.contributiontojournal.article???
AN - SCOPUS:0041992467
SN - 0743-7315
VL - 60
SP - 853
EP - 890
JO - Journal of Parallel and Distributed Computing
JF - Journal of Parallel and Distributed Computing
IS - 7
ER -