English
Related papers

Related papers: Reciprocating Locks

200 papers

Modern multi-socket architectures exhibit non-uniform memory access (NUMA) behavior, where access by a core to data cached locally on a socket is much faster than access to data cached on a remote socket. Prior work offers several efficient…

Operating Systems · Computer Science 2019-03-04 Dave Dice , Alex Kogan

The lock-free, ordered, linked list is an important, standard example of a concurrent data structure. An obvious, practical drawback of textbook implementations is that failed compare-and-swap (CAS) operations lead to retraversal of the…

Data Structures and Algorithms · Computer Science 2020-11-02 Jesper Larsson Träff , Manuel Pöter

Priority queues are abstract data structures which store a set of key/value pairs and allow efficient access to the item with the minimal (maximal) key. Such queues are an important element in various areas of computer science such as…

Data Structures and Algorithms · Computer Science 2015-09-24 Jakob Gruber

The pairwise reachability problem for a multi-threaded program asks, given control locations in two threads, whether they can be simultaneously reached in an execution of the program. The problem is important for static analysis and is used…

Logic in Computer Science · Computer Science 2015-07-01 Remi Bonnet , Rohit Chadha , Mahesh Viswanathan , P. Madhusudan

A challenge for programming language research is to design and implement multi-threaded low-level languages providing static guarantees for memory safety and freedom from data races. Towards this goal, we present a concurrent language…

Programming Languages · Computer Science 2010-02-05 Prodromos Gerakios , Nikolaos Papaspyrou , Konstantinos Sagonas

Work-stealing is a widely used technique for balancing irregular parallel workloads, and most modern runtime systems adopt lock-free work-stealing deques to reduce contention and improve scalability. However, existing algorithms are…

Distributed, Parallel, and Cluster Computing · Computer Science 2026-03-09 Raja Sai Nandhan Yadav Kataru , Danial Davarnia , Ali Jannesari

Mutual exclusion (ME) is a commonly used technique to handle conflicts in concurrent systems. With recent advancements in non-volatile memory technology, there is an increased focus on the problem of recoverable mutual exclusion (RME), a…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-03-03 Sahil Dhoked , Neeraj Mittal

Distributed locking mechanisms are fundamental to ensuring data consistency and integrity in distributed systems. This paper presents a comprehensive analysis of distributed locking algorithms, focusing on their performance characteristics…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-04-07 Andre Rodriguez , William Osborn

Flat combining (FC) is a synchronization paradigm in which a single thread, holding a global lock, collects requests by multiple threads for accessing a concurrent data structure and applies their combined requests to it. Although FC is…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-12-10 Matan Rusanovsky , Hagit Attiya , Ohad Ben-Baruch , Tom Gerby , Danny Hendler , Pedro Ramalhete

We present Trust<T>, a general, type- and memory-safe alternative to locking in concurrent programs. Instead of synchronizing multi-threaded access to an object of type T with a lock, the programmer may place the object in a Trust<T>. The…

Performance · Computer Science 2024-08-22 Noaman Ahmad , Ben Baenen , Chen Chen , Jakob Eriksson

The mutual-exclusion property of locks stands in the way to scalability of parallel programs on many-core architectures. Locks do not allow progress guarantees, because a task may fail inside a critical section and keep holding a lock that…

Programming Languages · Computer Science 2018-06-20 Johann Blieberger , Bernd Burgstaller

Fully-strict fork-join parallelism is a powerful model for shared-memory programming due to its optimal time scaling and strong bounds on memory scaling. The latter is rarely achieved due to the difficulty of implementing continuation…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-02-29 Conor John Williams , James Elliott

Deadlocks occur in concurrent programs as a consequence of cyclic resource acquisition between threads. In this paper we present a novel type system that guarantees deadlock freedom for a language with references, unstructured locking…

Programming Languages · Computer Science 2011-10-20 Prodromos Gerakios , Nikolaos Papaspyrou , Konstantinos Sagonas

Coroutines are experiencing a renaissance as many modern programming languages support the use of cooperative multitasking for highly parallel or asynchronous applications. One of the greatest advantages of this is that concurrency and…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-11-13 Simon König , Lukas Epple , Christian Becker

We study the inherent space requirements of shared storage algorithms in asynchronous fault-prone systems. Previous works use codes to achieve a better storage cost than the well-known replication approach. However, a closer look reveals…

Distributed, Parallel, and Cluster Computing · Computer Science 2015-07-21 Alexander Spiegelman , Yuval Cassuto , Gregory Chockler , Idit Keidar

Algorithms for mutual exclusion aim to isolate potentially concurrent accesses to the same shared resources. Motivated by distributed computing research on programmable matter and population protocols where interactions among entities are…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-05-23 Anya Chaturvedi , Joshua J. Daymude , Andréa W. Richa

We present an efficient lock-free algorithm for parallel accessible hash tables with open addressing, which promises more robust performance and reliability than conventional lock-based implementations. ``Lock-free'' means that it is…

Distributed, Parallel, and Cluster Computing · Computer Science 2007-05-23 Hui Gao , Jan Friso Groote , Wim H. Hesselink

Multi-core processors improve performance, but they can create unpredictability owing to shared resources such as caches interfering. Cache partitioning is used to alleviate the Worst-Case Execution Time (WCET) estimation by isolating the…

Hardware Architecture · Computer Science 2022-01-28 Soma N. Ghosh , Vineet Sahula , Lava Bhargava

A standard design pattern found in many concurrent data structures, such as hash tables or ordered containers, is alternation of parallelizable sections that incur no data conflicts and critical sections that must run sequentially and are…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-10-13 Vitaly Aksenov , Daniil Bolotov , Petr Kuznetsov

Fault-tolerant distributed applications require mechanisms to recover data lost via a process failure. On modern cluster systems it is typically impractical to request replacement resources after such a failure. Therefore, applications have…

Distributed, Parallel, and Cluster Computing · Computer Science 2023-01-26 Lukas Hübner , Demian Hespe , Peter Sanders , Alexandros Stamatakis