Communicating Process Architectures 2016: Programme
The CPA 2016 programme comprises two full day sessions: keynote
presentations, refereed papers and, depending on
proposals, mini-workshops.
There will also be one open
fringe session on Sunday evening.
The conference dinner will be on Monday evening.
The list of keynote talks,
accepted papers, workshops and
fringe presentations is given below.
Within each category, items are listed by alphabetical order of first author/proposer surname.
This list is subject to revision (especially the fringe
programme, which remains open for proposals right up to the relevant sessions).
Schedule
Sunday, August 21st, 2016 |
19:00 |
Dinner (Caféen? Bar, Building 4, Universitetsparken 15) [Note: the question-mark is part of the Café name, not an uncertainty for the location.] |
20:30 |
Fringe Session 1 (Caféen? Bar) |
|
Note: because of the nature of the Fringe, the following items are provisional; more may be added and the ordering may change. |
|
Messing Around with Timeouts. In Contracts?
(Abstract)
(Slides PDF)
Øyvind Teig, Autronica Fire and Security AS, Trondheim, Norway
|
|
T42 Transputer Design in FPGA (Year Two Design Status Report)
(Abstract)
(Slides PDF)
Uwe Mielke (a), Martin Zabel (b) and Michael Bruestle (c)
(a) Infineon Technologies, Dresden, Germany
(b) Institut für Technische Informatik, Technische Universität Dresden, Germany
(c) Electronics Engineer, Vienna, Austria
|
|
Concurrency: Quit Obsessing about Your Code and Start Worrying about Your Data!
(Abstract)
(Slides PDF)
Brian Vinter, Niels Bohr Institute, University of Copenhagen, Denmark
|
|
Visualisation Facilities of the Graphical CSP tool TERRA
(Abstract)
(Slides PDF)
Zhou Lu and Jan F. Broenink, Robotics and Mechatronics, CTIT Institute, University of Twente, the Netherlands
|
|
Distributed Computing on a (tiny) Budget: Building a Raspberry Pi Zero Microcluster
(Abstract)
Richard Miller, Miller Research, Oxford, England
|
23:00 |
Bar closes |
Monday, August 22nd, 2016 |
08:30 |
Registration (Auditorium 07, H.C. Ørsted Institute (aka HCØ), Universitetsparken 5) |
09:15 |
Welcome (Brian Vinter) |
Session 1 |
(Auditorium 07, HCØ) |
09:30 |
JVMCSP – Approaching Billions of Processes on a Single-Core JVM
(Abstract)
(Slides PDF)
Cabel Shrestha and Jan Bækgaard Pedersen, Department of Computer Science, University of Nevada Las Vegas, USA
|
10:00 |
Communicating Generators in JavaScript
(Abstract)
(Slides PDF)
Kurt Micallef and Kevin Vella, Department of Computer Science, University of Malta, Msida, Malta
|
10:30 |
Tea/coffee |
Session 2 |
(Auditorium 07, HCØ) |
11:00 |
Connecting Two Robot-Software Communicating Architectures: ROS and LUNA
(Abstract)
(Slides PDF)
W. Mathijs van der Werff and Jan F. Broenink, Robotics and Mechatronics, CTIT Institute, University of Twente, the Netherlands
|
11:30 |
Simulation and Visualisation Tool Design for Robot Software
(Abstract)
(Slides PDF)
Zhou Lu, Tjalling Ran and Jan F. Broenink, Robotics and Mechatronics, CTIT Institute, University of Twente, the Netherlands
|
12:00 |
High Performance Tape Streaming in Tapr
(Abstract)
(Slides PDF)
Klaus Birkelund Jensen and Brian Vinter, Niels Bohr Institute, University of Copenhagen, Denmark
|
12:30 |
Lunch (BioCenter, Ole Maaløes Vej 5) |
Session 3 |
(Auditorium 07, HCØ) |
14:00 |
Extensions to the Concurrent Communications Library
(Abstract)
(Slides PDF)
Kenneth Skovhede and Brian Vinter, Niels Bohr Institute, University of Copenhagen, Denmark
|
14:30 |
Workshop Session 1 |
|
|
Building a Sensor System for a Large Scale Arctic Observatory
(Abstract)
John Markus Bjørndalen (a), Otto J. Anshus (a), Tore Brox-Larsen (a), Phuong Hoai Ha (a), Rolf Anker Ims (b), Jane Uhd Jepsen (c), Siw Turid Killengreen (b), Eivind Flittie Kleiven (b), Eeva Marjatta Soininen (b), Nigel Gilles Yoccoz (b) and Alexander Horsch (a)
(a) Department of Computer Science, University of Tromsø, Norway
(b) Department of Arctic and Marine Biology, University of Tromsø, Norway
(c) Norwegian Institute for Nature Research, Norway
|
15:30 |
Tea/coffee |
18:00 |
Conference dinner (Restaurant HØST, Nørre Farimagsgade 41) |
20:30 |
Bar (Ørsted Ølbar, Nørre Farimagsgade) |
Tuesday, August 23rd, 2016 |
Session 4 |
(Auditorium 07, HCØ) |
09:30 |
Keynote Address 1 |
|
|
Computational Challenges for Climate Modelling
(Abstract)
(Slides PDF)
Markus Jochum, Niels Bohr Institute, University of Copenhagen, Denmark
|
10:30 |
Tea/coffee |
Session 5 |
(Auditorium 07, HCØ) |
11:00 |
Broadcasting in CSP Style Programming
(Abstract)
(Slides PDF)
Brian Vinter, Kenneth Skovhede and Mads Ohm Larsen, Niels Bohr Institute, University of Copenhagen, Denmark
|
11:30 |
Mapping CSP Models for Embedded Control Software to Hardware Using CλaSH
(Abstract)
(Slides PDF)
Frits P. Kuipers (a), Rinse Wester (b), Jan Kuper (b) and Jan F. Broenink (a)
(a) Robotics and Mechatronics, CTIT Institute, University of Twente, the Netherlands
(b) Computer Architecture for Embedded Systems, CTIT Institute, University of Twente, the Netherlands
|
12:00 |
VHDL Generation From Python Synchronous Message Exchange Networks
(Abstract)
(Slides PDF)
Truls Asheim, Kenneth Skovhede and Brian Vinter, Niels Bohr Institute, University of Copenhagen, Denmark
|
12:30 |
Lunch (BioCenter, Ole Maaløes Vej 5) |
Session 6 |
(Auditorium 07, HCØ) |
14:00 |
Communicating Connected Components: Extending Plug and Play to Support Skeletons
(Abstract)
(Slides PDF)
Kevin Chalmers (a), Jon Kerridge (a) and Jan Bækgaard Pedersen (b)
(a) School of Computing, Edinburgh Napier University, UK
(b) Department of Computer Science, University of Nevada Las Vegas, USA
|
14:30 |
Asynchronous Readers and Writers
(Abstract)
(Slides PDF)
Antoon H. Boode and Jan F. Broenink, Robotics and Mechatronics, CTIT Institute, University of Twente, the Netherlands
|
15:00 |
The Pi-Calculus for SoS: a Novel Pi-Calculus for the Formal Modeling of Software-Intensive Systems-of-Systems
(Abstract)
(Slides PDF)
Flavio Oquendo, IRISA – UMR CNRS / Univ. de Bretagne-Sud, France
|
15:30 |
Tea/coffee |
Session 7 |
(Auditorium 07, HCØ) |
16:00 |
Development and Evaluation of a Modern C++CSP Library
(Abstract)
(Slides PDF)
Kevin Chalmers, School of Computing, Edinburgh Napier University, UK
|
16:30 |
CPA AGM and awards |
17:00 |
End of CPA 2016 |
Keynote Presentation
Computational Challenges for Climate Modelling
Markus JOCHUM, Niels Bohr Institute, University of Copenhagen, Denmark
Abstract.
Numerical simulation of Earth's climate is one branch of computational
fluid dynamics. This community faces two key challenges. Firstly,
the turbulence closure problem has still not been solved. Therefore
more accurate simulations require higher spatial resolution. Secondly,
testing the fidelity of our climate models for a future warmer world
can only be done by reproducing past warm periods. This requires much
faster integrations, which also need to include Earth's full carbon
biochemistry. The former requires massively parallel computing
architectures and a data infrastructure that can manage rates of
1 Tb/day; the latter requires codes or chips that are an order of
magnitude faster than what is currently available. I will briefly
describe the evolution of the developments of climate models, show
recent results with global geostrophic turbulence resolving models,
and outline some ideas of how to structure the community's resources
in the future.
Brief Background
Markus Jochum
completed his PhD in physical oceanography in 2002 at MIT.
He then worked for 8 years as ocean model developer at the National
Center for Atmospheric Research, USA.
Since 2012, he has been Professor for Physical Oceanography at
the Niels Bohr Institute, Copenhagen.
Slides (PDF)
Accepted Papers
VHDL Generation From Python Synchronous Message Exchange Networks
Truls ASHEIM, Kenneth SKOVHEDE and Brian VINTER, Niels Bohr Institute, University of Copenhagen, Denmark
Abstract. The Synchronous Message Exchange, SME, is a programming model that
both resembles communication in hardware, and can be implemented as a CSP network.
This paper extends on previous work for modeling hardware-like programs
using SME in Python, with the addition of a source-to-source compiler
that converts an SME network implemented in Python to an equivalent
implementation in VHDL.
We describe the challenges, constraints, and solutions involved in translating
a highly dynamical language like Python into the hardware-like VHDL language.
We also show how the approach can assist in further VHDL refinement
by generating tedious test bench code, such that VHDL designs can be
simulated and verified with vendor supplied simulation and synthesis tools.
Slides (PDF)
Asynchronous Readers and Writers
Antoon H. BOODE and Jan F. BROENINK, Robotics and Mechatronics, CTIT Institute, University of Twente, the Netherlands
Abstract. Reading and writing is modelled in CSP using actions containing
the symbols ? and ! .
These reading and writing actions are synchronous and there is
a one-to-one relationship between occurrences of pairs of these actions.
It is cumbersome to ease the restriction of synchronous execution of
the read and write actions.
For this reason, we introduce the half-asynchronous parallel operator
that acts on actions containing the symbols ¿ and ¡
and study the impact on a Vertex Removing Synchronised Product.
Slides (PDF)
Development and Evaluation of a Modern C++CSP Library
Kevin CHALMERS, School of Computing, Edinburgh Napier University, UK
Abstract. Although many CSP inspired libraries exist, none yet have targeted modern C++ (C++11 onwards).
The work presented has a main objective of providing a new C++CSP library
which adheres to modern C++ design principles and standards.
A secondary objective is to develop a library that provides simple
message passing concurrency in C++ using only the standard library.
The library is evaluated in comparison to JCSP using microbenchmarks.
CommsTime and StressedAlt are used to determine the properties of
coordination time, selection time, and maximum process count.
Further macrobenchmarks, Monte Carlo π and Mandelbrot ,
are gathered to measure potential speedup with C++CSP.
From the microbenchmarks, it is shown that C++CSP performs better than JCSP
in communication and selection operations and, due to using the same
threading model as JCSP, can create an equal number of processes.
From the macrobenchmarks, it is shown that C++CSP can provide an almost six times
speedup for computation based workloads, and a four times speedup for memory based workloads.
The implementation of move semantics in channels have provided suitable enhancements
to overcome data copy costs in channels.
Therefore, C++CSP is considered a useful addition to the range of CSP libraries available.
Future work will investigate other benchmarks within C++CSP as well as
development of networking and skeleton based frameworks.
Slides (PDF)
Communicating Connected Components: Extending Plug and Play to Support Skeletons
Kevin CHALMERS (a), Jon KERRIDGE (a) and Jan Bækgaard PEDERSEN (b)
(a) School of Computing, Edinburgh Napier University, UK
(b) Department of Computer Science, University of Nevada Las Vegas, USA
Abstract. For a number of years, the Communicating Process Architecture (CPA) community
have developed languages and runtimes supporting message passing concurrency.
For these we always provide a set of reusable processes called plug and play.
These components provide a rich set of functions to CPA programmers,
enabling them to develop applications in interesting new ways.
In this paper, we describe recent work in taking the plug and play ideology
and applying it to the area of algorithmic skeletons.
We have based our work on the RISC-pb2l specifications of Danelutto
et al. to provide a base set of skeletal components,
focusing on the communication behaviours they exhibit.
Slides (PDF)
High Performance Tape Streaming in Tapr
Klaus Birkelund JENSEN and Brian VINTER, Niels Bohr Institute, University of Copenhagen, Denmark
Abstract. In this paper we describe the design and implementation of the Tapr
high performance tape streaming system.
Tapr consists of a number of basic processes interacting though message
passing on CSP-style communications channels.
The system is highly concurrent, uses synchronous as well as asynchronous
coordination without the need for complex usage of traditional locks.
The system scales to and beyond contemporary enterprise automated tape
libraries by representing each and every part of the tape library as
a communicating process.
This includes the robot changer, each tape drive, all clients and even
the loaded tape media.
We show how such an implementation can be done in the Go programming
language with relative ease by utilizing the concurrency primitives
included in the base language.
We also describe how complex cancellation and timeout handling
can be handled directly in the language.
Finally, we present a number of benchmarks designed to show that
the communicating process architecture does not impose any measurable
overhead, but rather allows the system to scale to a high number of
clients and devices using a simple and intuitive process-based design.
Slides (PDF)
Mapping CSP Models for Embedded Control Software to Hardware Using CλaSH
Frits P. KUIPERS (a), Rinse WESTER (b), Jan KUPER (b) and Jan F. BROENINK (a)
(a) Robotics and Mechatronics, CTIT Institute, University of Twente, the Netherlands
(b) Computer Architecture for Embedded Systems, CTIT Institute, University of Twente, the Netherlands
Abstract. Current robotic systems are becoming more and more complex.
This is due to an increase in the number of subsystems that have to be controlled
from a central processing unit as well as more stringent requirements on stability,
reliability and timing.
A possible solution is to offload computationally demanding parts to an FPGA
controlled by the main processor.
The parallel nature of FPGAs makes achieving hard real-time guarantees more easy.
Additionally, due its parallel and sequential constructs,
CSP matches structurally with an FPGA.
In this paper, a CSP to hardware mapping is proposed where key CSP structures
are translated to hardware using the functional language CλaSH.
The CSP structures can be designed using the TERRA tool chain while CλaSH code
is generated for implementing hardware.
The functionality of the CSP mapping is illustrated using some producer-consumer examples.
In this paper, the design, implementation and tests are presented.
Future work is to implement the ALT construct and generate token diagrams
for user understanding.
Slides (PDF)
Simulation and Visualisation Tool Design for Robot Software
Zhou LU, Tjalling RAN and Jan F. BROENINK, Robotics and Mechatronics, CTIT Institute, University of Twente, the Netherlands
Abstract. Modern embedded systems are designed for multiple and increasingly demanding tasks.
Complex concurrent software is required by multi-task automated service robotics
for implementing their challenging (control) algorithms.
TERRA is a Communicating Sequential ProcessesCyber-Physical System (CPS) co-design.
Moreover, a visualisation for the simulation is designed as well to provide
animation facilities which enable users to visually trace simulated execution flows.
Finally, we use an example to test the hybrid simulation approach as well as
visualisation facilities.
It is showed that the simulation approach is sufficient and visualisation works
as intended.
Slides (PDF)
Communicating Generators in JavaScript
Kurt MICALLEF and Kevin VELLA, Department of Computer Science, University of Malta, Msida, Malta
Abstract. This paper outlines the design, performance, and use of an application
programming interface and library for concurrent programming with CSP
in JavaScript.
The implementation harnesses ECMAScript 6 Generators to provide co-operative
scheduling and channel communication within a single JavaScript engine.
External channels lie atop WebSockets, amongst other web technologies,
to enable multicore and distributed execution across standard web browsers
and Node.js servers.
Low-level benchmarks indicate that scheduling and messaging performance
is within reasonable expectation for this dynamic and diverse execution
environment.
Sample code snippets highlight the applicability of CSP to contemporary
web development in hiding the location of computation and state through
the channel abstraction.
The call-back hell scenario is alleviated through the use of
sequential-style CSP code rather than callbacks predominantly used
in the language and the possibility of performing parallel and scientific
computing is explored with promising results.
Finally, the limitations of the present design are discussed,
and possible enhancements such as the dynamic migration of state and
code are considered.
Slides (PDF)
Best Student Paper Prize.
The Pi-Calculus for SoS: a Novel Pi-Calculus for the Formal Modeling of Software-Intensive Systems-of-Systems
Flavio OQUENDO, IRISA – UMR CNRS / Univ. de Bretagne-Sud, France
Abstract. A major research challenge in the architectural design of a software-intensive
System-of-Systems (SoS) is to enable the formal modeling of its
evolutionary architecture.
One of the main issues is that SoS architectures evolve
dynamically, during run-time, in unexpected ways while producing emergent behaviour.
To address this issue, this paper proposes a novel process calculus, called
π-Calculus for SoS, defined as a novel variant of the π-Calculus based on
concurrent constraints and inferred channel bindings for enabling the formal
modeling of software-intensive SoSs, meeting their challenging architectural
characteristics.
Slides (PDF)
JVMCSP – Approaching Billions of Processes on a Single-Core JVM
Cabel SHRESTHA and Jan Bækgaard PEDERSEN, Department of Computer Science, University of Nevada Las Vegas, USA
Abstract. In this paper we present the JVMCSP – a runtime system for the JVM and a
code generator in the ProcessJ compiler.
ProcessJ is a new process-oriented language
with a Java-like syntax and CSP semantics.
ProcessJ compiles to a number of different
runtimes and in this paper focuses on the JVM runtime.
The approach followed in the
implementation is inspired by previous prototype-work we have done, but in this paper
we closely look at the actual implementation and how it differed from our previous
assumptions.
We also present a number of results that highlight the capabilities of our
code generator and runtime.
We show that the runtime has a low overhead and we
managed to run a program on a single core with 480,900,001 processes and a total of
over 1.4 billion runtime objects on the JVM heap.
Slides (PDF)
Extensions to the Concurrent Communications Library
Kenneth SKOVHEDE and Brian VINTER, Niels Bohr Institute, University of Copenhagen, Denmark
Abstract. This paper presents updates and measurements for the Concurrent Communications
Library, CoCoL, which is a CSP inspired library targeting C# and other languages
running on the Common Language Runtime, also known as .Net .
We describe the new library interface methods that simplify writing correct,
encapsulated and compositional networks.
We also describe an extension to the library, which enables communication over
network connections and measure the performance.
Slides (PDF)
Broadcasting in CSP Style Programming
Brian VINTER, Kenneth SKOVHEDE and Mads Ohm LARSEN, Niels Bohr Institute, University of Copenhagen, Denmark
Abstract. While CSP only models process-to-process rendezvous style message passing,
several CSP type programming libraries offer more powerful mechanisms,
such as buffered channels, multiple receivers and even multiple senders
on a single channel.
This work investigates the possible variations of a one-to-all
broadcasting channel.
We discuss the different semantic meanings of broadcasting and show three
different possible solutions for adding broadcasting to CSP style programming.
Slides (PDF)
Connecting Two Robot-Software Communicating Architectures: ROS and LUNA
W. Mathijs VAN DER WERFF and Jan F. BROENINK, Robotics and Mechatronics, CTIT Institute, University of Twente, the Netherlands
Abstract. Two current trends in modern robotics and other cyber-physical systems
seem to conflict: the desire for better interaction with the environment
of the robot increases the needed computational power to extract
useful data from advanced sensors.
This conflicts with the need for energy efficiency and mobility of the setups.
A solution for this conflict is to use a distribution over two parallel systems:
offloading a part of the complex and computationally expensive task to a base station,
while timing-sensitive parts remain close to the robotic setup on an embedded processor.
In this paper, a way to connect two of such systems is presented:
a bridge is made between the Robotic Operating System (ROS),
a widely used open source environment with many algorithms,
and the CSP-execution engine LUNA.
The bridge uses a (wireless) network connection, and provides a generic
and reconfigurable way of connecting these two environments.
The design, implementation in both environments, and tests
characterizing the bridge are described in this paper.
Slides (PDF)
Best Paper Prize.
Workshop
Building a Sensor System for a Large Scale Arctic Observatory
John Markus BJØRNDALEN (a), Otto J. ANSHUS (a), Tore BROX-LARSEN (a), Phuong Hoai HA (a), Rolf Anker IMS (b), Jane Uhd JEPSEN (c), Siw Turid KILLENGREEN (b), Eivind Flittie KLEIVEN (b), Eeva Marjatta SOININEN (b), Nigel Gilles YOCCOZ (b) and Alexander HORSCH (a)
(a) Department of Computer Science, University of Tromsø, Norway
(b) Department of Arctic and Marine Biology, University of Tromsø, Norway
(c) Norwegian Institute for Nature Research, Norway
The Climate-ecological Observatory for Arctic Tundra (COAT) is a longterm
research initiative for real time detection, documentation and understanding
of climate impacts on terrestrial arctic ecosystems.
COAT is a collaboration of several Norwegian research institutions under
the umbrella of FRAM – High North Centre for Climate and Environment.
The study areas include the bioclimatic extremes of the terrestrial Arctic,
low arctic coast of Norway and high arctic Svalbard.
An important part of the observatory is sensors placed in the environment
to observe wildlife and plants.
Current sensor packages are fairly robust and work well for small to
medium scale deployment.
For larger scales, however, there is a clear demand for better management and control.
This paper summarises some current experiences with deploying cameras and
some of the challenges that we intend to address in an up-coming project
where we aim to increase the capability of scientists to handle a larger number
and diversity of sensor types and variation in deployment while minimising
human traffic and impact in the monitored environments.
To build this type of observatory at increasing scales, we expect to use
robust programming architectures, open modular sensor packages,
on-line processing, monitoring and configuration management and
a range of communication technologies to cope with variations in connectivity.
Fringe Presentations
Visualisation Facilities of the Graphical CSP tool TERRA
Zhou LU and Jan F. BROENINK, Robotics and Mechatronics, CTIT Institute, University of Twente, the Netherlands
Abstract. Graphs, animations, and visualisations are known to be valuable forms of presenting
results of experiments, both simulation and real-life experiments.
For CSP-based concurrent programs, the state of processes, CSP constructs and
channels are relevant to show.
For proper feedback, these can best be related to the form in which the program
was entered by the user.
In the case of the TERRA graphical CSP tool, feedback is given by colouring
the diagram elements according to the specific state they are in.
Next to that, a textual log of events is produced,
giving more details relevant in the development process.
In this Fringe session, we demonstrate this visualisation facility
of our graphical CSP tool TERRA.
A paper reporting context and technical details of this
tool is presented elsewhere in these Proceedings.
Slides (PDF)
T42 Transputer Design in FPGA (Year Two Design Status Report)
Uwe MIELKE (a), Martin ZABEL (b) and Michael BRUESTLE (c)
(a) Infineon Technologies, Dresden, Germany
(b) Institut für Technische Informatik, Technische Universität Dresden, Germany
(c) Electronics Engineer, Vienna, Austria
Abstract. This fringe session will present the design progress of our IMS-T425
compatible Transputer design in FPGA.
The 32-bit CPU + Memory interface (2x8kB) are in stable working condition.
117 instructions (from 123+7) are almost implemented in 460 lines of uCode:
for example, TASM loops including interruptible
MOVE (s) can be simulated some 100 clock cycles.
Timer(s) are running.
The System control unit allows error mode, MOV -bit and events.
Some still open questions around scheduler micro-code and link interaction
will be discussed.
Slides (PDF)
Distributed Computing on a (tiny) Budget: Building a Raspberry Pi Zero Microcluster
Richard MILLER, Miller Research, Oxford, England
Abstract. The small, low-cost and tinkering-friendly Raspberry Pi computer board has been
used as the basis for a variety of distributed computing clusters built by
research groups and individuals for experimental and pedagogical use. The new
Raspberry Pi Zero model is smaller, consumes less power, and costs only $5.00
(when supplies are available), but lacks the built-in ethernet interface of its
larger predecessors. Making a virtue of necessity, an Altera Cyclone II FPGA on
an inexpensive development board can be used to provide the communication fabric
for a pocket-sized Raspberry Pi Zero cluster, avoiding the need for bulky
network cables and routers, and enabling experimentation with different networking
architectures which may be more suited to fine-grained closely-coupled distributed
computations than the usual TCP/IP over commodity ethernet.
(Work in progress.)
Fringe Prize.
Messing Around with Timeouts. In Contracts?
Øyvind TEIG, Autronica Fire and Security AS, Trondheim, Norway
Abstract. Many (embedded) systems are often designed with timeouts at places
where they are not needed or even wrong. When there is a timeout, it may break the
very idea of how a contract should be: without timeout. For example, some response from an
internal communication driver (that handles an external connection) may be awaited
for with a timeout – when it might be better just to wait for a proper response from the driver
telling that the connection is indeed broken (i.e. that the driver performs the timeout).
Timeout has a dimension of layer associated with it.
For the above example, the timeout was properly handled by the driver to detect the broken
connection, not by the client. Timeouts are, of course, appropriate for periodic processes
like blinking an LED or pinging a line, where the connotation of a timer is used. However,
having timeouts between internal communicating processes quickly makes matters
difficult. We define timeout not to be part of a contract per se (even if this is rather
contrary to judicial understanding of the term, where an expiration date often is
necessary). In design by contract, failed critical assertions may be handled locally
and the whole system may restart – best detected during testing, before final release.
However, formally verifying a system or using deadlock-free patterns to ensure a
correct design is considered good. Requiring (over an external link that has a timeout
of 5 seconds) that a heating element must increase the temperature after the push of
a button (within 4 seconds) and a response must be shown on the display (by 3 seconds)
should trigger a (hopefully) interesting and useful discussion of the specifications.
We shall also consider
a process network
(discussed in the blog note mentioned below)
which contains a possibly unnecessary timer, without which the system might be much simplified.
[This Fringe presentation is based on the blog note:
Timing
out design by contract with a stopwatch.]
Slides (PDF)
Concurrency: Quit Obsessing about Your Code and Start Worrying about Your Data!
Brian VINTER, Niels Bohr Institute, University of Copenhagen, Denmark
Abstract. Concurrency is commonly used for coordinating events that are non-deterministic
in nature, sensors, transaction systems and games to mention a few.
However, in the era of Big Data, concurrency has a whole new dimention
to the need for concurrency.
With thousands of concurrent operations with highly asynchronous completion times,
an efficient concurrency control system is essential for performance.
This talk will show the challenge and introduce one idea towards concurrency
as a mechanism for Big Data access.
Slides (PDF)
|