Lock-Free Deques and Doubly Linked Lists
2008 (English)In: Journal of Parallel and Distributed Computing, ISSN 0743-7315, E-ISSN 1096-0848, Vol. 68, no 7, p. 1008-1020Article in journal (Refereed) Published
Abstract [en]
We present a practical lock-free shared data structure that efficiently implements the operations of a concurrent deque as well as a general doubly linked list. The implementation supports parallelism for disjoint accesses and uses atomic primitives which are available in modern computer systems. Previously known lock-free algorithms of doubly linked lists are either based on non-available atomic synchronization primitives, only implement a subset of the functionality, or are not designed for disjoint accesses. Our algorithm only requires single-word compare-and-swap atomic primitives, supports fully dynamic list sizes, and allows traversal also through deleted nodes and thus avoids unnecessary operation retries. We have performed an empirical study of our new algorithm on two different multiprocessor platforms. Results of the experiments performed under high contention show that the performance of our implementation scales linearly with increasing number of processors. Considering deque implementations and systems with low concurrency, the algorithm by Michael shows the best performance. However, as our algorithm is designed for disjoint accesses, it performs significantly better on systems with high concurrency and non-uniform memory architecture.
Place, publisher, year, edition, pages
Academic Press , 2008. Vol. 68, no 7, p. 1008-1020
Keywords [en]
lock-free, multi-thread, data structure, Computer Science / Datalogi
National Category
Computer Sciences
Identifiers
URN: urn:nbn:se:hb:diva-2418DOI: 10.1016/j.jpdc.2008.03.001Local ID: 2320/3594OAI: oai:DiVA.org:hb-2418DiVA, id: diva2:870512
2015-11-132015-11-132018-01-10Bibliographically approved