English
Related papers

Related papers: The Virtues of Conflict: Analyzing Modern Concurre…

200 papers

Common implementations of core memory allocation components, like the Linux buddy system, handle concurrent allocation/release requests by synchronizing threads via spin-locks. This approach is clearly not prone to scale with large thread…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-05-22 Romolo Marotta , Mauro Ianni , Alessandro Pellegrini , Andrea Scarselli , Francesco Quaglia

Crary and Sullivan's Relaxed Memory Calculus (RMC) proposed a new declarative approach for writing low-level shared memory concurrent programs in the presence of modern relaxed-memory multi-processor architectures and optimizing compilers.…

Programming Languages · Computer Science 2019-04-12 Michael J. Sullivan , Karl Crary , Salil Joshi

Weak memory models specify the semantics of concurrent programs on multi-core architectures. Reasoning techniques for weak memory models are often specialized to one fixed model and verification results are hence not transferable to other…

Logic in Computer Science · Computer Science 2023-09-07 Lara Bargmann , Heike Wehrheim

Synchronization is the major obstacle to scalability in distributed computing. Concurrent operations on the shared data engage in synchronization when they encounter a \emph{conflict}, i.e., their effects depend on the order in which they…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-11-17 Petr Kuznetsov , Nathan Josia Schrodt

Memory disaggregation addresses memory imbalance in a cluster by decoupling CPU and memory allocations of applications while also increasing the effective memory capacity for (memory-intensive) applications beyond the local memory limit…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-02-07 Anil Yelam

We demonstrate that general-purpose memory allocation involving many threads on many cores can be done with high performance, multicore scalability, and low memory consumption. For this purpose, we have designed and implemented scalloc, a…

Programming Languages · Computer Science 2015-08-26 Martin Aigner , Christoph M. Kirsch , Michael Lippautz , Ana Sokolova

Branching and merging are common practices in collaborative software development, increasing developer's productivity. Despite such benefits, developers need to merge software and resolve merge conflicts. While modern merge techniques can…

Software Engineering · Computer Science 2025-07-10 Léuson Da Silva , Paulo Borba , Toni Maciel , Wardah Mahmood , Thorsten Berger , João Moisakis , Aldiberg Gomes , Vinícius Leite

Most STM systems are poorly equipped to support libraries of concurrent data structures. One reason is that they typically detect conflicts by tracking transactions' read sets and write sets, an approach that often leads to false conflicts.…

Distributed, Parallel, and Cluster Computing · Computer Science 2017-06-27 Thomas D. Dickerson , Paul Gazzillo , Maurice Herlihy , Eric Koskinen

Based on the two observations that diverse applications perform better on different multicore architectures, and that different phases of an application may have vastly different resource requirements, Pal et al. proposed a novel…

Programming Languages · Computer Science 2016-06-21 Sanjiva Prasad

Conflict-Based Search (CBS) is a state-of-the-art algorithm for multi-agent path finding. At the high level, CBS repeatedly detects conflicts and resolves one of them by splitting the current problem into two subproblems. Previous work…

Artificial Intelligence · Computer Science 2020-12-14 Taoan Huang , Bistra Dilkina , Sven Koenig

Detecting controversy in general web pages is a daunting task, but increasingly essential to efficiently moderate discussions and effectively filter problematic content. Unfortunately, controversies occur across many topics and domains,…

Information Retrieval · Computer Science 2018-12-04 Jasper Linmans , Bob van de Velde , Evangelos Kanoulas

In this paper, we extend the theory CCS for trees (CCTS) to value-passing CCTS (VCCTS), of which symbols have the capacity for receiving and sending data values, and a nonsequential semantics is proposed in an operational approach. In this…

Logic in Computer Science · Computer Science 2016-04-26 Shichao Liu , Ying Jiang

Partial orders are used extensively for modeling and analyzing concurrent computations. In this paper, we define two properties of partially ordered sets: width-extensibility and interleaving-consistency, and show that a partial order can…

Distributed, Parallel, and Cluster Computing · Computer Science 2014-10-07 Himanshu Chauhan , Vijay K. Garg

We describe a technique for systematic testing of multi-threaded programs. We combine Quasi-Optimal Partial-Order Reduction, a state-of-the-art technique that tackles path explosion due to interleaving non-determinism, with symbolic…

Programming Languages · Computer Science 2020-07-23 Daniel Schemmel , Julian Büning , César Rodríguez , David Laprell , Klaus Wehrle

In the development of operational semantics of concurrent systems, a key decision concerns the adoption of a suitable notion of execution model, which basically amounts to choosing a class of partial orders according to which events are…

Formal Languages and Automata Theory · Computer Science 2024-07-19 Maciej Koutny , Lukasz Mikulski

Most proof systems for concurrent programs assume the underlying memory model to be sequentially consistent (SC), an assumption which does not hold for modern multicore processors. These processors, for performance reasons, implement…

Logic in Computer Science · Computer Science 2013-04-11 Chinmay Narayan , Shibashis Guha , S. Arun-Kumar

We propose a novel, operational framework to formally describe the semantics of concurrent programs running within the context of a relaxed memory model. Our framework features a "temporary store" where the memory operations issued by the…

Programming Languages · Computer Science 2012-08-30 Gérard Boudol , Gustavo Petri , Bernard Serpette

Persistent Memory (PM) makes possible recoverable applications that can preserve application progress across system reboots and power failures. Actual recoverability requires careful ordering of cacheline flushes, currently done in two…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-09-02 Swapnil Haria , Mark D. Hill , Michael M. Swift

Traditional techniques for synchronization are based on \emph{locking} that provides threads with exclusive access to shared data. \emph{Coarse-grained} locking typically forces threads to access large amounts of data sequentially and,…

Distributed, Parallel, and Cluster Computing · Computer Science 2015-11-06 Srivatsan Ravi

Programs written in C/C++ often include inline assembly: a snippet of architecture-specific assembly code used to access low-level functionalities that are impossible or expensive to simulate in the source language. Although inline assembly…

Programming Languages · Computer Science 2024-09-04 Paulo Emílio de Vilhena , Ori Lahav , Viktor Vafeiadis , Azalea Raad