Title:

Infinite synchronous concurrent algorithms and architectures

A Synchronous Concurrent Algorithm (SCA) is an algorithm consisting of a network of modules and channels, computing and communicating data in parallel, and synchronised by a global clock. There are many interesting and useful classes of algorithms that possess these general properties including clocked digital hardware, systolic arrays, neural networks, cellular automata and coupled map lattice dynamical systems. The first goal of this thesis is to extend the theory of SCAs by developing a model for infinite SCAs, i.e. SCAs with infinitely many modules. We do this in order to study (i) infinite parallelism, (ii) finite unbounded parallelism, (iii) the parameterisation of families of SCAs, (iv) how to model the fact that one SCA is an approximation of another and (v) how we can truncate larger SCAs to smaller parallel systems that are approximations to the original. The second goal of this thesis is to develop a fully algebraic model of SCAs. The algorithm, its structure and operation are represented by manysorted universal algebras and properties of the algorithm, such as correctness with respect to a specification, are coded using properties of universal algebras. Using the constructions of universal algebra we show how we can build algebras that represent families of SCAs. In particular, we use the direct limit construction to build a parameterised SCA for a family of SCAs. Infinite SCAs arise as the limit of families of finite SCAs. Throughout this thesis we illustrate the applications of the theory developed using detailed examples of algorithms found in digital hardware, systolic array design and dynamical systems. In particular, we make two indepth case studies of the correctness of families of algorithms.
