Concurrent Systems Engineering

Electrical and Computer Engineering
Utah State University

Most recent change to a Concurrent Systems page: April, 2006


Since 1985 this group has been involved in the development of concurrent systems for real-time and off-line data acquisition and processing in experimental science and engineering. Data acquisition applications have included ionospheric radars and laser-spectroscopy systems. Scientific applications have included the processing of ionospheric radar data, fluid dynamics, spectroscopy data, the design of distributed database networks, image compression, and task allocation on multiprocessor networks. Approaches to these problems have included sequential and parallel simulated annealing, parallel expectation maximization, parallel genetic algorithms, and the flux-corrected transport algorithm for fluid dynamics. Hybrids of annealing, branch & bound, and genetic algorithms have also been studied.

Most of the projects in the past were developed using various parallel dialects of C, occam, and FORTRAN. Over the past few years we have started using Java with CSP (and .net) extensions. Java itself is a relatively secure language, and when extended with the new CSP features and the ability to distribute systems over the internet, provides a powerful tool for building safe and reliable distributed concurrent applications. CSP-based C and occam packages are now also available in networked versions.

CASE tools (e.g., FDR and SPIN) are now available for automatically verifying that CSP- or Promela-based systems correctly implement formal specifications and are free from deadlock and livelock. Thus we are now able to design, prove, and implement complex concurrent systems far more rapidly than in the past - since the tricky parts are sorted out prior to implementation.

We are continually developing new examples of CSP-based concurrent (and distributed) applications for Java, C, and occam; pointers to the CSP scripts used to prove their correctness and safety, source, and some Java runnable applets are available under the entries below. Examples using Promela and SPIN will be added this Summer.

April 2006: We have recently developed a version of annealing that is very easy to apply to a variety of problems and is equally easy to implement on distributed systems. See the Annealing section under Research Projects below.


Projects are described in the following sections. Related matters:

Why Study in Utah?


[USU] [Electrical and Computer Engineering]


Last change to a page: April 2006
Send questions and comments to:
Dyke Stiles