English
Related papers

Related papers: Towards Bug-Free Distributed Go Programs

200 papers

Many parallel programming models guarantee that if all sequentially consistent (SC) executions of a program are free of data races, then all executions of the program will appear to be sequentially consistent. This greatly simplifies…

Programming Languages · Computer Science 2023-07-21 Wenhao Wu , Jan Hückelheim , Paul D. Hovland , Ziqing Luo , Stephen F. Siegel

We sketch a simple language of concurrent objects which explores the design space between type systems and continuous testing. In our language, programs are collections of communicating automata checked automatically for multiparty…

Programming Languages · Computer Science 2016-09-08 Roly Perera , Simon J. Gay

Debugging parallel and distributed programs is a difficult activitiy due to the multiplicity of sequential bugs, the existence of malign effects like race conditions and deadlocks, and the huge amounts of data that have to be processed.…

Software Engineering · Computer Science 2009-10-02 Dieter Kranzlmueller , Christian Schaubschlaeger , Jens Volkert

Programming distributed applications free from communication deadlocks and races is complex. Preserving these properties when applications are updated at runtime is even harder. We present DIOC, a language for programming distributed…

Programming Languages · Computer Science 2015-04-01 Mila Dalla Preda , Maurizio Gabbrielli , Saverio Giallorenzo , Ivan Lanese , Jacopo Mauro

Correct concurrent programs are difficult to write; when multiple threads mutate shared data, they may lose writes, corrupt data, or produce erratic program behavior. While many of the data-race issues with concurrency can be avoided by the…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-04-30 Aditya Saligrama , Andrew Shen , Jon Gjengset

Interrupt-driven programs are widely deployed in safety-critical embedded systems to perform hardware and resource dependent data operation tasks. The frequent use of interrupts in these systems can cause race conditions to occur due to…

Software Engineering · Computer Science 2023-05-30 Yu Wang , Fengjuan Gao , Linzhang Wang , Tingting Yu , Ke Wang , Jianhua Zhao , Xuandong Li

It is often difficult to write code that you can ensure will be executed in the right order when programing for parallel compute tasks. Due to the way that today's parallel compute hardware, primarily Graphical Processing Units (GPUs),…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-03-13 Andrew Osterhout , Ganesh Gopalakrishnan

Distributed storage systems and databases are widely used by various types of applications. Transactional access to these storage systems is an important abstraction allowing application programmers to consider blocks of actions (i.e.,…

Programming Languages · Computer Science 2023-06-22 Sidi Mohamed Beillahi , Ahmed Bouajjani , Constantin Enea

In this paper, we consider a network of processors aiming at cooperatively solving mixed-integer convex programs subject to uncertainty. Each node only knows a common cost function and its local uncertain constraint set. We propose a…

Optimization and Control · Mathematics 2022-07-19 Mohammadreza Chamanbaz , Giuseppe Notarstefano , Francesco Sasso , Roland Bouffanais

Dynamic race detection is a highly effective runtime verification technique for identifying data races by instrumenting and monitoring concurrent program runs. However, standard dynamic race detection is incompatible with practical weak…

Programming Languages · Computer Science 2025-04-25 Roy Margalit , Michalis Kokologiannakis , Shachar Itzhaky , Ori Lahav

Discrete-event (DE) systems are concurrent programs where components communicate via tagged events, where tags are drawn from a totally ordered set. Reactors are an emerging model of computation based on DE and realized in the open-source…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-05-21 Peter Donovan , Erling Jellum , Byeonggil Jun , Hokeun Kim , Edward A. Lee , Shaokai Lin , Marten Lohstroh , Anirudh Rengarajan

Parallelism is often required for performance. In these situations an excess of non-determinism is harmful as it means the program can have several different behaviours or even different results. Even in domains such as high-performance…

Programming Languages · Computer Science 2022-10-28 Laure Gonnord , Ludovic Henrio , Lionel Morel , Gabriel Radanne

This paper describes a static verification framework for the message-passing fragment of the Go programming language. Our framework extracts models that over-approximate the message-passing behaviour of a program. These models, or…

Programming Languages · Computer Science 2020-04-06 Nicolas Dilley , Julien Lange

Much of the software we use in everyday life consists of distributed components (running on separate cores or even computers) that collaborate through communication (by exchanging messages). It is crucial to develop robust methods that can…

Logic in Computer Science · Computer Science 2024-03-04 Bas van den Heuvel

Rust is a popular programming language in building various low-level software in recent years. It aims to provide safe concurrency when implementing multi-threaded software through a suite of compiler checking rules. Unfortunately, there is…

Programming Languages · Computer Science 2019-02-07 Zeming Yu , Linhai Song , Yiying Zhang

We introduce and study the problem of detecting short races in an observed trace. Specifically, for a race type $R$, given a trace $\sigma$ and window size $w$, the task is to determine whether there exists an $R$-race $(e_1, e_2)$ in…

Programming Languages · Computer Science 2026-03-04 Minjian Zhang , Mahesh Viswanathan

Data races can significantly affect the executions of multi-threaded programs. Hence, one has to recur the results of data races to deterministically replay a multi-threaded program. However, data races are concealed in enormous number of…

Programming Languages · Computer Science 2011-07-13 Qi Guo , Yunji Chen , Tianshi chen , Ling Li

Distributed computing models typically assume reliable communication between processors. While such assumptions often hold for engineered networks, e.g., due to underlying error correction protocols, their relevance to biological systems,…

Distributed, Parallel, and Cluster Computing · Computer Science 2015-06-29 Ofer Feinerman , Bernhard Haeupler , Amos Korman

We consider the problem of making distributed computations robust to noise, in particular to worst-case (adversarial) corruptions of messages. We give a general distributed interactive coding scheme which simulates any asynchronous…

Data Structures and Algorithms · Computer Science 2017-02-27 Keren Censor-Hillel , Ran Gelles , Bernhard Haeupler

Choreographic programming promises a simple approach to the coding of concurrent and distributed systems: write the collective communication behaviour of a system of processes as a choreography, and then the programs for these processes are…

Programming Languages · Computer Science 2025-03-18 Eva Graversen , Fabrizio Montesi , Marco Peressotti