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]
Summary
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)
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
More From: Discrete Mathematics & Theoretical Computer Science
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.