English
Related papers

Related papers: Exposing Non-Atomic Methods of Concurrent Objects

200 papers

Finite-state models are ubiquitous in the study of concurrent systems, especially controllers and servers that operate in a repetitive cycle. In this paper, we show how to extract finite state models from a run of a multi-threaded Java…

Software Engineering · Computer Science 2024-07-26 KP Jevitha , Bharat Jayaraman , M Sethumadhavan

Synchronisation classes are an important building block for shared memory concurrent programs. Thus to reason about such programs, it is important to be able to verify the implementation of these synchronisation classes, considering atomic…

Software Engineering · Computer Science 2018-06-27 Afshin Amighi , Marieke Huisman , Stefan Blom

Monotonicity in concurrent systems stipulates that, in any global state, extant system actions remain executable when new processes are added to the state. This concept is not only natural and common in multi-threaded software, but also…

Programming Languages · Computer Science 2014-06-26 Alexander Kaiser , Daniel Kroening , Thomas Wahl

Heterogeneous parallel error detection is an approach to achieving fault-tolerant processors, leveraging multiple power-efficient cores to re-execute software originally run on a high-performance core. Yet, its complex components, gathering…

Hardware Architecture · Computer Science 2025-04-03 Zhe Jiang , Minli Liao , Sam Ainsworth , Dean You , Timothy Jones

Android, the #1 mobile app framework, enforces the single-GUI-thread model, in which a single UI thread manages GUI rendering and event dispatching. Due to this model, it is vital to avoid blocking the UI thread for responsiveness. One…

Software Engineering · Computer Science 2018-08-10 Lingling Fan , Ting Su , Sen Chen , Guozhu Meng , Yang Liu , Lihua Xu , Geguang Pu

Unit testing is an essential part of the software development process, which helps to identify issues with source code in early stages of development and prevent regressions. Machine learning has emerged as viable approach to help software…

Software Engineering · Computer Science 2022-03-25 Michele Tufano , Shao Kun Deng , Neel Sundaresan , Alexey Svyatkovskiy

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

The overall problem addressed in this paper is the long-standing problem of program correctness, and in particular programs that describe systems of parallel executing processes. We propose a new method for proving correctness of parallel…

Programming Languages · Computer Science 2023-02-10 Frank S. de Boer , Einar Broch Johnsen , Violet Ka I Pun , Silvia Lizeth Tapia Tarifa

Task-parallel programs often enjoy deadlock freedom under certain restrictions, such as the use of structured join operations, as in Cilk and X10, or the use of asynchronous task futures together with deadlock-avoiding policies such as…

Programming Languages · Computer Science 2021-03-04 Caleb Voss , Vivek Sarkar

Developers often use microbenchmarks to choose the most performant implementation of a method or a class. On the Java Virtual Machine (JVM), this is commonly done using the Java Microbenchmark Harness (JMH) which addresses common pitfalls…

Programming Languages · Computer Science 2026-05-25 Filippo Schiavio , Lubomír Bulej , Walter Binder

Quantum computing testbeds exhibit high-fidelity quantum control over small collections of qubits, enabling performance of precise, repeatable operations followed by measurements. Currently, these noisy intermediate-scale devices can…

Recent progress on concatenated codes, especially many-hypercube codes, achieves unprecedented space efficiency. Yet two critical challenges persist in practice. First, these codes lack efficient implementations of addressable logical…

Hardware Architecture · Computer Science 2025-08-11 Pengyu Liu , Mingkuan Xu , Hengyun Zhou , Hanrui Wang , Umut A. Acar , Yunong Shi

The verification of linearizability -- a key correctness criterion for concurrent objects -- is based on trace refinement whose checking is PSPACE-complete. This paper suggests to use \emph{branching} bisimulation instead. Our approach is…

Programming Languages · Computer Science 2024-01-03 Xiaoxiao Yang , Joost-Pieter Katoen , Hao Wu

Atomic operations (atomics) such as Compare-and-Swap (CAS) or Fetch-and-Add (FAA) are ubiquitous in parallel programming. Yet, performance tradeoffs between these operations and various characteristics of such systems, such as the structure…

Distributed, Parallel, and Cluster Computing · Computer Science 2020-10-21 Hermann Schweizer , Maciej Besta , Torsten Hoefler

Traditional public blockchain systems typically had very limited transaction throughput because of the bottleneck of the consensus protocol itself. With recent advances in consensus technology, the performance limit has been greatly lifted,…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-02-11 Péter Garamvölgyi , Yuxi Liu , Dong Zhou , Fan Long , Ming Wu

Artificial Intelligence has gained a lot of traction in the recent years, with machine learning notably starting to see more applications across a varied range of fields. One specific machine learning application that is of interest to us…

Software Engineering · Computer Science 2023-05-10 Teodor Rares Begu

Software vulnerabilities are often detected via taint analysis, penetration testing, or fuzzing. They are also found via unit tests that exercise security-sensitive behavior with specific inputs, called vulnerability-witnessing tests.…

Software Engineering · Computer Science 2026-01-23 Emanuele Iannone , Quang-Cuong Bui , Riccardo Scandariato

AES, Advanced Encryption Standard, can be considered the most widely used modern symmetric key encryption standard. To encrypt/decrypt a file using the AES algorithm, the file must undergo a set of complex computational steps. Therefore a…

Distributed, Parallel, and Cluster Computing · Computer Science 2014-03-31 A. Barnes , R. Fernando , K. Mettananda , R. G. Ragel

We present a new approach to check for commutativity in concurrent programs from their state-chart graphs. A set of operations are commutative if changing the order of their execution on an object does not affect the abstract state of the…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-04-10 Kishore Debnath , Christina Peterson , Damian Dechev

Design of an efficient thread-safe concurrent data structure is a balancing act between its implementation complexity and performance. Lock-based concurrent data structures, which are relatively easy to derive from their sequential…

Programming Languages · Computer Science 2024-08-27 Callista Le , Kiran Gopinathan , Koon Wen Lee , Seth Gilbert , Ilya Sergey