Abstract
Parallel software needs formal descriptions and mathematically verified tools for its core concepts that are data-distribution and inter-process exchanges or synchronizations. Existing formalisms are either non-specific, like process algebras, or unrelated to standard Computer Science, like algorithmic skeletons or parallel design patterns. This has negative effects on undergraduate training, general understanding and mathematically-verified software tools for scalable programming. To fill a part of this gap, we adapt the classical theory of finite automata to bulk-synchronous parallel computing (BSP) by defining BSP words, BSP automata and BSP regular expressions. BSP automata are built from vectors of finite automata, one per computational unit location. In this first model the vector of automata is enumerated, hence the adjective enumerated in the title. We also show symbolic (intensional) notations to avoid this enumeration. The resulting definitions and properties have applications in the areas of data-parallel programming and verification, scalable data-structures and scalable algorithm design.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
\(Q^i\) is the finite set of states, \(\delta \) the transition function, \(q^i \in Q^i\) the initial state and \(F^i \subseteq Q^i\) the non-empty set of accepting states.
- 2.
This notion of empty transitions is convenient but theoretically delicate. In the case of finite automata it preserves all elementary properties but that is not the case for communicating automata. For example Milner’s CCS process algebra [17] uses a spontaneous-transition symbol \(\tau \) with a similar property, but this changes the so-called bisimulation semantics of communicating automata. A more conservative process algebra can be built by replacing \(\tau \) with an explicit clock-tick symbol \(\Theta \) [1]. The resulting algebra of processes combines a simple bisimulation semantics with the algebraic simplicity (e.g. distributive law) similar to regular languages.
References
Anantharaman, S., Hains, G.: A synchronous bisimulation-based approach for information flow analysis. In: Third Workshop on Automated Verification of Critical Systems: (AVOCS’03), Southampton, (UK) (2003)
Benzaken, C.: Systèmes formels: introduction à la logique et à la théorie des langages. Masson (1991)
Brüggemann-Klein, A.: Regular expressions into finite automata. Theoret. Comput. Sci. 120(2), 197–213 (1993)
Brzozowski, J.A.: Derivatives of regular expressions. J. ACM 11(4), 481–494 (1964)
D’Antoni, L., Veanes, M.: Minimization of symbolic automata. In: Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’14, pp. 541–553. ACM (2014)
Gécseg, F.: Products of Automata. Springer (1986)
Hill, J.M.D., McColl, B., Stefanescu, D.C., Goudreau, M.W., Lang, K., Rao, S.B., Suel, T., Tsantilas, T., Bisseling, R.H.: BSPlib: The BSP programming library. Parallel Comput. 24(14) (1998)
Hopcroft, J.: An n log n algorithm for minimizing states in a finite automaton. Technical Report No. STAN-CS-70-190, Stanford University, Department of Computer Science (1971)
John, M.: Howie. Automata and languages. Clarendon Press, Oxford (1991)
Kleene, S.C.: Representation of events in nerve nets and finite automata. Automata Stud., 3–41 (1956)
Loulergue, F., Hains, G.: Functional parallel programming with explicit processes: Beyond SPMD. Lecture Notes in Computer Science, vol. 1300. Springer (1997)
Loulergue, F., Hains, G., Foisy, Ch.: A calculus of recursive-parallel BSP programs. Sci. Comput. Programm. (2000)
Mäkinen, E.: On lexicographic enumeration of regular and context-free languages. Acta Cybern. 13(1), 55–61 (1997)
McColl, W.F.: Scalable computing. In: van Leeuwen, J. (ed.) Computer Science Today. LNCS, vol. 1000. Springer (1995)
McNaughton, Robert: Elementary Computability, Formal Languages and Automata. Prentice-Hall, Englewood Cliffs, NJ (1982)
Merlin, A., Hains, G.: A bulk-synchronous parallel process algebra. Comput. Lang. Syst. Struct. 33(3), 111–133 (2007)
Milner, R.: Communication and Concurrency. Prentice Hall, New York (1989)
Pin, J.-É.: Variétés de Langages Formels. Masson, Paris (1984)
Turing, A.: On computable numbers with an application to the entscheidungs problem. Proc. Lond. Math. Soc. 2(42), 230–265 (1936)
Valiant, L.G.: A bridging model for parallel computation. CACM 33(8), 103 (1990)
Wood, D.: Theory of Computation. Wiley (1987)
Ziadi, D., Ponty, J.-L., Champarnaud, J.-M.: Passage d’une expression rationnelle à un automate fini non-déterministe. Bull. Belgian Math. Soc. Simon Stevin 4(1), 177 (1997)
Acknowledgments
The author thanks Frédéric Loulergue, Thibaut Tachon, Arnaud Lallouet and Chong Li for their insightful remarks and help with proofreading. This work has been supported by the author’s position at Huawei/CSI-FRC.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendices
Appendix 1
1.1 BSP Automaton Versus Product of Automata
The theory of products of automata is developed by Gécseg in [6]. It describes decompositions of finite automata as products of simpler ones, and is closely related to the theory of semigroup decompositions.
A BSP computation is more than a vector of sequential computations, and this is reflected by the fact that a BSP automaton is more than a vector of DFA. This is relatively obvious but we make it here completely explicit by comparing that definition (Definition 2) with that of a product automaton.
Let \(A^i = (Q^i, \varSigma , \delta ^i, q_0^i, F^i), i\in [p]\) be a vector of DFA and \(A= (A^0, \ldots , A^{p-1}, \varDelta )\) a BSP automaton built from them. Gécseg’s definition (Definition 4.2 in [6]) of machine product applies to Mealy machines i.e. DFA with an output function added. For the purpose of language recognition the output functions are not necessary, so we consider the machine product \(\prod _i A^i\) as the Gécseg without outputs. According to Definition 4.2 in [6], \(\prod _i A^i\) is a state machine with vector states \(\prod _i Q^i\), just like the BSP automaton, a new externally-defined alphabet X, and a special transition function \(\delta _\psi \) based on the externally-given function
such that
where \(<x^0,\ldots ,x^{p-1}> = \phi ((<q^0,\ldots ,q^{p-1}>, x)\).
It is trivial to show that the automaton product can simulate the asynchronous parts of a BSP computation. But the structure of \(\delta _\psi \) is not the same as a synchronization function \(\varDelta \). The product automaton could simulate the BSP automaton but at the expense of an unnatural encoding e.g. \(X = (\varSigma ^*)^p \times \prod _i Q^i\) to let \(\phi \) distinguish asynchronous versus synchronous applications of \(\varDelta \).
But an alphabet which contains states and trace histories is hardly a natural (and low-complexity) encoding. Following this theoretical direction would defeat the purpose of BSP automata that is not the study of algebraic decompositions, or decidability, but rather to investigate programming notations having BSP implementations.
Appendix 2
2.1 Regular Expressions
Regular expressions are a well-known notation for the languages of finite automata. The definitions and properties we state below can be found in every textbook on finite automata for example Chap. 3 of [21]. The languages denoted by regular expressions are called regular, and that class of languages is the same as those recognized by a DFA or its equivalent, non-deterministic variants.
A regular expression is an expression r from the following grammar:
where \(a\in \varSigma \) is any symbol from the alphabet. We write \(\text{ RE } \) for the set of regular expressions . The language of a regular expression is defined by \(L:\text{ RE } \rightarrow \mathcal {P}(\varSigma ^*)\) where function L translates \(\emptyset \) to the empty language, \(\epsilon \) (resp. a) to a singleton empty word (resp. singleton one-symbol word), \(r_1 r_2\) to the concatenation of languages, \(r^*\) to \(L(r)^* = \bigcup _{n\ge 0} L(r)^n\) and \(r_1 + r_2\) to the union of the two languages. The union, concatenation, *-closure of two regular languages is regular. The complement of a regular language is also regular [15].
For \(r\in RE\), there exists a NFA A such that \(L(A) = L(r)\). A time-optimal quadratic time algorithm for this transformation is described in [3]. It has been improved to a linear-space and parallelisable algorithm in [22]. Both use the Glushkov automation of r whose states are the positions in r’s syntax tree.
Inversely, for A a finite automaton, there exists \(r \in RE\) such that \(L(r)= L(A)\). The two equivalence properties are called Kleene’s theorems [10].
Rights and permissions
Copyright information
© 2017 Springer International Publishing Switzerland
About this chapter
Cite this chapter
Hains, G. (2017). Enumerated BSP Automata. In: Adamatzky, A. (eds) Emergent Computation . Emergence, Complexity and Computation, vol 24. Springer, Cham. https://doi.org/10.1007/978-3-319-46376-6_10
Download citation
DOI: https://doi.org/10.1007/978-3-319-46376-6_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-46375-9
Online ISBN: 978-3-319-46376-6
eBook Packages: EngineeringEngineering (R0)