WoTUG - The place for concurrent processes

CPA2005 Programme

The CPA2005 programme comprises two full day, one half day, and two evening sessions. Each day will begin with a keynote talk. A late bar each evening and a conference dinner will provide ample opportunity to relax, socialize, and discuss issues informally.  Further details, some motivation and a welcome can be found in the Preface to the CPA2005 Proceedings.

The conference opens on Sunday evening with registration, an evening meal, and an informal evening session. Monday morning will open with a welcome address by professor Martin Rem, Director of SAI/Software Technology of Technische Universiteit Eindhoven, and the first keynote talk. The conference will close after lunch on Wednesday.

Keynote speakers

  • Ad Peeters, CEO of Handshake Solutions, High Tech Campus, Eindhoven.
  • H. Peter Hofstee, CELL Chief Architect and CELL Synergistic Processor Chief Architect at IBM Systems and Technology Group in Austin, Texas, United States of America.
  • Guy Broadfoot, Lead Consultant at Verum, Eindhoven.
  • Paul Stravers, Senior Scientist at Philips Research Laboratories, Eindhoven

Tentative Schedule

Please note that on Monday and Tuesday all presentations will be at the Blauwe Zaal (Blue Room) of the Auditorium at TU/e. On Wednesday, the presentations will be in Lecture Hall 4 of the Auditorium at TU/e.

Sunday / September 18, 2005
16:00 Early registration at Crown Hotel
18:00 Diner at Crown Hotel
20:00 Fringe Session I
- Basic introduction of methods, techniques, tools, terminology associated with CPA
- Christian L. Jacobsen and Damian J. Dimmich, A Transterpreter Adventure
- Peter Welch, A CSP Model for Mobile Channels
- Matt Hammond (BBC Research & Development), Kamaelia, an open source framework for developing highly concurrent systems.
23:00 Social Gathering
Monday / September 19, 2005
08:30 Registration / Reception at TU/e, Auditorium
08:55 Opening
by professor Martin Rem
 
09:00 Invited Talk
by Ad Peeters (CEO of Handshake Solutions, High Tech Campus, Eindhoven)
entitled "Handshake Technology: High Way to Low Power" (Abstract)
 
10:00 Arash Saifhashemi and Peter A. Beerel, High Level Modeling of Channel-Based Asynchronous Circuits Using Verilog (Abstract)
10:30 Coffee / Tea
11:00 Peter Welch and Fred Barnes, Mobile Barriers for occam-pi: Semantics, Implementation and Application (Abstract)
11:30 Damian J. Dimmich and Christian L. Jacobsen, A Foreign-Function Interface Generator for occam-pi (Abstract)
12:00 Fred Barnes, Interfacing C and occam-pi (Abstract)
12:30 John Markus Bjørndalen, Otto J Anshus and Brian Vinter, Interactive Computing with the Minimum intrusion Grid (MiG) (Abstract)
13:00 Lunch in TU/e, Senaatzaal
 
14:00 Invited Talk
by H. Peter Hofstee (CELL Chief Architect at IBM Systems and Technology Group, Austin, Texas, USA)
entitled "Communication and Synchronization in the Cell Processor" (Abstract)
 
15:00 Albert Schoute, Remco Seesink, Werner Dierssen and Niek Kooji, Fast Data Sharing within a Distributed, Multithreaded Control Framework for Robot Teams (Abstract)
15:30 Dusko S. Jovanovic, Bojan E. Orlic, and Jan F. Broenink, On Issues of Constructing an Exception Handling Mechanism for CSP-Based Process-Oriented Concurrent Software (Abstract)
16:00 Coffee / Tea
16:30 John Jakson, R16: a New Transputer Design for FPGAs (Abstract)
17:00 Brian Vinter, The Architecture of the Minimum intrusion Grid (MiG) (Abstract)
17:30 Kevin Chalmers and Jon Kerridge, jcsp.mobile: A Package Enabling Mobile Processes and Channels (Abstract)
18:00 Dinner at TU/e, University Club
20:00 Fringe Session II
- John Jakson - More on R16: a New Transputer Design for FPGAs
- Jon Kerridge, JCSP Game
- Dusko Jovanovic, On a combination of complementary dependability approaches for process-oriented CSP-based software architectures
-
Mario Schweigler, pony - The occam-pi Network Environment
- Eric Verhulst, On the Open License Society
-
Roger Gook (Celoxica), CSP by Stealth for Hardware Design
23:00 Social Gathering
Tuesday / September 20, 2005
08:30 Reception at TU/e, Auditorium
 
09:00 Invited Talk
by Guy Broadfoot (Lead Consultant at Verum, Eindhoven)
entitled "If Concurrency in Software is So Simple, Why is it So Hard?" (Abstract)
 
10:00 Marc L. Smith, A Unifying Theory of True Concurrency Based on CSP and Lazy Observation (Abstract)
10:30 Coffee / Tea
11:00 Adam Sampson, Peter Welch and Fred Barnes, Lazy Cellular Automata with Communicating Processes (Abstract)
11:30 Bernhard H.C. Sputh and Alastair R. Allen, JCSP-Poison: Safe Termination of CSP Process Networks (Abstract)
12:00 Vladimir Klebanov, Philipp Rümmer, Steffen Schlager and Peter H. Schmitt, Verification of JCSP Programs (Abstract)
12:30 Mihai Ivanovici, Razvan Beuran and Neil Davies, Assessing Application Performance in Degraded Network Environments: an FPGA-based Approach (Abstract)
13:00 Lunch in TU/e, Senaatzaal
14:00 Bart Rem, Ajeesh Gopalakrishnan, Tom J.H. Geelen and Herman Roebbers. Automatic Handel-C Generation from MATLAB and Simulink for Motion Control with an FPGA (Abstract)
14:30 Gerald. H. Hilderink, Exception Handling Mechanism in Communicating Threads for Java (Abstract)
15:00 Hans Henrik Happe and Brian Vinter, Improving TCP/IP Multicasting with Message Segmentation (Abstract)
15:30 Coffee / Tea
16:00 Ian East, Interfacing with Honeysuckle by Formal Contract (Abstract)
16:30 Jon Kerridge, Ken Barclay and John Savage, Groovy Parallel! A Return to the Spirit of occam? (Abstract)
17:00 W. B. Gardner, CSP++: How Faithful to CSPm? (Abstract)
17:30 Panel Session
19:30 Sherry Reception at DAF Museum
20:00 Dinner at DAF Museum
22:30 Visit to DAF Museum (Optional)
23:30 Social Gathering
Wednesday / September 21, 2005
08:30 Reception at TU/e, Auditorium
 
09:00 Invited Talk
by Paul Stravers (Senior Scientist at Philips Research Laboratories, High Tech Campus, Eindhoven)
entitled "Homogeneous Multiprocessing for Consumer Electronics" (Abstract)
 
10:00 Johnston Stewart, Paddy Nixon, Tim Walsh and Ian Ferguson, Towards Strong Mobility in the Shared Source CLI (Abstract)
10:30 Maarten H. Wiggers, Nikolay Kavaldjiev, Gerard J. M. Smit, Pierre G. Jansen, Architecture Design Space Exploration for Streaming Applications through Timing Analysis (Abstract)
11:00 Coffee / Tea
11:30 Marcel A. Groothuis, Geert K. Liet, Jan F. Broenink, gCSP occam Code Generation for RMoX (Abstract)
12:00 Alistair McEwan, Formally, on Guards (Abstract)
12:30 CPA2005 Best Paper Awards
CPA2005 Closing
WoTUG Annual General Members Meeting
13:00 Lunch at TU/e, Senaatzaal
15:00 Visit to Philips Museum (Optional) [Until 17:00]
(End of CPA2005)

Invited Talks

Handshake Technology: High Way to Low Power (Invited Talk)
Ad Peeters, Handshake Solutions, High Tech Campus, Eindhoven, The Netherlands
 
  Abstract - Handshake Solutions is a business line of the Philips Technology Incubator that has developed a design flow that enables a fast path to exploit the benefits from self-timed circuits, such as ultra-low power consumption and reduced electromagnetic emission. The quick route is enabled by the combination of two elements: a high-level “timeless” design language and an intermediate architecture based on handshake circuits. The design language, Haste, offers a syntax similar to behavioral Verilog, and in addition has explicit constructs for parallelism, communication, and hardware sharing. Haste is a behavioral language in the sense that it supports sequential composition of actions (such as assignments and communications) without reference to their timing, and also allows for data-dependent while-loops and other data dependent execution traces. As a parallel programming language, Haste supports CSP concepts such as synchronized channel communication, both via point-to-point channels and through broadcast and narrowcast channels. In addition, Haste also allows for the design of interfaces and protocols through its support of synthesizable edge/posedge/negedge (wait for event) and wait (for state) constructs.  Designers experience and have reported high productivity in Haste. It turns out that compared to synthesizable VHDL the number of code lines is more than halved, thus facilitating design-space exploration and re-use, and improving design productivity. Starting from Haste, one can compile to behavioral Verilog for functional verification, to clock-gated circuits for mapping onto FPGAs, and to clockless circuits for ultra-low-power and low-EME VLSI implementations. This compilation exploits an intermediate architecture based on handshake components, which implement language constructs of Haste using handshake protocols. Handshake components and circuits support a modular design style, and can easily be implemented both as a clocked and as a self-timed circuit. The Handshake Solutions design flow is complementary to and compatible with third party EDA tools, e.g. for logic synthesis, test-pattern generation, and placement and routing. The clockless design flow works with standard-cell libraries, does not need any special cells and has a scan-test solution implemented. The talk will highlight the expressive power of Haste, how it is implemented in handshake circuits, and how this has led to concrete IC designs on the market.

Keywords - Handshake, Haste, FPGA, communication, parallel programming language, parallelism, design language, clockless, interfaces, protocols.

Top

Communication and Synchronization in the Cell Processor (Invited Talk)
H. Peter Hofstee, IBM Systems and Technology Group, Austin, Texas, United States of America
 
  Abstract - This talk will first present an overview of the Cell Broadband Processor Architecture and then provide a more in-depth look at the various communication and synchronization mechanisms the architecture supports. We will look at the various types of coherent DMA commands supported in this architecture, at the asynchronous “channel” command interface between the core of the synergistic processor and its DMA processor, and at a number of other mechanisms that enable fast processor-to-processor communication for short messages.

Keywords - Cell processor, architecture, communication, synchronization, channel, DMA processor, command interface

Top

If Concurrency in Software is So Simple, Why is it So Hard? (Invited Talk)
Guy Broadfoot, Verum, Eindhoven, The Netherlands
 
  Abstract - Not yet available.

Top

Homogeneous Multiprocessing for Consumer Electronics (Invited Talk)
Paul Stravers, Philips Research Laboratories, Eindhoven, The Netherlands
 
  Abstract - Processor architectures have reached a point where it is getting increasingly hard to improve their performance without resorting to complex and exotic measures. Polack observed in 2000 that Intel processors had been “on the wrong side of a square law” for almost a decade. Embedded processors for consumer and telecommunication chips are now confronted with the same rule of diminishing returns. To further improve their performance, the processors are getting disproportionally bigger and consume much more energy per operation than previous generations. Traditionally, embedded systems-on-chip (SoC) have been designed as heterogeneous multiprocessors, where most processors are not programmable and a single control processor synchronizes all communication. Obvious advantages of such systems include low cost and low power consumption. In high-volume products, this outweighs disadvantages like a low degree of design reuse, little software reuse, and long product lead times. Despite all the hard work and good intentions it has proved difficult to establish a platform around heterogeneous SoC architectures. With the rise of non-recurrent engineering costs and an increasingly global and competitive semiconductor market, the need for a successful SoC platform is felt stronger than ever in the industry. Next to cost, the availability of qualified engineers is often an even bigger problem. Given that it is not unusual to spend several hundreds of person-years on software development for a single product, it is easy to see that even a multinational company can only have a very limited number of products in development at any point in time. The solution we propose is to move away from heterogeneous SoC and instead embrace homogeneous embedded multiprocessors. In this talk we discuss embedded multiprocessor architectures and how they relate to programming models. We contrast heterogeneous to homogeneous architectures, and we show how the traditional efficiency gap between the two is narrowing. We also discuss issues related to hardware and software reuse, and the quest for composable systems to speed up the often lengthy process of embedded system integration. Finally, we introduce Wasabi, the Philips high-performance homogeneous multiprocessor in 65nm technology, that will be available to the research community in 2006.

Keywords - Wasabi, SoC, homogeneous embedded multiprocessor, embedded multiprocessor architectures.

Top

Accepted Papers

Interfacing with Honeysuckle by Formal Contract
Ian East, Department for Computing, Oxford Brookes University, Oxford, England, United Kingdom
 
  Abstract - Honeysuckle is a new programming language that allows systems to be constructed from processes which communicate under service (client-server or master-servant) protocol. The model for abstraction includes a formal definition of both service and service-network (system or component). Any interface between two components thus forms a binding contract which will be statically verified by the compiler. An account is given of how such an interface is constructed and expressed in Honeysuckle, including how it may encapsulate state, and how access may be shared and distributed. Implementation is also briefly discussed.

Keywords
- Client-server protocol, compositionality, interfacing, component-based software development, deadlock-freedom, programming language.

Top

Groovy Parallel! A Return to the Spirit of occam?
Jon Kerridge, Ken Barclay and John Savage, The School of Computing, Napier University, Edinburgh, United Kingdom
 
  Abstract - For some years there has been much activity in developing CSP-like extensions to a number of common programming languages. In particular, a number of groups have looked at extensions to Java. Recent developments in the Java platform have resulted in groups proposing more expressive problem solving environments. Groovy is one of these developments. Four constructs are proposed that support the writing of parallel systems using the JCSP package. The use of these constructs is then demonstrated in a number of examples, both concurrent and parallel. A mechanism for writing XML descriptions of concurrent systems is described and it is shown how this is integrated into the Groovy environment. Finally conclusions are drawn relating to the use of the constructs, particularly in a teaching and learning environment.
 
Keywords - Groovy, JCSP, Parallel and Concurrent Systems, Teaching and Learning

Top

On Issues of Constructing an Exception Handling Mechanism for CSP-Based Process-Oriented Concurrent Software
Dusko S. Jovanovic, Bojan E. Orlic, Jan F. Broenink, Twente Embedded Systems Initiative, Drebbel Institute for Mechatronics and Control Engineering, Faculty of EE-Math-CS, University of Twente, Enschede, the Netherlands
 
  Abstract - This paper discusses issues, possibilities and existing approaches for fitting an exception handling mechanism (EHM) in CSP-based process-oriented software architectures. After giving a survey on properties desired for a concurrent EHM, specific problems and a few principal ideas for including exception handling facilities in CSP-designs are discussed. As one of the CSP-based frameworks for concurrent software, we extend CT (Communicating Threads) library with the exception handling facilities. The extensions result in two different EHM models whose compliance with the most important demands of concurrent EHMs (handling simultaneous exceptions, the mechanism formalization and efficient implementation) are observed.

Top

Automatic Handel-C Generation from MATLAB® and Simulink® for Motion Control with an FPGA
Bart Rem, Ajeesh Gopalakrishnan, Tom J.H. Geelen, Technische Universiteit Eindhoven, Eindhoven, The Netherlands
and Herman Roebbers, Philips TASS, Eindhoven, The Netherlands
 
  Abstract - In this paper, we demonstrate a structured approach to proceed from development in a high level-modeling environment to testing on the real hardware. The concept is introduced by taking an example scenario that involves automatic code generation of Handel-C for FPGAs. The entire process is substantiated with a prototype that generates Handel-C code from MATLAB®/Simulink® for most common Simulink® blocks. Furthermore, we establish the potential of the notion by generating Handel-C for an FPGA, which controls the flow of paper through the scanning section of a printer/copier. Additionally, we present another method to generate Handel-C from a state-based specification. Finally, to verify and validate the behavior of the generated code, we execute several levels of simulation, including software-in-the-loop and hardware-in-the-loop simulations.

Keywords - FPGA, embedded systems, motion control, Hardware Software Co-Design, MATLAB®, Hardware-in-the-Loop, Software-in-the-Loop, Co-Simulation, Electronic Design Automation (EDA), Automatic Document Feeder (ADF).

Top

JCSP-Poison: Safe Termination of CSP Process Networks
Bernhard H.C. Sputh and Alastair R. Allen, Department of Engineering, University of Aberdeen, Aberdeen, United Kingdom
 
  Abstract - This paper presents a novel technique for safe partial or complete process network termination. The idea is to have two types of termination messages / poison: LocalPoison and GlobalPoison. Injecting GlobalPoison into a process network results in a safe termination of the whole process network. In contrast, injected LocalPoison only terminates all processes until it is filtered out by Poison-Filtering Channels. This allows the creation of termination domains inside a process network. To make handling of a termination message easy, it is delivered as an exception and not as a normal message. The necessary Poisonable- and Poison-Filtering-Channels have been modelled in CSP and checked using FDR. A proof of concept implementation for Communicating Sequential Processes for Java (JCSP) has been developed and refined. Previously, JCSP offered no safe way to terminate the process network. When the user terminated the program, the Java Virtual Machine (JVM) simply stops all threads (processes), without giving the processes the chance to perform clean up operations. A similar technique is used to perform partial termination of process networks in JCSP, making it unsafe as well. The technique presented in this paper is not limited to JCSP, but can easily be ported to other CSP environments. Partial process network termination can be applied in the area of Software Defined Radio (SDR), because SDR systems need to be able to change their signal processing algorithms during runtime.

Keywords - JCSP, SDR, Partial Process Network Termination, Poisoning, Poionable-Channel, Poison-Filtering-Channel, Termination Domains

Top

jcsp.mobile: A Package Enabling Mobile Processes and Channels
Kevin Chalmers and Jon Kerridge, School of Computing, Napier University, Edinburgh, United Kingdom
 
  Abstract - The JCSPNet package from Quickstone provides the capability of transparently creating a network of processes that run across a TCP/IP network. The package also contains mechanisms for creating mobile processes and channels through the use of filters and the class Dynamic Class Loader, though their precise use is not well documented. The package jcsp.mobile rectifies this position and provides a set of classes and interfaces that facilitates the implementation of systems that use mobile processes and channels. In addition, the ability to migrate processes and channels from one processor to another is also implemented. The capability is demonstrated using a multi-user game running on an ad-hoc wireless network using a workstation and four PDAs.

Keywords - JCSP, JCSPNET, Mobile Processes and Channels, Dynamic Class Loading, Migratable Processes and Channels, Location Aware Computing

Top

CSP++: How Faithful to CSPm?
W. B. Gardner, Dept. of Computing & Information Science, University of Guelph, Canada
 
  Abstract - CSP++ is a tool that makes specifications written in CSPm executable and extensible. It is the basis for a technique called selective formalism, which allows part of a system to be designed in verifiable CSPm statements, automatically translated into C++, and linked with functions coded in C++. This paper describes in detail the subset of CSPm that can be accurately translated by CSP++, and how the CSP semantics are achieved by the runtime framework. It also explains restrictions that apply to coding in CSPm for software synthesis, and the rationale for those
restrictions.

Keywords - CSPm, C++, selective formalism

Top

Fast Data Sharing within a Distributed, Multithreaded Control Framework for Robot Teams
Albert Schoute, University of Twente, Enschede, The Netherlands,
Remco Seesink, Atos Origin, The Netherlands,
Werner Dierssen, Triopsys, The Netherlands,
and Niek Kooji, Qmagic, The Netherlands
 
  Abstract - In this paper a data sharing framework for multi-threaded, distributed control programs is described that is realized in C++ by means of only a few, powerful classes and templates. Fast data exchange of entire data structures is supported using sockets as communication medium. Access methods are provided that preserve data consistency and synchronize the data exchange. The framework has been successfully used to build a distributed robot soccer control system running on as many computers as needed.

Keywords - robot soccer, control software, distributed design, data sharing, multithreading, sockets

Top

Improving TCP/IP Multicasting with Message Segmentation
Hans Henrik Happe and Brian Vinter, Dept. of Mathematics & Computer Science, University of Southern Denmark, Odense M, Denmark
 
  Abstract - Multicasting is a very important operation in high performance parallel applications. Making this operation efficient in supercomputers has been a topic of great concern. Much effort has gone into designing special interconnects to support the operation. Today’s huge deployment of NoWs (Network of Workstations) has created a high demand for efficient software-based multicast solutions. These systems are often based on low-cost Ethernet interconnects without direct support for group communication. Basically TCP/IP is the only widely supported method of fast reliable communication, though it is possible to improve Ethernet performance at many levels – i.e., by-passing the operating system or using physical broadcasting. Low-level improvements are not likely to be accepted in production environments, which leaves TCP/IP as the best overall choice for group communication. In this paper we describe a TCP/IP based multicasting algorithm that uses message segmentation in order to lower the propagation delay. Experiments have shown that TCP is very inefficient when a node has many active connections. With this in mind we have designed the algorithm so that it has a worst-case propagation path length of O(log n) with a minimum of connections per node. We compare our algorithm with the binomial tree algorithm often used in TCP/IP MPI implementations.

Keywords - Multicasting, NoW, HPC

Top

Lazy Cellular Automata with Communicating Processes
Adam Sampson, Peter Welch and Fred Barnes, Computing Laboratory, University of Kent, Canterbury, Kent, England
 
  Abstract - Cellular automata (CAs) are good examples of systems in which large numbers of autonomous entities exhibit emergent behaviour.Using the occam-pi and JCSP communicating process systems, we show how to construct “lazy” and “just-in-time” models of cellular automata, which permit very efficient parallel simulation of sparse CA populations on shared-memory and distributed systems.

Keywords - CSP, occam-pi, JCSP, parallel, CA, Life, lazy, just-in-time, simulation

Top

A Unifying Theory of True Concurrency Based on CSP and Lazy Observation
Marc L. Smith, Department of Computer Science, Colby College, Waterville, Maine, USA
 
  Abstract - What if the CSP observer were lazy? This paper considers the consequences of altering the behavior of the CSP observer. Specifically, what implications would this new behavior have on CSP’s traces? Laziness turns out to be a useful metaphor. We show how laziness permits transforming CSP into a model of true concurrency (i.e., non-interleaved trace semantics). Furthermore, the notion of a lazy observer supports tenets of view-centric reasoning (VCR): parallel events (i.e., true concurrency), multiple observers (i.e., different views), and the possibility of imperfect observation. We know from the study of programming languages that laziness is not necessarily a negative quality; it provides the possibility of greater expression and power in the programswe write. Similarly, within the context of the Unifying Theories of Programming, a model of true concurrency— VCR — becomes possible by permitting (even encouraging) the CSP observer to be lazy.

Keywords - Unifying Theories of Programming, lazy observation, true concurrency

Top

The Architecture of the Minimum intrusion Grid (MiG)
Brian Vinter, University of Southern Denmark, Odense M, Denmark
 
  Abstract - This paper introduces the philosophy behind a new Grid model, the Minimum intrusion Grid, MiG. The idea behind MiG is to introduce a ‘fat’ Grid infrastructure which will allow much ‘slimmer’ Grid installations on both the user and resource side. This paper presents the ideas of MiG, some initial designs and finally a status report of the implementation.

Top

Verification of JCSP Programs
Vladimir Klebanov, University of Koblenz-Landau, Institute for Computer Science, Koblenz, Germany
Philipp Rümmer, Chalmers University of Technology, Dept. of Computer Science and Engineering, Gothenburg, Sweden
Steffen Schlager and Peter H. Schmitt, Universität Karlsruhe, Institute for Theoretical Computer Science, Karlsruhe, Germany
 
  Abstract - We describe the first proof system for concurrent programs based on Communicating Sequential Processes for Java (JCSP). The system extends a complete calculus for the JavaCard Dynamic Logic with support for JCSP, which is modeled in terms of the CSP process algebra. Together with a novel efficient calculus for CSP, a rule system is obtained that enables JCSP programs to be executed symbolically and to be checked against temporal properties. The proof system has been implemented within the KeY tool and is publicly available.

Keywords - Program verification, concurrency, Java, CSP, JCSP

Top

Assessing Application Performance in Degraded Network Environments: an FPGA-based Approach
Mihai Ivanovici, Razvan Beuran, CERN, Geneva, Switzerland, and
Neil Davies, Predictable Network Solutions, Bristol, UK
 
  Abstract - Network emulation is a technique that allows real-application performance assessment under controllable and reproducible conditions. We designed and implemented a hardware network emulator on an FPGA-based custom-design PCI platform. Implementation was facilitated by the use of the Handel-C programming language, that allows rapid development and fast translation into hardware and has specific constructs for developing systems with concurrent processes. We report on tests performed with web-browsing applications.

Keywords - Application performance assessment, network emulation, FPGA, hardware implementation, Handel-C

Top

Architecture Design Space Exploration for Streaming Applications through Timing Analysis
Maarten H. Wiggers, Nikolay Kavaldjiev, Gerard J. M. Smit, Pierre G. Jansen, Department of EEMCS, University of Twente, the Netherlands
 
  Abstract - In this paper we compare the maximum achievable throughput of different memory organisations of the processing elements that constitute a multiprocessor system on chip. This is done by modelling the mapping of a task with input and output channels on a processing element as a homogeneous synchronous dataflow graph, and use maximum cycle mean analysis to derive the throughput. In a HiperLAN\2 case study we show how these techniques can be used to derive the required clock frequency and communication latencies in order to meet the application’s throughput requirement on a multiprocessor system on chip that has one of the investigated memory organisations.

Top

A Foreign-Function Interface Generator for occam-pi
Damian J. Dimmich and Christian L. Jacobsen, Computing Laboratory, University of Kent, Canterbury, Kent, England
 
  Abstract - occam-pi is a programming language based on the CSP process algebra and the pi-calculus, and has a powerful syntax for expressing concurrency. occam-pi does not however, come with interfaces to a broad range of standard libraries (such as those used for graphics or mathematics). Programmers wishing to use these must write their own wrappers using occam-pi’s foreign function interface, which can be tedious and time consuming. SWIG offers automatic generation of wrappers for libraries written in C and C++, allowing access to these for the target languages supported by SWIG. This paper describes the occam-pi module for SWIG, which will allow automatic wrapper generation for occam-pi, and will ensure that occam-pi’s library base can be grown in a quick and efficient manner. Access to database, graphics and hardware interfacing libraries can all be provided with relative ease when using SWIG to automate the bulk of the work.

Top

Interfacing C and occam-pi
Fred Barnes, Computing Laboratory, University of Kent, Canterbury, Kent, England
 
  Abstract - This paper describes an extension to the KRoC occam-pi system that allows processes programmed in C to participate in occam-pi style concurrency. The uses of this are wide-ranging, from providing low-level C processes running concurrently as part of an occam-pi network, through to concurrent systems programmed entirely in C. The easily extended API for C processes is based on the traditional Inmos C API, used also by CCSP, extended to cover new features of occam-pi. One of the motivations for this work is to ease the development of low-level network communication infrastructures. A library that provides for networking of channel-bundles over TCP/IP networks is presented, in addition to initial performance figures.

Keywords - C, occam-pi, concurrency, processes, networks

Top

Interactive Computing with the Minimum intrusion Grid (MiG)
John Markus Bjørndalen, Otto J. Anshus, University of Tromsø, Tromsø, Norway
and Brian Vinter, University of Southern Denmark, Odense M, Denmark

 
  Abstract - Grid computing is finally starting to provide solutions for capacity computing, that is problem solving where there is a large number of independent tasks for execution. This paper describes the experiences with using Grid for capability computing, i.e. solving a single task efficiently. The chosen capability application is driving a very large display which requires enormous processing power due to its huge graphic resolution (7168 x 3072 pixels). Though we use an advanced Grid middleware, the conclusion is that new features are required to provide such coordinated calculations as the present application requires.

Top

High Level Modeling of Channel-Based Asynchronous Circuits Using Verilog
Arash Saifhashemi and Peter A. Beerel, University of Southern California, EE Department, Systems Division
 
  Abstract - In this paper we describe a method for modeling channel-based asynchronous circuits using Verilog HDL. We suggest a method to model CSP-like channels in Verilog HDL. This method also describes nonlinear pipelines and high level channel timing properties, such as forward and backward latencies, minimum cycle time, and slack. Using Verilog enables us to describe the circuit at many levels of abstraction and to use the commercially available CAD tools.

Keywords - CSP, Verilog, Asynchronous Circuits, Nonlinear Pipelines

Top

Mobile Barriers for occam-pi: Semantics, Implementation and Application
Peter Welch and Fred Barnes, Computing Laboratory, University of Kent, Canterbury, Kent, England
 
  Abstract - This paper introduces a safe language binding for CSP multiway events (barriers—both static and mobile) that has been built into occam-pi (an extension of the classical occam language with dynamic parallelism, mobile processes and mobile channels). Barriers provide a simple way for synchronising multiple processes and are the fundamental control mechanism underlying both CSP (Communicating Sequential Processes) and BSP (Bulk Synchronous Parallelism). Formal semantics (through modelling in classical CSP), implementation details and early performance benchmarks (16 nanoseconds per process per barrier synchronisation on a 3.2 GHz Pentium IV) are presented, along with some likely directions for future research. Applications are outlined for the fine-grained modelling of dynamic systems, where barriers are used for maintaining simulation time and the phased execution of time steps, coordinating safe and desired patterns of communication between millions (and more) of processes. This work forms part of our TUNA project, investigating emergent properties in large dynamic systems (nanite assemblies).

Keywords - Barriers, events, processes, mobility, occam-pi, CSP, pi-calculus

Top

Exception Handling Mechanism in Communicating Threads for Java
Gerald. H. Hilderink
 
  Abstract - The concept of exception handling is important for building reliable software. An exception construct is proposed in this paper, which implements an exception handling mechanism that is suitable for concurrent software architectures. The aim of this exception construct is to bring exception handling to a high-level of abstraction such that exception handling does scale well with the complexity of the system. This is why the exception construct supports a CSP-based software design approach. The proposed exception construct embraces informal semantics, but which are intuitive and suitable to software engineering. The exception construct is prototyped in the CSP for Java library, called CTJ.

Keywords - Exception handling, CSP, concurrency, real-time, embedded software.

Top

R16: a New Transputer Design for FPGAs
John Jakson
 
  Abstract - This paper describes the ongoing development of a new FPGA hosted Transputer using a Load Store RISC style Multi Threaded Architecture (MTA). The memory system throughput is emphasized as much as the processor throughput and uses the recently developed Micron 32MByte RLDRAM which can start fully random memory cycles every 3.3ns with 20ns latency when driven by an FPGA controller. The R16 shares an object oriented Memory Manager Unit (MMU) amongst multiple low cost Processor Elements (PEs) until the MMU throughput limit is reached. The PE has been placed and routed at over 300MHz in a Xilinx Virtex-II Pro device and uses around 500 FPGA basic cells and 1 Block RAM. The 15 stage pipeline uses 2 clocks per instruction to greatly simplify the hardware design which allows for twice the clock frequency of other FPGA processors. There are instruction and cycle accurate simulators as well as a C compiler in development. The compiler can now emit optimized small functions needed for further hardware development although compiling itself requires much work. Some occam and Verilog language components will be added to the C base to allow a mixed occam and event driven processing model. Eventually it is planned to allow occam or Verilog source to run as software code or be placed as synthesized co processor hardware attached to the MMU.

Keywords - Transputer, FPGA, Multi Threaded Architecture, occam, RLDRAM

Top

Towards Strong Mobility in the Shared Source CLI
Johnston Stewart, SmartLab, Dept. of Comp. and Inf. Sciences, University of Strathclyde, Glasgow
Paddy Nixon, Computer Science Department, University College Dublin, Dublin 4, Ireland
Tim Walsh, Department of Computer Science, University of Dublin, Trinity College, Dublin, Ireland
and Ian Ferguson, SmartLab, Dept. of Comp. and Inf. Sciences, University of Strathclyde, Glasgow
 
  Abstract - Migrating a thread while preserving its state is a useful mechanism to have in situations where load balancing within applications with intensive data processing is required. Strong mobility systems, however, are rarely developed or implemented as they introduce a number of major challenges into the implementation of the system. This is due to the fact that the underlying infrastructure that most computers operate on was never designed to accommodate such a system, and because of this it actually impedes the development of these systems to some degree. Using a system based around a virtual machine, such as Microsoft’s Common Language Runtime (CLR), circumnavigates many of these problems by abstracting away system differences. In this paper we outline the architecture of the threading mechanism in the shared source version of the CLR known as the Shared Source Common Language Infrastructure (SSCLI). We also outline how we are porting strong mobility into the SSCLI, taking advantage of its virtual machine.

Keywords - Thread Mobility, Virtual Machine, Common Language Runtime.

Top

gCSP occam Code Generation for RMoX
Marcel A. Groothuis, Geert K. Liet, Jan F. Broenink, Twente Embedded Systems Initiative, Drebbel Institute for Mechatronics and Control Engineering,University of Twente, Enschede, the Netherlands
 
  Abstract -  gCSP is a graphical tool for creating and editing CSP diagrams. gCSP is used in our labs to generate the embedded software framework for our control systems. As a further extension to our gCSP tool, an occam code generator has been constructed. Generating occam from CSP diagrams gives opportunities to use the Raw-Metal occam eXperiment (RMoX) as a minimal operating system on the embedded control PCs in our mechatronics laboratory. In addition, all processors supported by KRoC can be reached from our graphical CSP tool. The commstime benchmark is used to show the trajectory for gCSP code generation for the RMoX operating system. The result is a simple means for using RMoX in our laboratory for our control systems. We want to use RMoX for future research on distributed control and for performance comparisons between a minimal operating system and our CTC++/RT-linux systems.

Keywords - CSP, Embedded Control Systems, Real-time, occam

Top

Formally, on Guards
Alistair McEwan, Department of Computing, University of Surrey, UK

 

  Abstract - In this paper, we consider the problem of output guards in occam style programs. We show how these programs can be modelled in CSP. We then show how guarded outputs can be removed from the CSP specification such that the resulting implementation is a valid occam program. The techniques for removing guarded outputs are shown to be jointly complete -- meaning that any guarded output can be removed. Verification is performed using the model-checker for CSP, FDR.

Top