WoTUG - The place for concurrent processes

CPA2006 Programme

The CPA2006 programme comprises two full day, one half day, and two evening sessions. A late bar each evening and a conference dinner provides ample opportunity to relax, socialize, and discuss issues informally. An overview of the academic programme, some history, motivation and a welcome can be found in the Preface to the CPA2006 Proceedings.

The conference opens on Sunday evening with registration, an evening meal, and the first of the informal Fringe sessions. Monday morning will open with a welcome address by professor Peter Welch, the Chairman of WoTUG and Professor of Parallel Computing at the University of Kent (England). The second Fringe is on Monday evening. The conference will close after lunch on Wednesday.

Schedule

Sunday / September 17, 2006
18:00 Registration at Braid Hills Hotel
18:30 Buffet Supper at Braid Hills Hotel: Comiston Suite
20:00 Fringe Session I: Comiston Suite
22:00 Social Gathering
Monday / September 18, 2006
08:30 Registration
Session 1 Chair: Peter Welch
09:15 Welcome
09:30 Classification of Programming Errors in Parallel Message Passing Systems Jan B. Pedersen, University of Nevada, Las Vegas, Nevada, USA (Abstract).
10:00 A Circus Development and Verification of an Internet Packet Filter. Alistair A. McEwan, Department of Computing, University of Surrey, England. (Abstract)
10:30 Coffee / Tea in the Conference Suite
Session 2 Chair: Ian East
11:00 No Blocking on Yesterday's Embedded CSP Implementation (the Rubber Band of Getting it Right and Simple). Øyvind Teig, Autronica Fire and Security (A UTC Fire and Security company), Trondheim, Norway. (Abstract)
11:30 SystemCSP - Visual Notation. Bojan Orlic and Jan F. Broenink, CTIT and Control Engineering, Faculty of EE-Math-CS, University of Twente, the Netherlands. (Abstract)
12:00 A JCSP.net Implementation of a Massively Multiplayer Online Game. Shyam Kumar and G. S. (Dyke) Stiles, Electrical and Computer Engineering (Abstract)
12:30 Lunch in the Conference Suite.
Session 3 Chair: Brian Vinter
14:00 Portable CSP Based Design for Embedded Multi-Core Systems. Bernhard H. C. Sputh, Oliver Faust and Alastair R. Allen, Department of Engineering, University of Aberdeen, Scotland. (Abstract)
14:30 Software Specification Refinement and Verification Method with I-Mathic Studio. Gerald H. Hilderink, Imtech ICT Technical Systems, Eindhoven, The Netherlands. (Abstract)
15:00 Mobile Robot Control: The Subsumption Architecture and occam-pi. Jon Simpson, Christian L. Jacobsen and Matthew C. Jadud, Computing Laboratory, University of Kent, England. (Abstract)
15:30 Coffee / Tea in the Conference Suite
Session 4 Chair: Alastair Allen
16:00 TCP Input Threading in High Performance Distributed Systems. Hans H. Happe, Department of Mathematics and Computer Science, University of Southern Denmark, Denmark. (Abstract)
16:30 Rain: A New Concurrent Process-Oriented Programming Language. Neil Brown, Computing Laboratory, University of Kent, Canterbury, Kent, England. (Abstract)
17:00 An Introduction to CSP.NET. Alex A. Lehmberg and Martin N. Olsen, Department of Computer Science, University of Copenhagen, Denmark. (Abstract)
18:00 Dinner Briads Hotel, Comiston Suite
20:00 Fringe Session II: Comiston Suite
23:00 Social Gathering
Tuesday / September 19, 2006
Session 5 Chair: Herman Roebbers
09:00 Compositions of Concurrent Processes. Mark Burgin, Department of Computer Science, University of California at Los Angeles, USA, and Marc L. Smith, Department of Computer Science, Vassar College, New York, USA. (Abstract)
09:30 CSP for .NET Based on JCSP. Kevin Chalmers and Sarah Clayton, School of Computing, Napier University, Edinburgh, Scotland. (Abstract)
10:00 A Study of Percolation Phenomena in Process Networks. Oliver Faust, Bernhard H. C. Sputh and Alastair R. Allen, Department of Engineering, University of Aberdeen, Scotland. (Abstract)
10:30 Coffee / Tea in the Triangle
Session 6 Chair: Jon Kerridge
11:00 Interacting Components. Bojan Orlic and Jan F. Broenink, CTIT and Control Engineering, Faculty of EE-Math-CS, University of Twente, the Netherlands. (Abstract)
11:30 A Fast Resolution of Choice between Multiway Synchronisations. Peter Welch, Professor of Parallel Computing, University of Kent, England. (Abstract)
12:00 Lunch in the Triangle
Session 7 Chair: Øyvind Teig
14:00 Rain VM: Portable Concurrency through Managing Code. Neil Brown, Computing Laboratory, University of Kent, Canterbury, Kent, England. (Abstract)
14:30 Performance Evaluation of JCSP Micro Edition: JCSPme. Kevin Chalmers, Jon Kerridge and Imed Romdhani, School of Computing, Napier University, Edinburgh, Scotland. (Abstract)
15:00 A Cell Transterpreter. Damian J. Dimmich, Christian L. Jacobsen and Matthew C. Jadud, Computing Laboratory, University of Kent, Canterbury, Kent, England. (Abstract)
Session 8 Chair: Fred Barnes
16:00 Native Code Generation using the Transterpreter. Christian L. Jacobsen, Damian J. Dimmich and Matthew C. Jadud, Computing Laboratory, University of Kent, Canterbury, Kent, England. (Abstract)
16:30 Panel Session
17:30 (Return to hotel)
19:00 Sherry Reception: Queen's Room, Craighouse Campus
19:30 Conference Dinner: Castle Room Craighouse Campus
Wednesday / September 20, 2006
Session 9 Chair: Jan Broenink
09:00 Video Processing in occam-pi. Carl G. Ritson, Adam T. Sampson and Frederick R.M. Barnes, Computing Laboratory, University of Kent, England. (Abstract)
10:00 SpaceWire - DS-Links Reborn. Barry Cook and Paul Walker, 4Links Limited, England. (Abstract)
10:30 Ubiquitous Access to Site Specific Services by Mobile Devices: the Process View. Jon Kerridge and Kevin Chalmers, School of Computing, Napier University, Edinburgh, Scotland. (Abstract)
11:00 Coffee / Tea in the Triangle
Session 10 Chair: Jan Broenink
11:30 pony - The occam-pi Network Environment. Mario Schweigler and Adam T. Sampson, Computing Laboratory, University of Kent, England. (Abstract)
12:00 Compiling CSP Frederick R.M. Barnes, Computing Laboratory, University of Kent, England. (Abstract)
12:30 CPA2006 Best Paper Awards
WoTUG Annual General Members Meeting
13:00 Lunch at Braids Hill Hotel: Coniston Suite
(End of CPA2006)

Invited Talk

A Fast Resolution of Choice between Multiway Synchronisations.
Peter Welch, Professor of Parallel Computing, University of Kent, England.
 
Abstract. Communicating processes offer a natural and scaleable architecture for many computational systems: networks-within-networks, explicit dependencies (through 'visible plumbing', i.e. shared events), and explicit independencies (through 'air gaps', i.e. no shared events). CSP is a process algebra enabling the formal specification of such systems and their refinement to executable implementation. It allows the description of complex patterns of synchronisation between component processes and provides semantics sufficiently powerful to reason about non-determinism, multiway synchronisation, channel communication, deadlock and divergence.
      However, programming languages (such as occam-pi) and libraries (JCSP, CTJ, C++CSP, etc.), offering CSP primitives and operators, have always restricted certain combinations from use. The reasons were solely pragmatic: implementation overheads. The main restriction lies in the set of events that a process may offer - and non-deterministically choose between if more that one becomes available. The constraint is that if one process is choosing between event e and some other events, other processes offering e must do so only in a committed way - i.e. not as part of a choice of their own. The choice can then be resolved with a simple handshake. Hence, only the process on the input side of a channel may offer it within a choice construct (ALT) - an outputting process always commits. Similarly, choice between multiway synchronisations is banned; since symmetry allows no one process the privilege.
      This is unfortunate since free-wheeling choices between all kinds of event are routinely specified by CSP designers and they must be transformed into systems that meet the constraints. Because any process making such a choice withdraws all bar one of its offers to synchronise as it makes that choice, resolution is usually managed through a 2-phase commit protocol. This introduces extra channels, processes and serious run-time overheads. Without automated tools, that transformation is error prone. The resulting system is expressed at a lower level that is hard to maintain. Maintenance, therefore, takes place at the higher level and the transformations have continually to be re-applied.
      This talk presents a fast resolution of choice between multiway synchronisation (the most general form of CSP event). It does not involve 2-phase commit logic and its cost is linear in the number of choice events offered by the participants. A formal proof of its correctness (that the resolution is a traces-failures-divergences refinement of the specified CSP) has not been completed, but we are feeling confident. Preliminary bindings of this capability have been built into the JCSP library (version 1.0 rc6) and an experimental (read complete re-write) occam-pi compiler. This will remove almost all of the constraints in the direct and efficient realisation of CSP designs as executable code. An example of its use in a (very) simple model of blood clotting (from our TUNA project) will be presented.

Keywords. Fast choice, multiway synchronisation, events, processes, CSP, occam-pi.

Accepted Papers

SpaceWire - DS-Links Reborn.
Barry Cook and Paul Walker, 4Links Limited, England.
 
Abstract. DS-links were created to provide a low-latency, high performance data link between parallel processors. When the primary processor using them was withdrawn these links largely disappeared from view but were, in fact, still being used (albeit not for parallel computing) in the Space industry. The potential for these links, with their simple implementation, led to their adoption, in modified form, for a growing range of data communication applications. In 2003, the European Space Agency published a definition of DS-links known as SpaceWire. We briefly describe the original DS-links and detail how SpaceWire has kept or modified them to produce a now popular technology with a rapidly increasing number of implementations and wide take-up.
An Introduction to CSP.NET.
Alex A. Lehmberg and Martin N. Olsen, Department of Computer Science, University of Copenhagen, Denmark.
 
Abstract. This paper reports on CSP.NET, developed over the last three months at the University of Copenhagen. CSP.NET is an object oriented CSP library designed to ease concurrent and distributed programming in Microsoft.NET 2.0. The library supports both shared memory multiprocessor systems and distributed-memory multicomputers and aims towards making the architecture transparent to the programmer. CSP.NET exploits the power of .NET Remoting to provide the distributed capabilities and like JCSP, CSP.NET relies exclusively on operating system threads. A Name Server and a workerpool are included in the library, both implemented as Windows Services. This paper presents CSP.NET from a users perspective and provides a tutorial along with some implementation details and performance tests.

Keywords. CSP library, Microsoft.NET, CSP.NET

CSP for .NET Based on JCSP.
Kevin Chalmers and Sarah Clayton, School of Computing, Napier University, Edinburgh, Scotland.
 
Abstract. We present a CSP framework developed for the .NET platform, building upon the ideas developed for the JCSP library. Discussing the development of the core functionality and then onto extra features in .NET that can be taken advantage of, we have created an initial platform that can provide simple development of CSP style process networks. However, we demonstrate that the Microsoft .NET implementation is more resource hungry for multi-threaded applications than other approaches considered in this paper.

Keywords. CSP, .NET Framework, JCSP, Performance Evaluation

Performance Evaluation of JCSP Micro Edition: JCSPme.
Kevin Chalmers, Jon Kerridge and Imed Romdhani, School of Computing, Napier University, Edinburgh, Scotland.
 
Abstract. Java has become a development platform that has migrated from its initial focus for small form devices, to large full scale desktop and server applications and finally back to the small in the form of Java enabled mobile phones. Here we discuss the necessary requirements to convert the existing JCSP framework so that it can be used in these resource constrained systems. We also provide some performance comparisons on various platforms to evaluate this implementation.

Keywords. JCSP, Java 2 Micro Edition, Mobile Devices, Real-time systems.

Ubiquitous Access to Site Specific Services by Mobile Devices: the Process View.
Jon Kerridge and Kevin Chalmers, School of Computing, Napier University, Edinburgh, Scotland.
 
Abstract. The increasing availability of tri-band mobile devices with mobile phone, wi-fi and Bluetooth capability means that the opportunities for increased access by mobile devices to services provided within a smaller locality becomes feasible. This increase in availability might, however, be tempered by users switching off their devices as they are overloaded with a multitude of messages from a variety of sources. A wide range of opportunities can be realised if we can provide a managed environment in which people can access wireless services specific to a particular physical site or location in a ubiquitous manner, independent of the service, and they can also choose from which services they are willing to receive messages. These opportunities range from retail promotions as a person walks down the street, to shopper specific offers as people enter stores that utilise reward card systems, to information about bus arrivals at a bus stop, additional curatorial information within a museum and access to health records within a hospital environment. The CPA paradigm offers a real opportunity to provide such capability with mobile processes, rather than the current approach that, typically, gives users access to web pages.
A JCSP.net Implementation of a Massively Multiplayer Online Game.
Shyam Kumar and G. S. (Dyke) Stiles, Electrical and Computer Engineering Department, Utah State University, USA.
 
Abstract. We have developed a simple massively multiplayer online game system as a test bed for evaluating the usefulness and performance of JCSP.net. The system consists of a primary login server, secondary servers managing play on geographically distinct playing fields, and an arbitrary number of players. The basic structure of the game system is fairly simple, and has been verified to be free from deadlock and livelock using CSP and FDR. The JCSP.net implementation is straight-forward and includes over-writing buffers so that disconnected players will not block the servers and other players. Performance tests on local area networks under Windows demonstrate that five secondary servers easily support 1,000 machine-generated players making moves every two to five seconds. The player move end-to-end time was about 65 milliseconds, which is considered fast enough to support fast-action online games. Conversion from Windows to Linux required minimal effort; limited tests confirmed that versions using Linux alone, and Windows and Linux together, were also successful.

Keywords. Massively multiplayer online game, Java, JCSP.net, concurrency.

A Study of Percolation Phenomena in Process Networks.
Oliver Faust, Bernhard H. C. Sputh and Alastair R. Allen, Department of Engineering, University of Aberdeen, Scotland.
 
Abstract. Percolation theory provides models for a wide variety of natural phenomena. One of these phenomena is the dielectric breakdown of composite materials. This paper describes how we implemented the percolation model for dielectric breakdown in a massively parallel processing environment. To achieve this we modified the breadth-first search algorithm such that it works in probabilistic process networks. Formal methods were used to reason about this algorithm. Furthermore, this algorithm provides the basis for a JCSP implementation which models dielectric breakdowns in composite materials. The implementation model shows that it is possible to apply formal methods in probabilistic processing environments.

Keywords. Percolation, breadth-first search, JCSP, probabilistic process networks, channel poisoning.

Portable CSP Based Design for Embedded Multi-Core Systems.
Bernhard H. C. Sputh, Oliver Faust and Alastair R. Allen, Department of Engineering, University of Aberdeen, Scotland.
 
Abstract. Modern lifestyle depends on embedded systems. They are everywhere: sometimes they are hidden and at other times they are handled as a fashion accessory. In order to serve us better they have to do more and more tasks at the same time. This calls for sophisticated mechanisms to handle concurrency. In this paper we present CSP (Communicating Sequential Processes) as a method which helps to solve a number of problems of embedded concurrent systems. To be specific, we describe implementations of the commstime benchmark in multithreaded, multiprocessor and architecture fusion systems. An architecture fusion system combines machine and hardware-logic architectures. Our results are twofold. First, architecture fusion systems outperform all the other systems we tested. Second, we implemented all the systems without a change in the design philosophy. The second point is the more important result, because it shows the power of CSP based design methods.

Keywords. Embedded systems, system-on-chip, architecture fusion, multithreaded,
multi-core.

pony - The occam-pi Network Environment.
Mario Schweigler and Adam T. Sampson, Computing Laboratory, University of Kent, England.
 
Abstract. Although concurrency is generally perceived to be a hard subject, it can in fact be very simple, provided that the underlying model is simple. The occam-pi parallel processing language provides such a simple yet powerful concurrency model that is based on CSP and the pi-calculus. This paper presents pony, the occam-pi Network Environment. occam-pi and pony provide a new, unified, concurrency model that bridges inter- and intra-processor concurrency. This enables the development of distributed applications in a transparent, dynamic and highly scalable way. The first part of this paper discusses the philosophy behind pony, explains how it is used, and gives a brief overview of its implementation. The second part evaluates pony's performance by presenting a number of benchmarks.

Keywords. pony, occam-pi, KRoC, CSP, concurrency, networking, unified model,
inter-processor, intra-processor, benchmarks.

Video Processing in occam-pi.
Carl G. Ritson, Adam T. Sampson and Frederick R.M. Barnes, Computing Laboratory, University of Kent, England.
 
Abstract. The occam-pi language provides many novel features for concurrent software development. This paper describes a video processing framework that explores the use of these features for multimedia applications. Processes are used to encapsulate operations on video and audio streams; mobile data types are used to transfer data between them efficiently, and mobile channels allow the process network to be dynamically reconfigured at runtime. We present demonstration applications including an interactive video player. Preliminary benchmarks show that the framework has comparable overhead to multimedia systems programmed using traditional methods.

Keywords. occam-pi, concurrency, process networks, video, video processing.

Mobile Robot Control: The Subsumption Architecture and occam-pi.
Jon Simpson, Christian L. Jacobsen and Matthew C. Jadud, Computing Laboratory, University of Kent, England.
 
Abstract. Brooks' subsumption architecture is a design paradigm for mobile robot control that emphasises re-use of modules, decentralisation and concurrent, communicating processes. Through the use of occam-pi the subsumption architecture can be put to use on general purpose modern robotics hardware, providing a clean and robust development approach for the creation of robot control systems.

Keywords. Mobile robots, robot control, subsumption architecture, occam-pi.

SystemCSP - Visual Notation.
Bojan Orlic and Jan F. Broenink, CTIT and Control Engineering, Faculty of EE-Math-CS, University of Twente, the Netherlands.
 
Abstract. This paper introduces SystemCSP - a design methodology based on a visual notation that can be mapped onto CSP expressions. SystemCSP is a graphical design specification language aimed to serve as a basis for the specification of formally verifiable component-based designs of distributed real-time systems. It aims to be a graphical formalism that covers various aspects needed for the design of distributed real-time systems in single framework.

Keywords. CSP, formal methods, graphical modeling.

Interacting Components.
Bojan Orlic and Jan F. Broenink, CTIT and Control Engineering, Faculty of EE-Math-CS, University of Twente, the Netherlands.
 
Abstract. SystemCSP is a graphical modeling language based on both CSP and concepts of component-based software development. The component framework of SystemCSP enables specification of both interaction scenarios and relative execution ordering among components. Specification and implementation of interaction among participating components is formalized via the notion of interaction contract. The used approach enables incremental design of execution diagrams by adding restrictions in different interaction diagrams throughout the process of system design. In this way all different diagrams are related into a single formally verifiable system. The concept of reusable formally verifiable interaction contracts is illustrated by designing set of design patterns for typical fault tolerance interaction scenarios.

Keywords. SystemCSP, CSP, components, contracts, contexts, fault tolerance, design patterns, formal methods, graphical modeling, simulation, hierarchical verification.

Software Specification Refinement and Verification Method with I-Mathic Studio.
Gerald H. Hilderink, Imtech ICT Technical Systems, Eindhoven, The Netherlands.
 
Abstract. A software design usually manifests a composition of software specifications. It consists of hierarchies of black box and white box specifications which are subject to refinement verification. Refinement verification is a model-checking process that proves the correctness of software specifications using formal methods. Although this is a powerful tool for developing reliable and robust software, the applied mathematics causes a serious gap between academics and software engineers. I-Mathic comprehends a software specification refinement and verification method and a supporting toolset, which aims at eliminating the gap through hiding the applied mathematics by practical modelling concepts. The model-checker FDR is used for refinement verification and detecting deadlocks and livelocks in software specifications. We have improved the method by incorporating CSP programming concepts into the specification language. These concepts make the method suitable for a broader class of safety-critical concurrent systems. The improved I-Mathic is illustrated in this paper.
TCP Input Threading in High Performance Distributed Systems.
Hans H. Happe, Department of Mathematics and Computer Science, University of Southern Denmark, Denmark.
 
Abstract. TCP is the only widely supported protocol for reliable communication. Therefore, TCP is the obvious choice when developing distributed systems that need to work on a wide range of platforms. Also, for this to work a developer has to use the standard TCP interface provided by a given operating system.
      This work explores various ways to use TCP in high performance distributed systems. More precisely, different ways to use the standard Unix TCP API efficiently are explored, but the findings apply to other operating systems as well. The main focus is how various threading models affect TCP input in a process that has to handle both computation and I/O.
      The threading models have been evaluated in a cluster of Linux workstations and the results show that a model with one dedicated I/O thread generally is good. It is at most 10% slower than the best model in all tests, while the other models are between 30 to 194% slower in specific tests.

Keywords. Distributed systems, HPC, TCP.

Rain: A New Concurrent Process-Oriented Programming Language.
Neil Brown, Computing Laboratory, University of Kent, Canterbury, Kent, England.
 
Abstract. This paper details the design of a new concurrent process-oriented programming language, Rain. The language borrows heavily from occam-p and C++ to create a new language based on process-oriented programming, marrying channel-based communication, a clear division between statement and expression, and elements of functional programming. An expressive yet simple type system, coupled with templates, underpins the language. Modern features such as Unicode support and 64-bit integers are included from the outset, and new ideas involving permissions and coding standards are also proposed. The language targets a new virtual machine, which is detailed in a companion paper along with benchmarks of its performance.

Keywords. Process-oriented programming, Concurrency, Language design, Rain.

Rain VM: Portable Concurrency through Managing Code.
Neil Brown, Computing Laboratory, University of Kent, Canterbury, Kent, England.
 
Abstract. A long-running recent trend in computer programming is the growth in popularity of virtual machines. However, few have included good support for concurrency - a natural mechanism in the Rain programming language. This paper details the design and implementation of a secure virtual machine with support for concurrency, which enables portability of concurrent programs. Possible implementation ideas of many-to-many threading models for the virtual machine kernel are discussed, and initial benchmarks are presented. The results show that while the virtual machine is slow for standard computation, it is much quicker at running communication-heavy concurrent code - within an order of magnitude of the same native code.

Keywords. Process-oriented programming, Concurrency, VirtualMachine, VM, Rain.

No Blocking on Yesterday's Embedded CSP Implementation (the Rubber Band of Getting it Right and Simple).
Øyvind Teig, Autronica Fire and Security (A UTC Fire and Security company), Trondheim, Norway.
 
Abstract. This article is a follow-up after the paper "From message queue to ready queue", presented at the ERCIM Workshop last year. A (mostly) synchronous layer had been implemented on top of an existing asynchronous run-time system. After that workshop, we discovered that the initial implementation contained two errors: both concerning malignant process rescheduling associated with timers and 'reuse' of the input side of a channel. Also, the set of process/dataflow patterns was not sufficient. To keep complexity low, we have made two new patterns to reflect better the semantic needs inherent in the application. Our assumption of correctness is also, this time, based both on heuristics and 'white-board reasoning'. However, both the previous and this paper have been produced before any first shipment of the product, and well within full-scale testing. Our solutions and way of attacking the problems have been in an industrial tradition.

Keywords. Case study, embedded, channel, run-time system.

A Cell Transterpreter.
Damian J. Dimmich, Christian L. Jacobsen and Matthew C. Jadud, Computing Laboratory, University of Kent, Canterbury, Kent, England.
 
Abstract. The Cell Broadband Engine is a hybrid processor which consists of a PowerPC core and eight vector co-processors on a single die. Its unique design poses a number of language design and implementation challenges. To begin exploring these challenges, we have ported the Transterpreter to the Cell Broadband Engine. The Transterpreter is a small, portable runtime for concurrent languages and can be used as a platform for experimenting with language concepts. This paper describes a preliminary attempt at porting the Transterpreter runtime to the Cell Broadband Engine and explores ways to program it using a concurrent language.

Keywords. Cell processor, Transterpreter, Portable run-time environments.

Native Code Generation using the Transterpreter.
Christian L. Jacobsen, Damian J. Dimmich and Matthew C. Jadud, Computing Laboratory, University of Kent, Canterbury, Kent, England.
 
Abstract. We are interested in languages that provide powerful abstractions for concurrency and parallelism that execute everywhere, efficiently. Currently, the existing runtime environments for the occam-pi programming language provide either one of these features (portability) or some semblance of the other (performance). We believe that both can be achieved through the careful generation of C from occam-pi, and demonstrate that this is possible using the Transterpreter, a portable interpreter for occam-pi, as our starting point.

Keywords. Transterpreter, native code, GCC, occam-pi.

Compositions of Concurrent Processes.
Mark Burgin, Department of Computer Science, University of California at Los Angeles, USA,
and Marc L. Smith, Department of Computer Science, Vassar College, New York, USA.
 
Abstract. Using the extended model for view-centric reasoning, EVCR, we focus on the many possibilities for concurrent processes to be composed. EVCR is an extension of VCR, both models of true concurrency; VCR is an extension of CSP, which is based on an interleaved semantics for modeling concurrency. VCR, like CSP, utilizes traces of instantaneous events, though VCR permits recording parallel events to preserve the perception of simultaneity by the observer(s). But observed simultaneity is a contentious issue, especially for events that are supposed to be instantaneous. EVCR addresses this issue in two ways. First, events are no longer instantaneous; they occur for some duration of time. Second, parallel events need not be an all-or-nothing proposition; it is possible for events to partially overlap in time. Thus, EVCR provides a more realistic and appropriate level of abstraction for reasoning about concurrent processes. With EVCR, we begin to move from observation to the specification of concurrency, and the compositions of concurrent processes. As one example of specification, we introduce a description of I/O-PAR composition that leads to simplified reasoning about composite I/O-PAR processes.

Keywords. Event, trace, composition, process, true concurrency, I/O-PAR.

A Circus Development and Verification of an Internet Packet Filter.
Alistair A. McEwan, Department of Computing, University of Surrey, England.
 
Abstract. In this paper, we present the results of a significant and large case study in Circus. Development is top-down - from a sequential abstract specification about which safety properties can be verified, to a highly concurrent implementation on a Field Programmable Gate Array. Development steps involve applying laws of Circus allowing for the refinement of specifications; confidence in the correctness of the development is achieved through the applicability of the laws applied; proof obligations are discharged using the model-checker for CSP, FDR, and the theorem prover for Z, Z/Eves. An interesting feature of this case study is that the design of the implementation is guided by domain knowledge of the application - the application of this domain knowledge is supported by, rather than constrained by the calculus. The design is not what would have been expected had the calculus been applied without this domain knowledge. Verification highlights a curious error made in early versions of the implementation that were not detected by testing.

Keywords. Circus, Development, Verification, Reconfigurable hardware, Handel-C.

Classification of Programming Errors in Parallel Message Passing Systems.
Jan B. Pedersen, University of Nevada, Las Vegas, Nevada, USA.
 
Abstract. In this paper we investigate two major topics; firstly, through a survey given to graduate students in a parallel message passing programming class, we categorize the errors they made (and the ways they fixed the bugs) into a number of categories. Secondly, we analyze these answers and provide some insight into how software could be built to aid the development, deployment, and debugging of parallel message passing systems. We draw parallels to similar studies done for sequential programming, and finally show how the idea of multilevel debugging relates to the results from the survey.

Keywords. Parallel programming errors, Debugging, Multilevel debugging, Parallel programming.

Compiling CSP.
Frederick R.M. Barnes, Computing Laboratory, University of Kent, England.
 
Abstract. CSP, Hoare's Communicating Sequential Processes, is a formal language for specifying, implementing and reasoning about concurrent processes and their interactions. Existing software tools that deal with CSP directly are largely concerned with assisting formal proofs. This paper presents an alternative use for CSP, namely the compilation of CSP systems to executable code. Themain motivation for this work is in providing a means to experimentwith relatively large CSP systems, possibly consisting millions of concurrent processes - something that is hard to achieve with the tools currently available.

Keywords. CSP, compilers, occam-pi, concurrency.