English
Related papers

Related papers: Towards Bug-Free Distributed Go Programs

200 papers

We address the problem of verifying message passing programs, defined as a set of parallel processes communicating through unbounded FIFO buffers. We introduce a bounded analysis that explores a special type of computations, called…

Programming Languages · Computer Science 2018-04-20 Ahmed Bouajjani , Constantin Enea , Kailiang Ji , Shaz Qadeer

This paper presents a practical solution for detecting data races in parallel programs. The solution consists of a combination of execution replay (RecPlay) with automatic on-the-fly data race detection. This combination enables us to…

Software Engineering · Computer Science 2007-05-23 Michiel Ronsse , Koen De Bosschere

Data races are critical issues in multithreaded program, leading to unpredictable, catastrophic and difficult-to-diagnose problems. Despite the extensive in-house testing, data races often escape to deployed software and manifest in…

Software Engineering · Computer Science 2024-12-20 Xudong Sun , Zhuo Chen , Jingyang Shi , Yiyu Zhang , Peng Di , Jianhua Zhao , Xuandong Li , Zhiqiang Zuo

Making threaded programs safe and easy to reason about is one of the chief difficulties in modern programming. This work provides an efficient execution model for SCOOP, a concurrency approach that provides not only data race freedom but…

Distributed, Parallel, and Cluster Computing · Computer Science 2015-07-28 Scott West , Sebastian Nanz , Bertrand Meyer

We consider the problem of static deadlock detection for programs in the Go programming language which make use of synchronous channel communications. In our analysis, regular expressions extended with a fork operator capture the…

Programming Languages · Computer Science 2016-09-05 Kai Stadtmüller , Martin Sulzmann , Peter Thiemann

Resource allocation is the problem that a process may enter a critical section CS of its code only when its resource requirements are not in conflict with those of other processes in their critical sections. For each execution of CS, these…

Distributed, Parallel, and Cluster Computing · Computer Science 2012-06-01 Wim H. Hesselink

The high degree of parallelism and relatively complicated synchronization mechanisms in GPUs make writing correct kernels difficult. Data races pose one such concurrency correctness challenge, and therefore, effective methods of detecting…

Programming Languages · Computer Science 2021-11-25 Sagnik Dey , Mayant Mukul , Parth Sharma , Swarnendu Biswas

Go is a modern programming language gaining popularity in enterprise microservice systems. Concurrency is a first-class citizen in Go with lightweight ``goroutines'' as the building blocks of concurrent execution. Go advocates…

Software Engineering · Computer Science 2023-12-20 Georgian-Vlad Saioc , Dmitriy Shirchenko , Milind Chabbi

Consensus is an often occurring problem in concurrent and distributed programming. We present a programming language with simple semantics and build-in support for consensus in the form of communicating transactions. We motivate the need…

Programming Languages · Computer Science 2013-05-08 Carlo Spaccasassi , Vasileios Koutavas

Data races, a major source of bugs in concurrent programs, can result in loss of manpower and time as well as data loss due to system failures. OpenMP, the de facto shared memory parallelism framework used in the HPC community, also suffers…

Programming Languages · Computer Science 2021-11-09 Utpal Bora , Shraiysh Vaishay , Saurabh Joshi , Ramakrishna Upadrasta

Causal consistency is one of the most adopted consistency criteria for distributed implementations of data structures. It ensures that operations are executed at all sites according to their causal precedence. We address the issue of…

Logic in Computer Science · Computer Science 2016-11-16 Ahmed Bouajjani , Constantin Enea , Rachid Guerraoui , Jad Hamza

We consider a basic communication and sensing setup comprising a transmitter, a receiver and a sensor. The transmitter sends an encoded sequence to the receiver through a discrete memoryless channel, and the receiver is interested in…

Information Theory · Computer Science 2022-05-11 Han Wu , Hamdi Joudeh

In this paper, we revisit the communication vs. distributed computing trade-off, studied within the framework of MapReduce in [1]. An implicit assumption in the aforementioned work is that each server performs all possible computations on…

Information Theory · Computer Science 2017-05-26 Yahya H. Ezzeldin , Mohammed Karmoose , Christina Fragouli

In a distributed game we imagine a team Player engaging a team Opponent in a distributed fashion. Such games and their strategies have been formalised in concurrent games based on event structures. However there are limitations in founding…

Logic in Computer Science · Computer Science 2016-07-14 Marc de Visme , Glynn Winskel

Concurrency, the art of doing many things at the same time is slowly becoming a science. It is very difficult to master, yet it arises all over modern computing systems, both when the communication medium is shared memory and when it is by…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-12-17 Sergio Rajsbaum , Michel Raynal

Race conditions are a class of bugs in software where concurrent accesses to shared resources are not protected from each other. Consequences of race conditions include privilege escalation, denial of service, and memory corruption which…

Software Engineering · Computer Science 2024-04-02 Niels Dossche , Bert Abrath , Bart Coppens

Although delay-based congestion control protocols such as FAST promise to deliver better performance than traditional TCP Reno, they have not yet been widely incorporated to the Internet. Several factors have contributed to their lack of…

Networking and Internet Architecture · Computer Science 2014-05-22 Miguel Rodríguez Pérez , Sergio Herrería-Alonso , Manuel Fernández-Veiga , Cándido López-García

This paper presents a lightweight formalism (a trace) to model message-passing concurrent executions where some common common problems can be identified, like lost or delayed messages, some forms of deadlock, etc. In particular, we consider…

Programming Languages · Computer Science 2022-02-23 Juan José González-Abril , Germán Vidal

This article is on message-passing systems where communication is (a) synchronous and (b) based on the "broadcast/receive" pair of communication operations. "Synchronous" means that time is discrete and appears as a sequence of time slots…

Distributed, Parallel, and Cluster Computing · Computer Science 2016-01-14 Davide Frey , Hicham Lakhlef , Michel Raynal

Most existed work require knowledge about the effect of program instructions (or statements) to analyze and verify algorithms. In this paper, by revealing some findings on executions of object programs, we define two basic concepts --…

Programming Languages · Computer Science 2018-02-08 Xiaoxiao Yang