English
Related papers

Related papers: Operational Aspects of C/C++ Concurrency

200 papers

Proving the linearizability of highly concurrent data structures, such as those using optimistic concurrency control, is a challenging task. The main difficulty is in reasoning about the view of the memory obtained by the threads, because…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-08-07 Yotam M. Y. Feldman , Constantin Enea , Adam Morrison , Noam Rinetzky , Sharon Shoham

On modern supercomputers, asynchronous many task systems are emerging to address the new architecture of computational nodes. Through this shift of increasing cores per node, a new programming model with the focus on handle the fine-grain…

Distributed, Parallel, and Cluster Computing · Computer Science 2020-12-02 Patrick Diehl , Prashant K. Jha , Hartmut Kaiser , Robert Lipton , Martin Levesque

Concurrent computations resemble conversations. In a conversation, participants direct utterances at others and, as the conversation evolves, exploit the known common context to advance the conversation. Similarly, collaborating software…

Programming Languages · Computer Science 2024-09-09 Tony Garnock-Jones

A number of high-level languages and libraries have been proposed that offer novel and simple to use abstractions for concurrent, asynchronous, and distributed programming. The execution models that realise them, however, often change over…

Software Engineering · Computer Science 2018-01-18 Claudio Corrodi , Alexander Heußner , Christopher M. Poskitt

A central problem in sequential decision making is to develop algorithms that are practical and computationally efficient, yet support the use of flexible, general-purpose models. Focusing on the contextual bandit problem, recent progress…

Machine Learning · Computer Science 2022-07-14 Yinglun Zhu , Dylan J. Foster , John Langford , Paul Mineiro

Dataflow languages provide natural support for specifying constraints between objects in dynamic applications, where programs need to react efficiently to changes of their environment. Researchers have long investigated how to take…

Programming Languages · Computer Science 2011-04-13 Camil Demetrescu , Irene Finocchi , Andrea Ribichini

The design and implementation of precise static analyzers for significant fragments of modern imperative languages like C, C++, Java and Python is a challenging problem. In this paper, we consider a core imperative language that has several…

Programming Languages · Computer Science 2007-06-28 Roberto Bagnara , Patricia M. Hill , Andrea Pescetti , Enea Zaffanella

Despite widespread interest in multicore computing, concur- rency models in mainstream languages often lead to subtle, error-prone code. Observationally Cooperative Multithreading (OCM) is a new approach to shared-memory parallelism.…

We develop denotational and operational semantics designed with continuations for process calculi based on CCS extended with mechanisms offering support for multiparty interactions. We investigate the abstractness of this continuation…

Programming Languages · Computer Science 2024-11-01 Eneia Nicolae Todoran , Gabriel Ciobanu

We investigate the problem of runtime analysis of C11 programs under Multi-Copy-Atomic semantics (MCA). Under MCA, one can analyze program outcomes solely through interleaving and reordering of thread events. As a result, obtaining…

Programming Languages · Computer Science 2021-05-28 Sanjana Singh , Divyanjali Sharma , Subodh Sharma

We develop new methods to statically bound the resources needed for the execution of systems of concurrent, interactive threads. Our study is concerned with a \emph{synchronous} model of interaction based on cooperative threads whose…

Programming Languages · Computer Science 2007-06-13 Roberto Amadio , Silvano Dal Zilio

Task parallelism research has traditionally focused on optimizing computation-intensive applications. Due to the proliferation of commodity parallel processors, there has been recent interest in supporting interactive applications. Such…

Distributed, Parallel, and Cluster Computing · Computer Science 2019-06-20 Kyle Singer , Kunal Agrawal , I-Ting Angelina Lee

Over the years, several memory models have been proposed to capture the subtle concurrency semantics of C/C++.One of the most fundamental problems associated with a memory model M is consistency checking: given an execution X, is X…

Multi-threaded programs have traditionally fallen into one of two domains: cooperative and competitive. These two domains have traditionally remained mostly disjoint, with cooperative threading used for increasing throughput in…

Programming Languages · Computer Science 2018-07-11 Stefan K. Muller , Umut A. Acar , Robert Harper

The context of this work is cooperative scheduling, a concurrency paradigm, where task execution is not arbitrarily preempted. Instead, language constructs exist that let a task voluntarily yield the right to execute to another task. The…

Programming Languages · Computer Science 2023-12-29 Reiner Hähnle , Ludovic Henrio

Full formal descriptions of algorithms making use of quantum principles must take into account both quantum and classical computing components and assemble them so that they communicate and cooperate. Moreover, to model concurrent and…

Quantum Physics · Physics 2007-05-23 Marie Lalire , Philippe Jorrand

Since its introduction, Word2Vec and its variants are widely used to learn semantics-preserving representations of words or entities in an embedding space, which can be used to produce state-of-art results for various Natural Language…

Computation and Language · Computer Science 2016-06-28 Jeroen B. P. Vuurens , Carsten Eickhoff , Arjen P. de Vries

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

The concept of ownership in high level languages can aid both the programmer and the compiler to reason about the validity of memory operations. Previously, ownership semantics has been used successfully in high level automatic program…

Programming Languages · Computer Science 2024-08-14 Siddharth Priya , Arie Gurfinkel

Common approaches to concurrent programming begin with languages whose semantics are naturally sequential and add new constructs that provide limited access to concurrency, as exemplified by futures. This approach has been quite successful,…

Programming Languages · Computer Science 2023-06-22 Klaas Pruiksma , Frank Pfenning