Abstract

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.

Highlights

  • The behaviour of a concurrent process can be seen as a set of atomic actions performed according to a certain ordering

  • In the paper [11] we provide a thorough study of such processes, and in particular we describe very efficient counting and uniform random generation algorithms

  • That is the purpose of the ordered product, introduced in the context of species theory, that we studied with an analytic combinatorics point of view in [8]

Read more

Summary

Introduction

The behaviour of a concurrent process can be seen as a set of atomic actions performed according to a certain ordering. Sub-classes) enables the statistical analysis of process behaviors, based on the sampling of random executions This is the second problem we address in our research project on the combinatorial study of concurrent systems. One main feature of this BITS-decomposition is that it produces a symbolic integral formula to solve the counting problem Based on this procedure, we develop a generic algorithm to sample process executions uniformly at random. We identify well-known structural sub-classes such as fork-join parallelism [17] and asynchronous processes with promises [21] In particular for these sub-classes we develop dedicated counting and random sampling algorithms: once the strategy is well understood, we further can simplify the decomposition in order to exhibit algorithms that not really removes nodes one by one. The counting formula we obtain for such processes is of a linear size (in the number of atomic actions in the processes, or equivalently in the number of vertices in their control graph)

Related work
Modelization of processes
Synctatic and semantic domain
The control graph of a process
The counting problem
Embedding in the hypercube: the order polytope
Uniform random generation of process executions
C Ð evalpIq
From tree posets to fork-join parallelism
Combinatorial classes and specifications
Tree processes
Fork-join processes and Multi Bulk Synchronous Parallel computing
The ordered product
Combinatorics of fork-join processes
Hook-length formula
PS aA eA
Asynchronism with promises
Experimental study
Conclusion and future work
A Appendix
B The context of Borel and Laplace transform
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.