Skip to main content

Enumerated BSP Automata

  • Chapter
  • First Online:
Emergent Computation

Part of the book series: Emergence, Complexity and Computation ((ECC,volume 24))

  • 1345 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 169.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 219.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 219.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 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. 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

  1. 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)

    Google Scholar 

  2. Benzaken, C.: Systèmes formels: introduction à la logique et à la théorie des langages. Masson (1991)

    Google Scholar 

  3. Brüggemann-Klein, A.: Regular expressions into finite automata. Theoret. Comput. Sci. 120(2), 197–213 (1993)

    Article  MathSciNet  MATH  Google Scholar 

  4. Brzozowski, J.A.: Derivatives of regular expressions. J. ACM 11(4), 481–494 (1964)

    Article  MathSciNet  MATH  Google Scholar 

  5. 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)

    Google Scholar 

  6. Gécseg, F.: Products of Automata. Springer (1986)

    Google Scholar 

  7. 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)

    Google Scholar 

  8. 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)

    Google Scholar 

  9. John, M.: Howie. Automata and languages. Clarendon Press, Oxford (1991)

    Google Scholar 

  10. Kleene, S.C.: Representation of events in nerve nets and finite automata. Automata Stud., 3–41 (1956)

    Google Scholar 

  11. Loulergue, F., Hains, G.: Functional parallel programming with explicit processes: Beyond SPMD. Lecture Notes in Computer Science, vol. 1300. Springer (1997)

    Google Scholar 

  12. Loulergue, F., Hains, G., Foisy, Ch.: A calculus of recursive-parallel BSP programs. Sci. Comput. Programm. (2000)

    Google Scholar 

  13. Mäkinen, E.: On lexicographic enumeration of regular and context-free languages. Acta Cybern. 13(1), 55–61 (1997)

    MathSciNet  MATH  Google Scholar 

  14. McColl, W.F.: Scalable computing. In: van Leeuwen, J. (ed.) Computer Science Today. LNCS, vol. 1000. Springer (1995)

    Google Scholar 

  15. McNaughton, Robert: Elementary Computability, Formal Languages and Automata. Prentice-Hall, Englewood Cliffs, NJ (1982)

    MATH  Google Scholar 

  16. Merlin, A., Hains, G.: A bulk-synchronous parallel process algebra. Comput. Lang. Syst. Struct. 33(3), 111–133 (2007)

    MATH  Google Scholar 

  17. Milner, R.: Communication and Concurrency. Prentice Hall, New York (1989)

    Google Scholar 

  18. Pin, J.-É.: Variétés de Langages Formels. Masson, Paris (1984)

    MATH  Google Scholar 

  19. Turing, A.: On computable numbers with an application to the entscheidungs problem. Proc. Lond. Math. Soc. 2(42), 230–265 (1936)

    MATH  Google Scholar 

  20. Valiant, L.G.: A bridging model for parallel computation. CACM 33(8), 103 (1990)

    Google Scholar 

  21. Wood, D.: Theory of Computation. Wiley (1987)

    Google Scholar 

  22. 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)

    MathSciNet  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Gaetan Hains .

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

$$\begin{aligned} \phi : (\prod _i Q^i)\times X \rightarrow \varSigma ^p \end{aligned}$$

such that

$$\begin{aligned} \delta _\psi (<q^0,\ldots ,q^{p-1}>, x) = <\delta ^0(q^0,x^0),\ldots , \delta ^{p-1}(q^{p-1},x^{p-1}) > \end{aligned}$$

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:

$$ r \;\;\text{::= }\;\; \emptyset \mid \epsilon \mid a \mid r r \mid r* \mid r + r $$

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

Reprints 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)

Publish with us

Policies and ethics