English
Related papers

Related papers: Fast and Fair Randomized Wait-Free Locks

200 papers

This paper considers the modeling and the analysis of the performance of lock-free concurrent data structures. Lock-free designs employ an optimistic conflict control mechanism, allowing several processes to access the shared data object at…

Data Structures and Algorithms · Computer Science 2015-08-17 Aras Atalar , Paul Renaud-Goud , Philippas Tsigas

We present "Reciprocating Locks", a novel mutual exclusion locking algorithm, targeting cache-coherent shared memory (CC), that enjoys a number of desirable properties. The doorway arrival phase and the release operation both run in…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-07-14 Dave Dice , Alex Kogan

A sliding window algorithm receives a stream of symbols and has to output at each time instant a certain value which only depends on the last $n$ symbols. If the algorithm is randomized, then at each time instant it produces an incorrect…

Formal Languages and Automata Theory · Computer Science 2018-02-22 Moses Ganardi , Danny Hucke , Markus Lohrey

Chance constrained program is computationally intractable due to the existence of chance constraints, which are randomly disturbed and should be satisfied with a probability. This paper proposes a two-layer randomized algorithm to address…

Optimization and Control · Mathematics 2019-11-11 Xun Shen , Jiancang Zhuang , Xingguo Zhang

Algorithms are now regularly used to decide whether defendants awaiting trial are too dangerous to be released back into the community. In some cases, black defendants are substantially more likely than white defendants to be incorrectly…

Computers and Society · Computer Science 2017-06-13 Sam Corbett-Davies , Emma Pierson , Avi Feller , Sharad Goel , Aziz Huq

In parametric lock-sharing systems processes can spawn new processes to run in parallel, and can create new locks. The behavior of every process is given by a pushdown automaton. We consider infinite behaviors of such systems under strong…

Logic in Computer Science · Computer Science 2023-07-12 Corto Mascle , Anca Muscholl , Igor Walukiewicz

Designing an efficient concurrent data structure is an important challenge that is not easy to meet. Intuitively, efficiency of an implementation is defined, in the first place, by its ability to process applied operations in parallel,…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-01-15 Vitaly Aksenov , Vincent Gramoli , Petr Kuznetsov , Srivatsan Ravi , Di Shang

A first step towards more reliable software is to execute each statement and each control-flow path in a method once. In this paper, we present a formal method to automatically compute test cases for this purpose based on the idea of a…

Programming Languages · Computer Science 2012-05-31 Jürgen Christ , Jochen Hoenicke , Martin Schäf

Vector clock algorithms are basic wait-free building blocks that facilitate causal ordering of events. As wait-free algorithms, they are guaranteed to complete their operations within a finite number of steps. Stabilizing algorithms allow…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-12-25 Iosif Salem , Elad Michael Schiller

In this paper we consider a network of processors aiming at cooperatively solving linear programming problems subject to uncertainty. Each node only knows a common cost function and its local uncertain constraint set. We propose a…

Optimization and Control · Mathematics 2019-08-27 Mohammadreza Chamanbaz , Giuseppe Notarstefano , Roland Bouffanais

A real-time multicore system requires delay bounds on access to shared resources. These resources include the kernel, which has potentially many non-preemptible critical sections guarded by one or more different synchronization primitives.…

Operating Systems · Computer Science 2026-05-28 Shriram Raja , Richard West

Building a library of concurrent data structures is an essential way to simplify the difficult task of developing concurrent software. Lock-free data structures, in which processes can help one another to complete operations, offer the…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-12-18 Trevor Brown

Deadlocks are a major source of bugs in concurrent programs. They are hard to predict, because they may only occur under specific scheduling conditions. Dynamic analysis attempts to identify potential deadlocks by examining a single…

Programming Languages · Computer Science 2026-05-13 Bas van den Heuvel , Martin Sulzmann , Peter Thiemann

Proportionality is an attractive fairness concept that has been applied to a range of problems including the facility location problem, a classic problem in social choice. In our work, we propose a concept called Strong Proportionality,…

Computer Science and Game Theory · Computer Science 2022-06-15 Haris Aziz , Alexander Lam , Mashbat Suzuki , Toby Walsh

This report describes an implementation of a non-blocking concurrent shared-memory hash trie based on single-word compare-and-swap instructions. Insert, lookup and remove operations modifying different parts of the hash trie can be run…

Data Structures and Algorithms · Computer Science 2017-09-19 Aleksandar Prokopec , Phil Bagwell , Martin Odersky

Settings such as lending and policing can be modeled by a centralized agent allocating a resource (loans or police officers) amongst several groups, in order to maximize some objective (loans given that are repaid or criminals that are…

Machine Learning · Computer Science 2018-11-16 Hadi Elzayn , Shahin Jabbari , Christopher Jung , Michael Kearns , Seth Neel , Aaron Roth , Zachary Schutzman

We present a novel linearizable wait-free queue implementation using single-word CAS instructions. Previous lock-free queue implementations from CAS all have amortized step complexity of $\Omega(p)$ per operation in worst-case executions,…

Distributed, Parallel, and Cluster Computing · Computer Science 2023-05-15 Hossein Naderibeni , Eric Ruppert

Locks are a classic data structure for concurrent programming. We introduce a type system to ensure that names of the asynchronous pi-calculus are used as locks. Our calculus also features a construct to deallocate a lock once we know that…

Logic in Computer Science · Computer Science 2023-09-15 Daniel Hirschkoff , Enguerrand Prebet

We introduce an automata-theoretic method for the verification of distributed algorithms running on ring networks. In a distributed algorithm, an arbitrary number of processes cooperate to achieve a common goal (e.g., elect a leader).…

Logic in Computer Science · Computer Science 2015-04-27 C. Aiswarya , Benedikt Bollig , Paul Gastin

We motivate and propose a new way of thinking about failure detectors which allows us to define, quite surprisingly, what it means to solve a distributed task \emph{wait-free} \emph{using a failure detector}. In our model, the system is…

Distributed, Parallel, and Cluster Computing · Computer Science 2012-05-15 Carole Delporte-Gallet , Hugues Fauconnier , Eli Gafni , Petr Kuznetsov