510 results on '"Concurrent data structure"'
Search Results
2. Concurrent Nearest-Neighbor Searching for Parallel Sampling-Based Motion Planning in SO(3), SE(3), and Euclidean Spaces
- Author
-
Ichnowski, Jeffrey, Alterovitz, Ron, Siciliano, Bruno, Series Editor, Khatib, Oussama, Series Editor, Antonelli, Gianluca, Advisory Editor, Fox, Dieter, Advisory Editor, Harada, Kensuke, Advisory Editor, Hsieh, M. Ani, Advisory Editor, Kröger, Torsten, Advisory Editor, Kulic, Dana, Advisory Editor, Park, Jaeheung, Advisory Editor, Morales, Marco, editor, Tapia, Lydia, editor, Sánchez-Ante, Gildardo, editor, and Hutchinson, Seth, editor
- Published
- 2020
- Full Text
- View/download PDF
3. A Pragmatic Non-blocking Concurrent Directed Acyclic Graph
- Author
-
Peri, Sathya, Sa, Muktikanta, Singhal, Nandini, Goos, Gerhard, Founding Editor, Hartmanis, Juris, Founding Editor, Bertino, Elisa, Editorial Board Member, Gao, Wen, Editorial Board Member, Steffen, Bernhard, Editorial Board Member, Woeginger, Gerhard, Editorial Board Member, Yung, Moti, Editorial Board Member, Atig, Mohamed Faouzi, editor, and Schwarzmann, Alexander A., editor
- Published
- 2019
- Full Text
- View/download PDF
4. Short Paper: Maintenance of Strongly Connected Component in Shared-Memory Graph
- Author
-
Sa, Muktikanta, Hutchison, David, Series Editor, Kanade, Takeo, Series Editor, Kittler, Josef, Series Editor, Kleinberg, Jon M., Series Editor, Mattern, Friedemann, Series Editor, Mitchell, John C., Series Editor, Naor, Moni, Series Editor, Pandu Rangan, C., Series Editor, Steffen, Bernhard, Series Editor, Terzopoulos, Demetri, Series Editor, Tygar, Doug, Series Editor, Podelski, Andreas, editor, and Taïani, François, editor
- Published
- 2019
- Full Text
- View/download PDF
5. Intelligent manufacturing security model based on improved blockchain
- Author
-
Jiahe Xu, Yuan Tian, Tinghuai Ma, and Najla Al-Nabhan
- Subjects
smart manufacturing ,industrial internet of things ,blockchain ,merkle patricia tree ,concurrent data structure ,Biotechnology ,TP248.13-248.65 ,Mathematics ,QA1-939 - Abstract
The Industrial Internet of Things (IIoT) plays an important role in the development of smart factories. However, the existing IIoT systems are prone to suffering from single points of failure and unable to provide stable service. Meanwhile, with the increase of node scale and network quantity, the maintenance cost presents to be higher. Such a disadvantage can be effectively compensated by the features such as security, privacy, non-tamperability and distributed deployment supported by the blockchain. In this paper, first, an intelligent manufacturing security model based on blockchain was proposed. Due to the high power consumption and low throughput of the traditional blockchain, IoT devices with limited power consumption can not work independently. Therefore, in this paper, a new Merkle Patricia tree (MPT) was adopted to extend the blockchain structure and provide fast query of node status. Second, since the MPT does not support concurrent operation and the data operation performance deteriorates with high data volume, a lock-free concurrent and cache-based Merkle Patricia tree was proposed (CMPT) to support lock-free concurrent data operation, which can improve the data operation efficiency in multi-core system. The experimental results indicate that, compared with the original MPT, the CMPT proposed in this paper effectively reduced the time complexity of data insertion and data query and improved the speed of block construction and data query.
- Published
- 2020
- Full Text
- View/download PDF
6. Concurrent linearizable nearest neighbour search in LockFree-kD-tree.
- Author
-
Chatterjee, Bapi, Walulya, Ivan, and Tsigas, Philippas
- Subjects
- *
DATA structures , *SEARCH algorithms - Abstract
• The included proof is generic and presents a useful contour for proving correctness – linearizability and lock-freedom – of similar data structures. • A lock-free Approximate Nearest Neighbour Search algorithm is presented. • The lock-free algorithms are thoroughly evaluated to benchmark their comparative experimental performance. The Nearest neighbour search (NNS) is a fundamental problem in many application domains dealing with multidimensional data. In a concurrent setting, where dynamic modifications are allowed, a linearizable implementation of the NNS is highly desirable. This paper introduces the LockFree-kD-tree (LFkD-tree): a lock-free concurrent kD-tree, which implements an abstract data type (ADT) that provides the operations Add, Remove, Contains, and NNS. Our implementation is linearizable. The operations in the LFkD-tree use single-word read and compare-and-swap (▪) atomic primitives, which are readily supported on available multi-core processors. We experimentally evaluate the LFkD-tree using several benchmarks comprising real-world and synthetic datasets. The experiments show that the presented design is scalable and achieves significant speed-up compared to the implementations of an existing sequential kD-tree and a recently proposed multidimensional indexing structure, PH-tree. [ABSTRACT FROM AUTHOR]
- Published
- 2021
- Full Text
- View/download PDF
7. A lock-free priority queue design based on multi-dimensional linked lists
- Author
-
Zhang, Deli [Univ. of Central Florida, Orlando, FL (United States)]
- Published
- 2015
- Full Text
- View/download PDF
8. Efficient Support for Range Queries and Range Updates Using Contention Adapting Search Trees
- Author
-
Sagonas, Konstantinos, Winblad, Kjell, Hutchison, David, Series editor, Kanade, Takeo, Series editor, Kittler, Josef, Series editor, Kleinberg, Jon M., Series editor, Mattern, Friedemann, Series editor, Mitchell, John C., Series editor, Naor, Moni, Series editor, Pandu Rangan, C., Series editor, Steffen, Bernhard, Series editor, Terzopoulos, Demetri, Series editor, Tygar, Doug, Series editor, Weikum, Gerhard, Series editor, Shen, Xipeng, editor, Mueller, Frank, editor, and Tuck, James, editor
- Published
- 2016
- Full Text
- View/download PDF
9. Non-blocking Patricia tries with replace operations.
- Author
-
Shafiei, Niloufar
- Subjects
- *
DATA structures - Abstract
This paper presents a non-blocking Patricia trie implementation for an asynchronous shared-memory system using Compare&Swap. The trie is a linearizable implementation of a set and supports three update operations: insert adds an element to the trie, delete removes an element from the trie and replace replaces one element by another. The replace operation is interesting because it changes two different locations of a trie. We design a mechanism that allows the two changes of a replace operation to appear to be executed atomically. If all update operations modify different parts of the trie, they run completely concurrently. The implementation also supports a wait-free find operation, which only reads shared memory and never changes the data structure. Our implementation and its correctness proof are modular and can be adapted for other data structures. Empirically, we compare our algorithms to some existing tree-based set implementations and our results show that our trie performs consistently well in different scenarios. [ABSTRACT FROM AUTHOR]
- Published
- 2019
- Full Text
- View/download PDF
10. Fast Wait-Free Construction for Pool-Like Objects with Weakened Internal Order: Stacks as an Example.
- Author
-
Peng, Yaqiong, Yun, Xiaochun, and Hao, Zhiyu
- Subjects
- *
DATA structures , *CONSTRUCTION , *ARCHITECTURE - Abstract
This paper focuses on a large class of concurrent data structures that we call pool-like objects (e.g., stack, double-ended queue, and queue). Performance and progress guarantee are two important characteristics for concurrent data structures. In the aspect of performance, weakening the internal order in a pool-like object is an effective technique to reduce the synchronization cost among threads accessing the object, but no objects with weakened internal order provide a progress guarantee as strong as wait-freedom. Meanwhile, wait-free algorithms tend to be inefficient, which is mainly attributed to the helping mechanisms. Based on the philosophy of existing helping mechanisms, a wait-free pool-like object with weakened internal order would suffer from unnecessary process of getting the latest object state and synchronization. This paper takes a state-of-the-art implementation of stacks with weakened internal order as an example, and transforms it into a highly-efficient wait-free stack named WF-TS-Stack. The transformation method includes a helping mechanism with state reuse and a relaxed removal scheme. In addition, we use a simple and effective scheme to further improve the performance of WF-TS-Stack in Non-Uniform Memory Access (NUMA) architectures. Our evaluation with representative benchmarks shows that WF-TS-Stack outperforms its original building blocks by up to 1.45× at maximum concurrency. We also discuss how to yield an efficient double-ended queue (deque) variant of WF-TS-Stack, because deque is a more generalized pool-like object. [ABSTRACT FROM AUTHOR]
- Published
- 2019
- Full Text
- View/download PDF
11. BQ: A Lock-Free Queue with Batching
- Author
-
Yossi Lev, Gal Milman, Erez Petrank, Victor Luchangco, and Alex Kogan
- Subjects
Multi-core processor ,Linearizability ,Computer science ,Concurrent data structure ,020207 software engineering ,0102 computer and information sciences ,02 engineering and technology ,Parallel computing ,Data structure ,01 natural sciences ,Computer Science Applications ,Computational Theory and Mathematics ,010201 computation theory & mathematics ,Hardware and Architecture ,Modeling and Simulation ,0202 electrical engineering, electronic engineering, information engineering ,Non-blocking algorithm ,Concurrent computing ,Performance improvement ,Queue ,Software - Abstract
Concurrent data structures provide fundamental building blocks for concurrent programming. Standard concurrent data structures may be extended by allowing a sequence of operations to be submitted as a batch for later execution. A sequence of such operations can then be executed more efficiently than the standard execution of one operation at a time. In this article, we develop a novel algorithmic extension to the prevalent FIFO queue data structure that exploits such batching scenarios. An implementation in C++ on a multicore demonstrates significant performance improvement of more than an order of magnitude (depending on the batch lengths and the number of threads) compared to previous queue implementations.
- Published
- 2022
12. Concurrent linearizable nearest neighbour search in LockFree-kD-tree
- Author
-
Ivan Walulya, Bapi Chatterjee, and Philippas Tsigas
- Subjects
Structure (mathematical logic) ,Linearizability ,Theoretical computer science ,General Computer Science ,Concurrent data structure ,Computer science ,Nearest neighbor search ,020207 software engineering ,0102 computer and information sciences ,02 engineering and technology ,Data structure ,Abstract data type ,01 natural sciences ,Theoretical Computer Science ,k-d tree ,010201 computation theory & mathematics ,Scalability ,0202 electrical engineering, electronic engineering, information engineering ,Non-blocking algorithm - Abstract
The Nearest neighbour search (NNS) is a fundamental problem in many application domains dealing with multidimensional data. In a concurrent setting, where dynamic modifications are allowed, a linearizable implementation of the NNS is highly desirable. This paper introduces the LockFree-kD-tree (LFkD-tree ): a lock-free concurrent kD-tree, which implements an abstract data type (ADT) that provides the operations Add , Remove , Contains , and NNS . Our implementation is linearizable. The operations in the LFkD-tree use single-word read and compare-and-swap ( ) atomic primitives, which are readily supported on available multi-core processors. We experimentally evaluate the LFkD-tree using several benchmarks comprising real-world and synthetic datasets. The experiments show that the presented design is scalable and achieves significant speed-up compared to the implementations of an existing sequential kD-tree and a recently proposed multidimensional indexing structure, PH-tree.
- Published
- 2021
13. Heap Decomposition for Concurrent Shape Analysis
- Author
-
Manevich, Roman, Lev-Ami, Tal, Sagiv, Mooly, Ramalingam, Ganesan, Berdine, Josh, Hutchison, David, editor, Kanade, Takeo, editor, Kittler, Josef, editor, Kleinberg, Jon M., editor, Mattern, Friedemann, editor, Mitchell, John C., editor, Naor, Moni, editor, Nierstrasz, Oscar, editor, Pandu Rangan, C., editor, Steffen, Bernhard, editor, Sudan, Madhu, editor, Terzopoulos, Demetri, editor, Tygar, Doug, editor, Vardi, Moshe Y., editor, Weikum, Gerhard, editor, Alpuente, María, editor, and Vidal, Germán, editor
- Published
- 2008
- Full Text
- View/download PDF
14. Lock-free Contention Adapting Search Trees
- Author
-
SagonasKonstantinos, WinbladKjell, and JonssonBengt
- Subjects
Linearizability ,Range query (data structures) ,Computer science ,Concurrent data structure ,Distributed computing ,020207 software engineering ,0102 computer and information sciences ,02 engineering and technology ,Data structure ,01 natural sciences ,Computer Science Applications ,Computational Theory and Mathematics ,010201 computation theory & mathematics ,Hardware and Architecture ,Modeling and Simulation ,Scalability ,0202 electrical engineering, electronic engineering, information engineering ,Non-blocking algorithm ,Software - Abstract
Concurrent key-value stores with range query support are crucial for the scalability and performance of many applications. Existing lock-free data structures of this kind use a fixed synchronization granularity. Using a fixed synchronization granularity in a concurrent key-value store with range query support is problematic as the best performing synchronization granularity depends on a number of factors that are difficult to predict, such as the level of contention and the number of items that are accessed by range queries. We present the first linearizable lock-free key-value store with range query support that dynamically adapts its synchronization granularity. This data structure is called the lock-free contention adapting search tree (LFCA tree). An LFCA tree automatically performs local adaptations of its synchronization granularity based on heuristics that take contention and the performance of range queries into account. We show that the operations of LFCA trees are linearizable, that the lookup operation is wait-free, and that the remaining operations (insert, remove and range query) are lock-free. Our experimental evaluation shows that LFCA trees achieve more than twice the throughput of related lock-free data structures in many scenarios. Furthermore, LFCA trees are able to perform substantially better than data structures with a fixed synchronization granularity over a wide range of scenarios due to their ability to adapt to the scenario at hand.
- Published
- 2021
15. Non-Blocking Dynamic Unbounded Graphs with Worst-Case Amortized Bounds
- Author
-
Bapi Chatterjee and Sathya Peri and Muktikanta Sa and Komma Manogna, Chatterjee, Bapi, Peri, Sathya, Sa, Muktikanta, Manogna, Komma, Bapi Chatterjee and Sathya Peri and Muktikanta Sa and Komma Manogna, Chatterjee, Bapi, Peri, Sathya, Sa, Muktikanta, and Manogna, Komma
- Abstract
Today’s graph-based analytics tasks in domains such as blockchains, social networks, biological networks, and several others demand real-time data updates at high speed. The real-time updates are efficiently ingested if the data structure naturally supports dynamic addition and removal of both edges and vertices. These dynamic updates are best facilitated by concurrency in the underlying data structure. Unfortunately, the existing dynamic graph frameworks broadly refurbish the static processing models using approaches such as versioning and incremental computation. Consequently, they carry their original design traits such as high memory footprint and batch processing that do not honor the real-time changes. At the same time, multi-core processors-a natural setting for concurrent data structures-are now commonplace, and the analytics tasks are moving closer to data sources over lightweight devices. Thus, exploring a fresh design approach for real-time graph analytics is significant. This paper reports a novel concurrent graph data structure that provides breadth-first search, single-source shortest-path, and betweenness centrality with concurrent dynamic updates of both edges and vertices. We evaluate the proposed data structure theoretically - by an amortized analysis - and experimentally via a C++ implementation. The experimental results show that (a) our algorithm outperforms the current state-of-the-art by a throughput speed-up of up to three orders of magnitude in several cases, and (b) it offers up to 80x lighter memory-footprint compared to existing methods. The experiments include several counterparts: Stinger, Ligra and GraphOne. We prove that the presented concurrent algorithms are non-blocking and linearizable.
- Published
- 2022
- Full Text
- View/download PDF
16. The anchor verifier for blocking and non-blocking concurrent software
- Author
-
Stephen N. Freund and Cormac Flanagan
- Subjects
Correctness ,Record locking ,business.industry ,Concurrent data structure ,Computer science ,Parallel computing ,Mathematical proof ,Blocking (computing) ,Reduction (complexity) ,Software ,Synchronization (computer science) ,Safety, Risk, Reliability and Quality ,business - Abstract
Verifying the correctness of concurrent software with subtle synchronization is notoriously challenging. We present the Anchor verifier, which is based on a new formalism for specifying synchronization disciplines that describes both (1) what memory accesses are permitted, and (2) how each permitted access commutes with concurrent operations of other threads (to facilitate reduction proofs). Anchor supports the verification of both lock-based blocking and cas-based non-blocking algorithms. Experiments on a variety concurrent data structures and algorithms show that Anchor significantly reduces the burden of concurrent verification.
- Published
- 2020
17. A Scalable and Energy-Efficient Concurrent Binary Search Tree With Fatnodes
- Author
-
Venkata Kalyan Tavva, Madhu Mutyam, and Praveen Alapati
- Subjects
Control and Optimization ,Renewable Energy, Sustainability and the Environment ,Computer science ,Concurrent data structure ,Context (language use) ,Parallel computing ,Instruction set ,Set (abstract data type) ,Tree (data structure) ,Computational Theory and Mathematics ,Hardware and Architecture ,Binary search tree ,Scalability ,Synchronization (computer science) ,Software - Abstract
In the recent past, devising algorithms for concurrent data structures has been driven by the need for scalability. Further, there is an increased traction across the industry towards power efficient concurrent data structure designs. In this context, we introduce a scalable and energy-efficient concurrent binary search tree with fatnodes (namely, FatCBST) , and present algorithms to perform basic operations on it. Unlike a single node with one value, a fatnode consists of a set of values. FatCBST minimizes structural changes while performing update operations on the tree. In addition, fatnodes help to exploit the spatial locality in the cache hierarchy and also reduce the height of the tree. FatCBST allows multiple threads to perform update operations on an existing fatnode simultaneously. Experimental results show that for low contention workloads as well as large set sizes, FatCBST scales well and also provides high performance-per-watt values as compared to the state-of-the-art implementations. For high contention workloads with small set sizes, FatCBST suffers from contention.
- Published
- 2020
18. Intelligent manufacturing security model based on improved blockchain
- Author
-
Tinghuai Ma, Jia He Xu, Najla Al-Nabhan, and Yuan Tian
- Subjects
blockchain ,Blockchain ,Computer science ,Distributed computing ,Radix tree ,Throughput ,02 engineering and technology ,concurrent data structure ,0502 economics and business ,0202 electrical engineering, electronic engineering, information engineering ,QA1-939 ,smart manufacturing ,Block (data storage) ,merkle patricia tree ,Concurrent data structure ,Applied Mathematics ,Node (networking) ,05 social sciences ,General Medicine ,Computer security model ,Computational Mathematics ,Modeling and Simulation ,020201 artificial intelligence & image processing ,Single point of failure ,General Agricultural and Biological Sciences ,industrial internet of things ,050203 business & management ,TP248.13-248.65 ,Mathematics ,Biotechnology - Abstract
The Industrial Internet of Things (IIoT) plays an important role in the development of smart factories. However, the existing IIoT systems are prone to suffering from single points of failure and unable to provide stable service. Meanwhile, with the increase of node scale and network quantity, the maintenance cost presents to be higher. Such a disadvantage can be effectively compensated by the features such as security, privacy, non-tamperability and distributed deployment supported by the blockchain. In this paper, first, an intelligent manufacturing security model based on blockchain was proposed. Due to the high power consumption and low throughput of the traditional blockchain, IoT devices with limited power consumption can not work independently. Therefore, in this paper, a new Merkle Patricia tree (MPT) was adopted to extend the blockchain structure and provide fast query of node status. Second, since the MPT does not support concurrent operation and the data operation performance deteriorates with high data volume, a lock-free concurrent and cache-based Merkle Patricia tree was proposed (CMPT) to support lock-free concurrent data operation, which can improve the data operation efficiency in multi-core system. The experimental results indicate that, compared with the original MPT, the CMPT proposed in this paper effectively reduced the time complexity of data insertion and data query and improved the speed of block construction and data query.
- Published
- 2020
19. KiWi
- Author
-
Edward Bortnikov, Guy Golan-Gueta, Anastasia Braginsky, Eshcar Hillel, Idit Keidar, Dmitry Basin, and Moshe Sulamy
- Subjects
Range query (data structures) ,Java ,Computer science ,Real-time computing ,0102 computer and information sciences ,02 engineering and technology ,01 natural sciences ,020204 information systems ,0103 physical sciences ,0202 electrical engineering, electronic engineering, information engineering ,computer.programming_language ,010302 applied physics ,biology ,business.industry ,Concurrent data structure ,020207 software engineering ,Data structure ,biology.organism_classification ,Computer Graphics and Computer-Aided Design ,Computer Science Applications ,Memory management ,Computational Theory and Mathematics ,Computer engineering ,Analytics ,010201 computation theory & mathematics ,Hardware and Architecture ,Kiwi ,Modeling and Simulation ,Scalability ,Key (cryptography) ,business ,Scale (map) ,computer ,Software - Abstract
Modern big data processing platforms employ huge in-memory key-value (KV) maps. Their applications simultaneously drive high-rate data ingestion and large-scale analytics. These two scenarios expect KV-map implementations that scale well with both real-time updates and large atomic scans triggered by range queries. We present KiWi, the first atomic KV-map to efficiently support simultaneous large scans and real-time access. The key to achieving this is treating scans as first class citizens,and organizing the data structure around them. KiWi provides wait-free scans, whereas its put operations are lightweight and lock-free. It optimizes memory management jointly with data structure access.We implement KiWi and compare it to state-of-the-art solutions. Compared to other KV-maps providing atomic scans, KiWi performs either long scans or concurrent puts an order of magnitude faster. Its scans are twice as fast as non-atomic ones implemented via iterators in the Java skiplist.
- Published
- 2020
20. FEAST
- Author
-
Aravind Natarajan, Arunmoezhi Ramachandran, and Neeraj Mittal
- Subjects
Amortized analysis ,Computer science ,Concurrent data structure ,020207 software engineering ,0102 computer and information sciences ,02 engineering and technology ,Parallel computing ,01 natural sciences ,Computer Science Applications ,Tree (data structure) ,Computational Theory and Mathematics ,Shared memory ,010201 computation theory & mathematics ,Hardware and Architecture ,Binary search tree ,Modeling and Simulation ,0202 electrical engineering, electronic engineering, information engineering ,Non-blocking algorithm ,Enhanced Data Rates for GSM Evolution ,Software - Abstract
We present a lock-free algorithm for concurrent manipulation of a binary search tree (BST) in an asynchronous shared memory system that supports search, insert, and delete operations. In addition to read and write instructions, our algorithm uses (single-word) compare-and-swap (CAS) and bit-test-and-set (BTS) read-modify-write (RMW) instructions, both of which are commonly supported by many modern processors including Intel 64 and AMD64. In contrast to most of the existing concurrent algorithms for a binary search tree, our algorithm is edge-based rather than node-based. When compared to other concurrent algorithms for a binary search tree, modify (insert and delete) operations in our algorithm (a) work on a smaller section of the tree, (b) execute fewer RMW instructions, or (c) use fewer dynamically allocated objects. In our experiments, our lock-free algorithm significantly outperformed all other algorithms for a concurrent binary search tree especially when the contention was high. We also describe modifications to our basic lock-free algorithm so that the amortized complexity of any operation in the modified algorithm can be bounded by the sum of the tree height and the point contention to within a constant factor while preserving the other desirable features of our algorithm.
- Published
- 2020
21. Practical concurrent unrolled linked lists using lazy synchronization
- Author
-
Subbarayan Venkatesan, Neeraj Mittal, and Kenneth Platz
- Subjects
Theoretical computer science ,Computer Networks and Communications ,Unrolled linked list ,Concurrent data structure ,Computer science ,020206 networking & telecommunications ,02 engineering and technology ,Linked list ,Data structure ,Theoretical Computer Science ,Artificial Intelligence ,Hardware and Architecture ,Synchronization (computer science) ,Node (computer science) ,0202 electrical engineering, electronic engineering, information engineering ,020201 artificial intelligence & image processing ,Software - Abstract
Linked lists and other list-based sets are some of the most ubiquitous data structures in computer science. They are useful in their own right and are frequently used as building blocks in other data structures. A linked list can be “unrolled” to combine multiple keys in each node; this improves storage density and overall performance. This organization also allows an operation to skip over nodes which cannot contain a key of interest. This work introduces a new high-performance concurrent unrolled linked list with a lazy synchronization strategy. Most write operations under this strategy can complete by locking a single node. Experiments show up to 300% improvement over other concurrent list-based sets.
- Published
- 2020
22. Non-Blocking Dynamic Unbounded Graphs with Worst-Case Amortized Bounds
- Author
-
Chatterjee, Bapi, Peri, Sathya, Sa, Muktikanta, and Manogna, Komma
- Subjects
linearizability ,Theory of computation ��� Concurrent algorithms ,non-blocking ,concurrent data structure ,breadth-first search ,single-source shortest-path ,directed graph ,betweenness centrality - Abstract
Today���s graph-based analytics tasks in domains such as blockchains, social networks, biological networks, and several others demand real-time data updates at high speed. The real-time updates are efficiently ingested if the data structure naturally supports dynamic addition and removal of both edges and vertices. These dynamic updates are best facilitated by concurrency in the underlying data structure. Unfortunately, the existing dynamic graph frameworks broadly refurbish the static processing models using approaches such as versioning and incremental computation. Consequently, they carry their original design traits such as high memory footprint and batch processing that do not honor the real-time changes. At the same time, multi-core processors-a natural setting for concurrent data structures-are now commonplace, and the analytics tasks are moving closer to data sources over lightweight devices. Thus, exploring a fresh design approach for real-time graph analytics is significant. This paper reports a novel concurrent graph data structure that provides breadth-first search, single-source shortest-path, and betweenness centrality with concurrent dynamic updates of both edges and vertices. We evaluate the proposed data structure theoretically - by an amortized analysis - and experimentally via a C++ implementation. The experimental results show that (a) our algorithm outperforms the current state-of-the-art by a throughput speed-up of up to three orders of magnitude in several cases, and (b) it offers up to 80x lighter memory-footprint compared to existing methods. The experiments include several counterparts: Stinger, Ligra and GraphOne. We prove that the presented concurrent algorithms are non-blocking and linearizable., LIPIcs, Vol. 217, 25th International Conference on Principles of Distributed Systems (OPODIS 2021), pages 20:1-20:25
- Published
- 2022
- Full Text
- View/download PDF
23. A parallelisation approach for supporting scalable and portable computing
- Author
-
Nash, Jonathan M., Dew, Peter M., Davy, John R., Lengauer, Christian, editor, Griebl, Martin, editor, and Gorlatch, Sergei, editor
- Published
- 1997
- Full Text
- View/download PDF
24. Implementation issues relating to the WPRAM model for scalable computing
- Author
-
Nash, J. M., Dew, P. M., Davy, J. R., Dyer, M. E., Goos, Gerhard, editor, Hartmanis, Juris, editor, van Leeuwen, Jan, editor, Bougé, Luc, editor, Fraigniaud, Pierre, editor, Mignotte, Anne, editor, and Robert, Yves, editor
- Published
- 1996
- Full Text
- View/download PDF
25. Verifying a quantitative relaxation of linearizability via refinement.
- Author
-
Adhikari, Kiran, Street, James, Wang, Chao, Liu, Yang, and Zhang, Shaojie
- Subjects
- *
DATA structures , *DISTRIBUTED computing , *VERIFICATION of computer systems , *QUANTITATIVE research , *MULTICORE processors - Abstract
The recent years have seen increasingly widespread use of highly concurrent data structures in both multi-core and distributed computing environments, thereby escalating the priority for verifying their correctness. Quasi linearizability is a quantitative variation of the standard linearizability correctness condition to allow more implementation freedom for performance optimization. However, ensuring that the implementation satisfies the quantitative aspect of this new correctness condition is often an arduous task. In this paper, we propose the first automated method for formally verifying quasi linearizability of the implementation model of a concurrent data structure with respect to its sequential specification. The method is based on checking a relaxed version of the refinement relation between the implementation model and the specification model through explicit state model checking. Our method can directly handle concurrent systems where each thread or process makes infinitely many method calls. Furthermore, unlike many existing verification methods, it does not require the user to supply annotations of the linearization points. We have implemented the new method in the PAT verification framework. Our experimental evaluation shows that the method is effective in verifying the new quasi linearizability requirement and detecting violations. [ABSTRACT FROM AUTHOR]
- Published
- 2016
- Full Text
- View/download PDF
26. A Lock-Free Priority Queue Design Based on Multi-Dimensional Linked Lists.
- Author
-
Zhang, Deli and Dechev, Damian
- Subjects
- *
COMPUTER multitasking , *DATA structures , *DISCRETE systems , *SCHEDULING software , *COMPUTER science research - Abstract
The throughput of concurrent priority queues is pivotal to multiprocessor applications such as discrete event simulation, best-first search and task scheduling. Existing lock-free priority queues are mostly based on skiplists, which probabilistically create shortcuts in an ordered list for fast insertion of elements. The use of skiplists eliminates the need of global rebalancing in balanced search trees and ensures logarithmic sequential search time on average, but the worst-case performance is linear with respect to the input size. In this paper, we propose a quiescently consistent lock-free priority queue based on a multi-dimensional list that guarantees worst-case search time of \mathcal O(\log N)
. The novel multi-dimensional list (MDList) is composed of nodes that contain multiple links to child nodes arranged by their dimensionality. The insertion operation works by first injectively mapping the scalar key to a high-dimensional vector, then uniquely locating the target position by using the vector as coordinates. Nodes in MDList are ordered by their coordinate prefixes and the ordering property of the data structure is readily maintained during insertion without rebalancing nor randomization. In our experimental evaluation using a micro-benchmark, our priority queue achieves an average of $50$ percent speedup over the state of the art approaches under high concurrency. [ABSTRACT FROM PUBLISHER]- Published
- 2016
- Full Text
- View/download PDF
27. Concurrent data structures for hypercube machine
- Author
-
Meybodi, M. R., Goos, Gerhard, editor, Hartmanis, Juris, editor, Etiemble, Daniel, editor, and Syre, Jean-Claude, editor
- Published
- 1992
- Full Text
- View/download PDF
28. Lock-free Contention Adapting Search Trees
- Author
-
Winblad, Kjell, Sagonas, Konstantinos, Jonsson, Bengt, Winblad, Kjell, Sagonas, Konstantinos, and Jonsson, Bengt
- Abstract
Concurrent key-value stores with range query support are crucial for the scalability and performance ofmany applications. Existing lock-free data structures of this kind use a fixed synchronization granularity. Using a fixed synchronization granularity in a concurrent key-value store with range query support is problematic as the best performing synchronization granularity depends on a number of factors that are difficult to predict, such as the level of contention and the number of items that are accessed by range queries. We present the first linearizable lock-free key-value store with range query support that dynamically adapts its synchronization granularity. This data structure is called the lock-free contention adapting search tree (LFCA tree). An LFCA tree automatically performs local adaptations of its synchronization granularity based on heuristics that take contention and the performance of range queries into account. We show that the operations of LFCA trees are linearizable, that the lookup operation is wait-free, and that the remaining operations (insert, remove and range query) are lock-free. Our experimental evaluation shows that LFCA trees achieve more than twice the throughput of related lock-free data structures in many scenarios. Furthermore, LFCA trees are able to perform substantially better than data structures with a fixed synchronization granularity over a wide range of scenarios due to their ability to adapt to the scenario at hand.
- Published
- 2021
- Full Text
- View/download PDF
29. Engineering MultiQueues: Fast Relaxed Concurrent Priority Queues
- Author
-
Marvin Williams and Peter Sanders and Roman Dementiev, Williams, Marvin, Sanders, Peter, Dementiev, Roman, Marvin Williams and Peter Sanders and Roman Dementiev, Williams, Marvin, Sanders, Peter, and Dementiev, Roman
- Abstract
Priority queues with parallel access are an attractive data structure for applications like prioritized online scheduling, discrete event simulation, or greedy algorithms. However, a classical priority queue constitutes a severe bottleneck in this context, leading to very small throughput. Hence, there has been significant interest in concurrent priority queues with relaxed semantics. We investigate the complementary quality criteria rank error (how close are deleted elements to the global minimum) and delay (for each element x, how many elements with lower priority are deleted before x). In this paper, we introduce MultiQueues as a natural approach to relaxed priority queues based on multiple sequential priority queues. Their naturally high theoretical scalability is further enhanced by using three orthogonal ways of batching operations on the sequential queues. Experiments indicate that MultiQueues present a very good performance-quality tradeoff and considerably outperform competing approaches in at least one of these aspects. We employ a seemingly paradoxical technique of "wait-free locking" that might be of more general interest to convert sequential data structures to relaxed concurrent data structures.
- Published
- 2021
- Full Text
- View/download PDF
30. Brief Announcement: Non-Blocking Dynamic Unbounded Graphs with Worst-Case Amortized Bounds
- Author
-
Bapi Chatterjee and Sathya Peri and Muktikanta Sa, Chatterjee, Bapi, Peri, Sathya, Sa, Muktikanta, Bapi Chatterjee and Sathya Peri and Muktikanta Sa, Chatterjee, Bapi, Peri, Sathya, and Sa, Muktikanta
- Abstract
This paper reports a new concurrent graph data structure that supports updates of both edges and vertices and queries: Breadth-first search, Single-source shortest-path, and Betweenness centrality. The operations are provably linearizable and non-blocking.
- Published
- 2021
- Full Text
- View/download PDF
31. A Universal Construction to implement Concurrent Data Structure for NUMA-muticore
- Author
-
yiping yao, zhengming yi, and Kai Chen
- Subjects
Consistency (database systems) ,Delegation ,Concurrent data structure ,Computer science ,media_common.quotation_subject ,Distributed computing ,Node (networking) ,Synchronization (computer science) ,Scalability ,Overhead (computing) ,Data structure ,media_common - Abstract
Universal constructions are attractive as they can turn a sequential implementation of any data structure into a concurrent implementation. However, existing universal constructions have limitations, such as imposing high copying overhead, or poor scalability on NUMA systems mainly due to their lack of NUMA-aware design principles. To overcome these limitations, this paper introduces CR, a universal construction that provides highly scalable updates on NUMA systems while offering fast read-side performance. CR achieves NUMA-awareness by utilizing delegation within a NUMA node and a global shared log to maintain the consistency of replicas of data structures across nodes. Using CR does not require expertise in concurrent data structure design. Our evaluation shows that CR has up to 11.2 times better performance compared to a state-of-the-art universal construction CX on our tested sequential data structures. To demonstrate the effectiveness and applicability of CR, we have applied CR to an in-memory database system. The database shows up to 18.1 times better performance compared to the original version.
- Published
- 2021
32. VBR: Version Based Reclamation
- Author
-
Gali Sheffi, Erez Petrank, and Maurice Herlihy
- Subjects
Scheme (programming language) ,FOS: Computer and information sciences ,Hazard pointer ,Computer science ,Speculative execution ,Software and its engineering → Garbage collection ,computer.software_genre ,Land reclamation ,Software and its engineering → Concurrent programming structures ,Theory of computation → Parallel computing models ,Software and its engineering → Multithreading ,concurrency ,Software and its engineering → Concurrent programming languages ,computer.programming_language ,linearizability ,Database ,Concurrent data structure ,Epoch (reference date) ,Variable bitrate ,Safe memory reclamation ,Shared memory ,Computer Science - Distributed, Parallel, and Cluster Computing ,Theory of computation → Concurrent algorithms ,Distributed, Parallel, and Cluster Computing (cs.DC) ,lock-freedom ,computer - Abstract
Safe lock-free memory reclamation is a difficult problem. Existing solutions follow three basic methods (or their combinations): epoch based reclamation, hazard pointers, and optimistic reclamation. Epoch-based methods are fast, but do not guarantee lock-freedom. Hazard pointer solutions are lock-free but typically do not provide high performance. Optimistic methods are lock-free and fast, but previous optimistic methods did not go all the way. While reads were executed optimistically, writes were protected by hazard pointers. In this work we present a new reclamation scheme called version based reclamation (VBR), which provides a full optimistic solution to lock-free memory reclamation, obtaining lock-freedom and high efficiency. Speculative execution is known as a fundamental tool for improving performance in various areas of computer science, and indeed evaluation with a lock-free linked-list, hash-table and skip-list shows that VBR outperforms state-of-the-art existing solutions., LIPIcs, Vol. 209, 35th International Symposium on Distributed Computing (DISC 2021), pages 35:1-35:18
- Published
- 2021
33. Brief Announcement: Linearizability: A Typo
- Author
-
Maurice Herlihy, Erez Petrank, and Gal Sela
- Subjects
Linearizability ,Correctness ,Point (typography) ,Concurrent data structure ,business.industry ,Computer science ,Software_PROGRAMMINGTECHNIQUES ,Computer security ,computer.software_genre ,Prime (order theory) ,Consistency (database systems) ,Software ,business ,computer ,Symbol (formal) - Abstract
Linearizability is the de facto consistency condition for concurrent objects, widely used in theory and practice. Loosely speaking, linearizability classifies concurrent executions as correct if operations on shared objects appear to take effect instantaneously during the operation execution time. This paper calls attention to a somewhat-neglected aspect of linearizability: restrictions on how pending invocations are handled, an issue that has become increasingly important for software running on systems with non-volatile main memory. Interestingly, the original published definition of linearizability includes a typo (a symbol is missing a prime) that concerns exactly this issue. In this paper we point out the typo and provide an amendment to make the definition complete. We believe that pointing this typo out rigorously and proposing a fix is important and timely.
- Published
- 2021
34. Semantic Conflict Detection for Transactional Data Structure Libraries
- Author
-
Yaodong Sheng, Ahmed Hassan, and Michael Spear
- Subjects
Structure (mathematical logic) ,business.industry ,Concurrent data structure ,Programming language ,Computer science ,Transactional memory ,010103 numerical & computational mathematics ,computer.software_genre ,Data structure ,01 natural sciences ,010101 applied mathematics ,Software ,Memory management ,Synchronization (computer science) ,0101 mathematics ,business ,computer ,Transaction data - Abstract
The Transactional Data Structure Library (TDSL) methodology improves the programmability and performance of concurrent software by making it possible for programmers to compose multiple concurrent data structure operations into coarse-grained transactions. Like transactional memory, TDSL enables arbitrarily many operations on arbitrarily many data structures to appear to other threads as a single atomic, isolated transaction. Like concurrent data structures, the individual operations on a TDSL data structure are optimized to avoid artificial contention. We introduce techniques for reducing false conflicts in TDSL implementations. Our approach allows expressing the postconditions of operations entirely via semantic properties, instead of through low-level structural properties. Our design is general enough to support lists, deques, ordered and unordered maps, and vectors. It supports richer programming interfaces than are available in existing TDSL implementations. It is also capable of precise memory management, which is necessary in low-level languages like C++.
- Published
- 2021
35. On supporting efficient snapshot isolation for hybrid workloads with multi-versioned indexes
- Author
-
Wan Shen Lim, Andrew Pavlo, Guy E. Blelloch, and Yihan Sun
- Subjects
Binary tree ,Concurrent data structure ,Computer science ,Online analytical processing ,Distributed computing ,General Engineering ,InformationSystems_DATABASEMANAGEMENT ,020207 software engineering ,02 engineering and technology ,Data structure ,Concurrency control ,Tree (data structure) ,020204 information systems ,0202 electrical engineering, electronic engineering, information engineering ,Online transaction processing ,Snapshot isolation - Abstract
Modern data-driven applications require that databases support fast analytical queries while undergoing rapid updates---often referred to as Hybrid Transactional Analytical Processing (HTAP). Achieving fast queries and updates in a database management system (DBMS) is challenging since optimizations to improve analytical queries can cause overhead for updates. One solution is to use snapshot isolation (SI) for multi-version concurrency control (MVCC) to allow readers to make progress regardless of concurrent writers. In this paper, we propose the Parallel Binary Tree (P-Tree) index structure to achieve SI and MVCC for multicore in-memory HTAP DBMSs. At their core, P-Trees are based on pure (immutable) data structures that use path-copying for updates for fast multi-versioning. They support tree nesting to improve OLAP performance while still allowing for efficient updates. The data structure also enables parallel algorithms for bulk operations on indexes and their underlying tables. We evaluate P-Trees on OLTP and OLAP benchmarks, and compare them with state-of-the-art data structures and DBMSs. Our experiments show that P-Trees outperform many concurrent data structures for the YCSB workload, and is 4--9 x faster than existing DBMSs for analytical queries, while also achieving reasonable throughput for simultaneous transactional updates.
- Published
- 2019
36. Fast Wait-Free Construction for Pool-Like Objects with Weakened Internal Order: Stacks as an Example
- Author
-
Yaqiong Peng, Zhiyu Hao, and Xiaochun Yun
- Subjects
020203 distributed computing ,Concurrent data structure ,Computer science ,Concurrency ,Distributed computing ,Process (computing) ,02 engineering and technology ,Thread (computing) ,Object (computer science) ,Data structure ,Computational Theory and Mathematics ,Stack (abstract data type) ,Hardware and Architecture ,Signal Processing ,Synchronization (computer science) ,0202 electrical engineering, electronic engineering, information engineering ,Concurrent computing ,Queue - Abstract
This paper focuses on a large class of concurrent data structures that we call pool-like objects (e.g., stack, double-ended queue, and queue). Performance and progress guarantee are two important characteristics for concurrent data structures. In the aspect of performance, weakening the internal order in a pool-like object is an effective technique to reduce the synchronization cost among threads accessing the object, but no objects with weakened internal order provide a progress guarantee as strong as wait-freedom. Meanwhile, wait-free algorithms tend to be inefficient, which is mainly attributed to the helping mechanisms. Based on the philosophy of existing helping mechanisms, a wait-free pool-like object with weakened internal order would suffer from unnecessary process of getting the latest object state and synchronization. This paper takes a state-of-the-art implementation of stacks with weakened internal order as an example, and transforms it into a highly-efficient wait-free stack named WF-TS-Stack. The transformation method includes a helping mechanism with state reuse and a relaxed removal scheme. In addition, we use a simple and effective scheme to further improve the performance of WF-TS-Stack in Non-Uniform Memory Access (NUMA) architectures. Our evaluation with representative benchmarks shows that WF-TS-Stack outperforms its original building blocks by up to 1.45× at maximum concurrency. We also discuss how to yield an efficient double-ended queue (deque) variant of WF-TS-Stack, because deque is a more generalized pool-like object.
- Published
- 2019
37. Load-balancing for load-imbalanced fine-grained linear pipelines
- Author
-
Thomas R. Gross and Aristeidis Mastoras
- Subjects
Computer Networks and Communications ,Computer science ,Concurrent data structure ,Pipeline (computing) ,010103 numerical & computational mathematics ,Dynamic priority scheduling ,Parallel computing ,Load balancing (computing) ,Data structure ,computer.software_genre ,01 natural sciences ,Computer Graphics and Computer-Aided Design ,Theoretical Computer Science ,010101 applied mathematics ,Pipeline transport ,Runtime system ,Artificial Intelligence ,Hardware and Architecture ,Compiler ,0101 mathematics ,computer ,Software - Abstract
Pipelining is a well-known technique to overlap loop iterations by partitioning the loop body into a sequence of stages. A large class of programs can be expressed as linear pipelines if data dependences only flow from earlier to later stages. Various pipelining techniques have been explored but reconciling load-balancing and efficient execution is still a challenge for two main reasons. First, partitioning of the loop body into stages that lead to load-balancing may depend on the data set as well as system properties, e.g., number of cores. Second, the configuration of the runtime system is far from obvious. In this article, we present Pipelight, a technique that achieves load-balancing for linear pipelines. Pipelight relies on a way of mapping stages onto threads that simplifies partitioning and enables the design of a lightweight algorithm for dynamic scheduling. Furthermore, Pipelight introduces a concurrent data structure that exploits the properties of data dependences presented in linear pipelines to provide efficient communication and synchronization. This data structure simplifies the configuration of the runtime system and makes Pipelight a practical solution. The evaluation on a 44-core system shows the efficiency of Pipelight for a set of programs selected from widely-used collections. Although Pipelight simplifies parallelization of linear pipelines, it performs similarly to the most efficient properly configured state-of-the-art technique. The price paid for the benefits of Pipelight is additional overhead for fine-grained loops. However, this overhead can be amortized successfully with chunking. To make Pipelight a promising solution, we propose a directive-based transformation for Pipelight, which is developed in a prototype source-to-source compiler. Consequently, Pipelight is an efficient and practical solution to achieve load-balancing for fine-grained linear pipelines.
- Published
- 2019
38. A Message-Passing Microcoded Synchronization for Distributed Shared Memory Architectures
- Author
-
Zois-Gerasimos Tasoulas, Iraklis Anagnostopoulos, Lazaros Papadopoulos, and Dimitrios Soudris
- Subjects
Distributed shared memory ,Record locking ,Computer science ,Concurrent data structure ,Message passing ,02 engineering and technology ,Parallel computing ,Data structure ,Computer Graphics and Computer-Aided Design ,Lock (computer science) ,Synchronization ,020202 computer hardware & architecture ,Idle ,Server ,Synchronization (computer science) ,Scalability ,0202 electrical engineering, electronic engineering, information engineering ,Electrical and Electronic Engineering ,Software - Abstract
Implementation of concurrent data structures in architectures that provide limited synchronization primitives is a critical challenge. Typical lock-based implementations suffer from well-known problems such as poor scalability and unfairness. In this paper, we propose a client-server based synchronization model that can be applied in data structures with low level of parallelism for distributed shared memory many-core systems that support also message-passing communication. Additionally, we utilize a programmable hardware accelerator with appropriate application interfaces to overcome the performance-flexibility dilemma. Experimental results show that the proposed work performs 20 $\times$ faster than the single lock model with 88 $\times$ less idle cycles and 7 $\times$ less power consumption.
- Published
- 2019
39. Implementation and Analysis of Distributed Relaxed Concurrent Queues in Remote Memory Access Model
- Author
-
A.D. Anenkov and Alexey A. Paznikov
- Subjects
Hierarchy (mathematics) ,Semantics (computer science) ,Computer science ,Concurrent data structure ,Distributed computing ,020206 networking & telecommunications ,02 engineering and technology ,Data structure ,Computer cluster ,0202 electrical engineering, electronic engineering, information engineering ,General Earth and Planetary Sciences ,020201 artificial intelligence & image processing ,Relaxation (approximation) ,Priority queue ,Queue ,General Environmental Science - Abstract
Remote memory access (RMA) technique is a very attractive way for improving efficiency of high-performance computations (HPC) and simplifying parallel program development. However, coming up with efficient concurrent data structures for distributed environments with deep hierarchy, such as computer clusters and data centres, is challenging. We propose a novel approach to design distributed concurrent data structures. The core idea behind the approach is relaxation of the order of executed operations. For example, a relaxed priority queues only requires the elements returned by delete-min operation to be sufficiently close to the minimum. Similarly, in a relaxed queue or stack, the removed elements are close to the first or the last one, respectively. There are multiple evidences that, on most workloads, relaxed data structures outperform data structures with strict semantics and ensure acceptable degrees of operation reordering. In this work we approve our approach on the example of a distributed queue, evaluate its efficiency and compare it with the other implementations of distributed lists.
- Published
- 2019
40. Durable Queues: The Second Amendment
- Author
-
Erez Petrank and Gal Sela
- Subjects
FOS: Computer and information sciences ,Hardware_MEMORYSTRUCTURES ,Computer Science - Performance ,Computer science ,Concurrent data structure ,business.industry ,Data structure ,Blocking (computing) ,Performance (cs.PF) ,Computer Science - Distributed, Parallel, and Cluster Computing ,Cache invalidation ,Memory architecture ,Computer Science - Data Structures and Algorithms ,Data Structures and Algorithms (cs.DS) ,Distributed, Parallel, and Cluster Computing (cs.DC) ,State (computer science) ,Performance improvement ,business ,Queue ,Computer network - Abstract
We consider durable data structures for non-volatile main memory, such as the new Intel Optane memory architecture. Substantial recent work has concentrated on making concurrent data structures durable with low overhead, by adding a minimal number of blocking persist operations (i.e., flushes and fences). In this work we show that focusing on minimizing the number of persist instructions is important, but not enough. We show that access to flushed content is of high cost due to cache invalidation in current architectures. Given this finding, we present a design of the queue data structure that properly takes care of minimizing blocking persist operations as well as minimizing access to flushed content. The proposed design outperforms state-of-the-art durable queues. We start by providing a durable version of the Michael Scott queue (MSQ). We amend MSQ by adding a minimal number of persist instructions, fewer than in available durable queues, and meeting the theoretical lower bound on the number of blocking persist operations. We then proceed with a second amendment to this design, that eliminates accesses to flushed data. Evaluation shows that the second amendment yields substantial performance improvement, outperforming the state of the art and demonstrating the importance of reduced accesses to flushed content. The presented queues are durably linearizable and lock-free. Finally, we discuss the theoretical optimal number of accesses to flushed content., Code: https://github.com/galysela/DurableQueues
- Published
- 2021
41. RCU‐HTM: A generic synchronization technique for highly efficient concurrent search trees
- Author
-
Konstantinos Nikas, Nectarios Koziris, Georgios Goumas, and Dimitrios Siakavaras
- Subjects
Computational Theory and Mathematics ,Computer Networks and Communications ,Computer science ,Concurrent data structure ,Synchronization (computer science) ,Transactional memory ,Parallel computing ,Software ,Computer Science Applications ,Theoretical Computer Science ,Read-copy-update - Published
- 2021
42. On Building Modular and Elastic Data Structures with Bulk Operations
- Author
-
Athicha Srivirote, Joseph Tassarotti, Joe Foster, Ahmed Hassan, Roberto Palmieri, Kevin Williams, and Lewis Tseng
- Subjects
Development (topology) ,Range query (data structures) ,business.industry ,Concurrent data structure ,Computer science ,Concurrency ,Modular design ,Data structure ,business ,Computational science - Abstract
This paper introduces MEDS, a modular and elastic framework that simplifies the development of high-performance concurrent data structures that support linearizable primitive (i.e., add, remove, contains) and bulk (e.g., range query) operations.
- Published
- 2021
43. A Scalable Concurrent Algorithm for Dynamic Connectivity
- Author
-
Nikita Koval, Alexander Fedorov, and Dan Alistarh
- Subjects
Connected component ,FOS: Computer and information sciences ,Theoretical computer science ,Computer science ,Concurrent data structure ,Concurrent algorithm ,Minimum spanning tree ,Data structure ,Tree (graph theory) ,Computer Science - Distributed, Parallel, and Cluster Computing ,Computer Science - Data Structures and Algorithms ,Scalability ,Data Structures and Algorithms (cs.DS) ,Distributed, Parallel, and Cluster Computing (cs.DC) ,Time complexity - Abstract
Dynamic Connectivity is a fundamental algorithmic graph problem, motivated by a wide range of applications to social and communication networks and used as a building block in various other algorithms, such as the bi-connectivity and the dynamic minimal spanning tree problems. In brief, we wish to maintain the connected components of the graph under dynamic edge insertions and deletions. In the sequential case, the problem has been well-studied from both theoretical and practical perspectives. However, much less is known about efficient concurrent solutions to this problem. This is the gap we address in this paper. We start from one of the classic data structures used to solve this problem, the Euler Tour Tree. Our first contribution is a non-blocking single-writer implementation of it. We leverage this data structure to obtain the first truly concurrent generalization of dynamic connectivity, which preserves the time complexity of its sequential counterpart, but is also scalable in practice. To achieve this, we rely on three main techniques. The first is to ensure that connectivity queries, which usually dominate real-world workloads, are non-blocking. The second non-trivial technique expands the above idea by making all queries that do not change the connectivity structure non-blocking. The third ingredient is applying fine-grained locking for updating the connected components, which allows operations on disjoint components to occur in parallel. We evaluate the resulting algorithm on various workloads, executing on both real and synthetic graphs. The results show the efficiency of each of the proposed optimizations; the most efficient variant improves the performance of a coarse-grained based implementation on realistic scenarios up to 6x on average and up to 30x when connectivity queries dominate.
- Published
- 2021
- Full Text
- View/download PDF
44. Generating Concurrent Programs From Sequential Data Structure Knowledge Using Answer Set Programming
- Author
-
Gopal Gupta, Neeraj Mittal, and Sarat Chandra Varanasi
- Subjects
FOS: Computer and information sciences ,Computer Science - Logic in Computer Science ,Computer Science - Programming Languages ,Computer Science - Artificial Intelligence ,Concurrent data structure ,Programming language ,Computer science ,Commonsense reasoning ,Linked list ,Semantic reasoner ,computer.software_genre ,Data structure ,Logic in Computer Science (cs.LO) ,Answer set programming ,Artificial Intelligence (cs.AI) ,Pointer (computer programming) ,Synchronization (computer science) ,computer ,Programming Languages (cs.PL) - Abstract
We tackle the problem of automatically designing concurrent data structure operations given a sequential data structure specification and knowledge about concurrent behavior. Designing concurrent code is a non-trivial task even in simplest of cases. Humans often design concurrent data structure operations by transforming sequential versions into their respective concurrent versions. This requires an understanding of the data structure, its sequential behavior, thread interactions during concurrent execution and shared memory synchronization primitives. We mechanize this design process using automated commonsense reasoning. We assume that the data structure description is provided as axioms alongside the sequential code of its algebraic operations. This information is used to automatically derive concurrent code for that data structure, such as dictionary operations for linked lists and binary search trees. Knowledge in our case is expressed using Answer Set Programming (ASP), and we employ deduction and abduction -- just as humans do -- in the reasoning involved. ASP allows for succinct modeling of first order theories of pointer data structures, run-time thread interactions and shared memory synchronization. Our reasoner can systematically make the same judgments as a human reasoner, while constructing provably safe concurrent code. We present several reasoning challenges involved in transforming the sequential data structure into its equivalent concurrent version. All the reasoning tasks are encoded in ASP and our reasoner can make sound judgments to transform sequential code into concurrent code. To the best of our knowledge, our work is the first one to use commonsense reasoning to automatically transform sequential programs into concurrent code. We also have developed a tool that we describe that relies on state-of-the-art ASP solvers and performs the reasoning tasks involved to generate concurrent code., Comment: In Proceedings ICLP 2021, arXiv:2109.07914. arXiv admin note: substantial text overlap with arXiv:2011.04045
- Published
- 2021
- Full Text
- View/download PDF
45. On the Correctness Problem for Serializability
- Author
-
Heike Wehrheim and Jürgen König
- Subjects
Atomicity ,Correctness ,Linearizability ,Concurrent data structure ,Serializability ,Computer science ,Programming language ,Software transactional memory ,State (computer science) ,Software_PROGRAMMINGTECHNIQUES ,computer.software_genre ,computer ,Decidability - Abstract
Concurrent correctness conditions formalize the notion of “seeming atomicity” in concurrent access to shared object state. For different sorts of objects (databases, concurrent data structures, software transactional memory) different sorts of correctness conditions have been proposed (serializability, linearizability, opacity). Decidability of concurrent correctness conditions studies two problems: the membership problem asks whether a single execution is correct; the correctness problem asks whether all executions of a given implementation are correct.
- Published
- 2021
46. A Relaxed Balanced Lock-Free Binary Search Tree
- Author
-
Lindsay Groves, Manish Kumar Singh, and Alex Potanin
- Subjects
Compare-and-swap ,Tree (data structure) ,Concurrent data structure ,Binary search tree ,Computer science ,Non-blocking algorithm ,Parallel computing ,Word (computer architecture) - Abstract
This paper presents a new relaxed balanced concurrent binary search tree using a single word compare and swap primitive, in which all operations are lock-free. Our design separates balancing actions from update operations and includes a lock-free balancing mechanism in addition to the insert, search, and relaxed delete operations. Search in our design is not affected by ongoing concurrent update operations or by the movement of nodes by tree restructuring operations. Our experiments show that our algorithm performs better than other state-of-the-art concurrent BSTs.
- Published
- 2021
47. Concurrent Correctness in Vector Space
- Author
-
Damian Dechev, Victor Cook, and Christina Peterson
- Subjects
Scheme (programming language) ,050101 languages & linguistics ,Correctness ,Theoretical computer science ,Semantics (computer science) ,Computer science ,Concurrent data structure ,05 social sciences ,02 engineering and technology ,Data structure ,Set (abstract data type) ,0202 electrical engineering, electronic engineering, information engineering ,020201 artificial intelligence & image processing ,0501 psychology and cognitive sciences ,Time complexity ,computer ,computer.programming_language ,Vector space - Abstract
Correctness verification of a concurrent history is challenging and has been proven to be an NP-complete problem. The reason that verifying correctness cannot be solved in polynomial time is a consequence of the way correctness is defined. Traditional correctness conditions require a concurrent history to be equivalent to a legal sequential history. The worst case number of legal sequential histories for a concurrent history is O(n!) with respect to n methods invoked. Existing correctness verification tools improve the time complexity by either reducing the size of the possible legal sequential histories or improving the efficiency of generating the possible legal sequential histories. Further improvements to the time complexity of correctness verification can be achieved by changing the way correctness of concurrent programs is defined. In this paper, we present the first methodology to recast the correctness conditions in literature to be defined in vector space. The concurrent histories are represented as a set of method call vectors, and correctness is defined as properties over the set of vectors. The challenge with defining correctness in vector space is accounting for method call ordering and data structure semantics. We solve this challenge by incorporating a priority assignment scheme to the values of the method call vectors. Using our new definitions of concurrent correctness, we design a dynamic analysis tool that checks the vector space correctness of concurrent data structures in \(O(n^2)\) with respect to n method calls, a significant improvement over O(n!) time required to analyze legal sequential histories. We showcase our dynamic analysis tool by using it to check the vector space correctness of a variety of queues, stacks, and hashmaps.
- Published
- 2021
48. Brief Announcement: Non-Blocking Dynamic Unbounded Graphs with Worst-Case Amortized Bounds
- Author
-
Chatterjee, Bapi, Peri, Sathya, and Sa, Muktikanta
- Subjects
linearizability ,non-blocking ,concurrent data structure ,Theory of computation → Concurrent algorithms ,breadth-first search ,single-source shortest-path ,directed graph ,betweenness centrality ,MathematicsofComputing_DISCRETEMATHEMATICS - Abstract
This paper reports a new concurrent graph data structure that supports updates of both edges and vertices and queries: Breadth-first search, Single-source shortest-path, and Betweenness centrality. The operations are provably linearizable and non-blocking., LIPIcs, Vol. 209, 35th International Symposium on Distributed Computing (DISC 2021), pages 52:1-52:4
- Published
- 2021
- Full Text
- View/download PDF
49. Verifying Concurrent Multicopy Search Structures
- Author
-
Dennis Shasha, Nisarg Patel, Thomas Wies, and Siddharth Krishna
- Subjects
FOS: Computer and information sciences ,Computer Science - Logic in Computer Science ,Linearizability ,Theoretical computer science ,Computer Science - Programming Languages ,Concurrent data structure ,Computer science ,Separation logic ,Directed acyclic graph ,Data structure ,Logic in Computer Science (cs.LO) ,Tree (data structure) ,Template ,Node (computer science) ,Safety, Risk, Reliability and Quality ,Software ,Programming Languages (cs.PL) - Abstract
Multicopy search structures such as log-structured merge (LSM) trees are optimized for high insert/update/delete (collectively known as upsert) performance. In such data structures, an upsert on key $k$, which adds $(k,v)$ where $v$ can be a value or a tombstone, is added to the root node even if $k$ is already present in other nodes. Thus there may be multiple copies of $k$ in the search structure. A search on $k$ aims to return the value associated with the most recent upsert. We present a general framework for verifying linearizability of concurrent multicopy search structures that abstracts from the underlying representation of the data structure in memory, enabling proof-reuse across diverse implementations. Based on our framework, we propose template algorithms for a) LSM structures forming arbitrary directed acyclic graphs and b) differential file structures, and formally verify these templates in the concurrent separation logic Iris. We also instantiate the LSM template to obtain the first verified concurrent in-memory LSM tree implementation., Comment: Extended version of an article to appear in OOPSLA'21
- Published
- 2021
- Full Text
- View/download PDF
50. enEngineering MultiQueues: Fast Relaxed Concurrent Priority Queues
- Author
-
Williams, Marvin, Sanders, Peter, Dementiev, Roman, Mutzel, Petra, Pagh, Rasmus, and Herman, Grzegorz
- Subjects
FOS: Computer and information sciences ,concurrent data structure ,randomized algorithms ,DATA processing & computer science ,Computer Science - Data Structures and Algorithms ,Data Structures and Algorithms (cs.DS) ,ddc:004 ,priority queues ,wait-free locking ,Computing methodologies → Concurrent computing methodologies - Abstract
Priority queues with parallel access are an attractive data structure for applications like prioritized online scheduling, discrete event simulation, or greedy algorithms. However, a classical priority queue constitutes a severe bottleneck in this context, leading to very small throughput. Hence, there has been significant interest in concurrent priority queues with relaxed semantics. We investigate the complementary quality criteria rank error (how close are deleted elements to the global minimum) and delay (for each element x, how many elements with lower priority are deleted before x). In this paper, we introduce MultiQueues as a natural approach to relaxed priority queues based on multiple sequential priority queues. Their naturally high theoretical scalability is further enhanced by using three orthogonal ways of batching operations on the sequential queues. Experiments indicate that MultiQueues present a very good performance-quality tradeoff and considerably outperform competing approaches in at least one of these aspects. We employ a seemingly paradoxical technique of "wait-free locking" that might be of more general interest to convert sequential data structures to relaxed concurrent data structures., LIPIcs, Vol. 204, 29th Annual European Symposium on Algorithms (ESA 2021), pages 81:1-81:17
- Published
- 2021
Catalog
Discovery Service for Jio Institute Digital Library
For full access to our library's resources, please sign in.