42 research outputs found
A Quantitative Study of Pure Parallel Processes
In this paper, we study the interleaving -- or pure merge -- operator that
most often characterizes parallelism in concurrency theory. This operator is a
principal cause of the so-called combinatorial explosion that makes very hard -
at least from the point of view of computational complexity - the analysis of
process behaviours e.g. by model-checking. The originality of our approach is
to study this combinatorial explosion phenomenon on average, relying on
advanced analytic combinatorics techniques. We study various measures that
contribute to a better understanding of the process behaviours represented as
plane rooted trees: the number of runs (corresponding to the width of the
trees), the expected total size of the trees as well as their overall shape.
Two practical outcomes of our quantitative study are also presented: (1) a
linear-time algorithm to compute the probability of a concurrent run prefix,
and (2) an efficient algorithm for uniform random sampling of concurrent runs.
These provide interesting responses to the combinatorial explosion problem
Quantitative and Algorithmic aspects of Barrier Synchronization in Concurrency
In this paper we address the problem of understanding Concurrency Theory from a combinatorial point of view. We are interested in quantitative results and algorithmic tools to refine our understanding of the classical combinatorial explosion phenomenon arising in concurrency. This paper is essentially focusing on the the notion of synchronization from the point of view of combinatorics. As a first step, we address the quantitative problem of counting the number of executions of simple processes interacting with synchronization barriers. We elaborate a systematic decomposition of processes that produces a symbolic integral formula to solve the problem. Based on this procedure, we develop a generic algorithm to generate process executions uniformly at random. For some interesting sub-classes of processes we propose very efficient counting and random sampling algorithms. All these algorithms have one important characteristic in common: they work on the control graph of processes and thus do not require the explicit construction of the state-space
Enumeration and Random Generation of Concurrent Computations
In this paper, we study the shuffle operator on concurrent processes (represented as trees) using analytic combinatorics tools. As a first result, we show that the mean width of shuffle trees is exponentially smaller than the worst case upper-bound. We also study the expected size (in total number of nodes) of shuffle trees. We notice, rather unexpectedly, that only a small ratio of all nodes do not belong to the last two levels. We also provide a precise characterization of what ``exponential growth'' means in the case of the shuffle on trees. Two practical outcomes of our quantitative study are presented: (1) a linear-time algorithm to compute the probability of a concurrent run prefix, and (2) an efficient algorithm for uniform random generation of concurrent runs
A Decidable Characterization of a Graphical Pi-calculus with Iterators
This paper presents the Pi-graphs, a visual paradigm for the modelling and
verification of mobile systems. The language is a graphical variant of the
Pi-calculus with iterators to express non-terminating behaviors. The
operational semantics of Pi-graphs use ground notions of labelled transition
and bisimulation, which means standard verification techniques can be applied.
We show that bisimilarity is decidable for the proposed semantics, a result
obtained thanks to an original notion of causal clock as well as the automatic
garbage collection of unused names.Comment: In Proceedings INFINITY 2010, arXiv:1010.611
On Linear Time and Congruence in Channel-passing Calculi
International audienceProcess algebras such as CSP or the Pi-calculus are theories to reason about concurrent software. The Pi-calculus also introduces channel passing to address specific issues in mobility. Despite their similarity, the languages expose salient divergences at the formal level. CSP is built upon trace semantics while labeled transition systems and bisimulation are the privileged tools to discuss the Pi-calculus semantics. In this paper, we try to bring closer both approaches at the theoretical level by showing that proper trace semantics can be built upon the Pi-calculus. Moreover, by introducing locations, we obtain the same discriminative power for both the trace and bisimulation equivalences, in the particular case of early semantics. In a second part, we propose to develop the semantics of a slightly modified language directly in terms of traces. This language retains the full expressive power of the Pi-calculus and most notably supports channel passing. Interestingly, the resulting equivalence, obtained from late semantics, exhibits a nice congruence property over process expressions
Principes et pratiques de la programmation en pi-calcul
National audienceNous Ă©tudions la problĂ©matique du mĂ©lange de paradigmes de programmation variĂ©s plongĂ©s dans un environnement concurrent. Dans cette perspective, nous poursuivons un cheminement similaire Ă celui qui conduit du λ-calcul aux langages fonctionnels, mais en prenant comme point de dĂ©part le Ï-calcul. Nous proposons la machine abstraite des Ï-threads dont la principale originalitĂ© est lâabsence de pile dâexĂ©cution. Cette caractĂ©ristique permet de nous reposer dans nos implĂ©mentations sur des algorithmes simples et naturellement concurrents, notamment pour ce qui concerne lâordonnancement et le ramasse-miettes. Pour ce dernier, nous proposons un algorithme permettant de rĂ©cupĂ©rer trĂšs simplement les cycles de processus en interblocage et autres structures bloquantes
A Stackless Runtime Environment for a Pi-calculus
International audienceThe Pi-calculus is a formalism to model and reason about highly concurrent and dynamic systems. Most of the expressive power of the language comes from the ability to pass communication channels among concurrent processes, as any other value. We present in this paper the CubeVM, an interpreter architecture for an applied variant of the Pi-calculus, focusing on its operational semantics. The main characteristic of the CubeVM comes from its stackless architecture. We show, in a formal way, that the resource management model inside the VM may be greatly simplified without the need for nested stack frames. This is particularly true for the garbage collection of processes and channels. The proposed GC, based on a reference counting scheme, is highly concurrent and, most interestingly, does automatically detect and reclaim cycles of disabled processes. We also address the main performance issues raised by the fine-grained concurrency model of the Pi-calculus. We introduce the reactive variant of the semantics that allows, when applicable, to increase the performance drastically by bypassing the scheduler. We define the language subset of processes in so called chain-reaction forms for which the sequential semantics can be proved statically. We illustrate the expressive power and performance gains of such chain-reactions with examples of functional, dataflow and object-oriented systems. Encodings for the pure Pi-calculus are also demonstrated