Title: Concurrent Computational Systems
1Concurrent Computational Systems
- Edward A. Lee
- Professor, UC Berkeley
- Ptolemy Project
- CHESS Center for Hybrid and Embedded Software
Systems
University of Arizona Distinguished Lecture
SeriesJanuary 13, 2005 Tuscon, Arizona
2Abstract
- Prevailing software abstractions are deeply
rooted in the sequential imperative model, which
at its root, is poorly matched to concurrent
systems. Threads are a widely used natural
extension of these abstractions to concurrent
problems. Semaphores and mutual exclusion locks
provide synchronization primitives offering some
control over the relative timing of actions in
threads. In this talk, I will argue that
nontrivial concurrent programs based on threads,
semaphores, and mutual exclusion locks are
incomprehensible. I will outline a family of
alternative concurrent models of computation,
such as discrete events, process networks,
synchronous languages, and dataflow, that promise
more comprehensible programs. Most of these have
been around for some time, and some of them have
achieved widespread usage, but generally not in
mainstream software. Indeed, several of them
offer promising views of "computation" in a
broader sense than the Turing-Church sense. They
promise a view of computation that embraces mixed
hardware-software systems and embedded systems
that engage the physical world.
3Standard Software Abstraction(20-th Century
Computation)
initial state
sequence
f State ? State
Alan Turing
final state
- Time is irrelevant
- All actions are ordered
4Standard Software Abstraction Processes or
Threads
- The operating system (typically) provides
- suspend/resume
- mutual exclusion
- semaphores
Infinite sequences of state transformations are
called processes or threads
suspend
resume
5Standard Software AbstractionConcurrency via
Interacting Threads
Potential for race conditions, deadlock, and
livelock severely compromises software
reliability. These methods date back to the
1960s (Dijkstra).
stalled by precedence
race condition
stalled for rendezvous
6A Stake in the Ground
- Nontrivial concurrent programs based on threads,
semaphores, and mutexes are incomprehensible to
humans. - No amount of process improvement is going to
change this. - the human brain doesnt work this way.
- Formal methods may help
- scalability?
- understandability?
- Better concurrency abstractions will help more
7A Story Ptolemy Project Code Review
8Ptolemy Project Code ReviewA Typical Story
- Code review discovers that a method needs to be
synchronized to ensure that multiple threads do
not reverse each others actions. - No problems had been detected in 4 years of using
the code. - Three days after making the change, users started
reporting deadlocks caused by the new mutex. - Analysis and correction of the deadlock is hard.
- But code review successfully identified the flaw.
9Code Review Doesnt Always WorkAnother Typical
Story
/ CrossRefList is a list that maintains
pointers to other CrossRefLists. _at_author
Geroncio Galicia, Contributor Edward A.
Lee _at_version Id CrossRefList.java,v 1.78
2004/04/29 145000 eal Exp _at_since Ptolemy II
0.2 _at_Pt.ProposedRating Green (eal) _at_Pt.AcceptedRat
ing Green (bart) / public final class
CrossRefList implements Serializable
protected class CrossRef implements
Serializable // NOTE
It is essential that this method not be
// synchronized, since it is called by
_farContainer(), // which is. Having it
synchronized can lead to // deadlock.
Fortunately, it is an atomic action, //
so it need not be synchronized. private
Object _nearContainer() return
_container private
synchronized Object _farContainer()
if (_far ! null) return _far._nearContainer()
else return null
Code that had been in use for four years, central
to Ptolemy II, with an extensive test suite,
design reviewed to yellow, then code reviewed to
green in 2000, causes a deadlock during a demo on
April 26, 2004.
10And Doubts Remain
/ CrossRefList is a list that maintains
pointers to other CrossRefLists. _at_author
Geroncio Galicia, Contributor Edward A.
Lee _at_version Id CrossRefList.java,v 1.78
2004/04/29 145000 eal Exp _at_since Ptolemy II
0.2 _at_Pt.ProposedRating Green (eal) _at_Pt.AcceptedRat
ing Green (bart) / public final class
CrossRefList implements Serializable
protected class CrossRef implements
Serializable private
synchronized void _dissociate()
_unlink() // Remove this. // NOTE
Deadlock risk here! If _far is waiting
// on a lock to this CrossRef, then we will
get // deadlock. However, this will
only happen if // we have two threads
simultaneously modifying a // model.
At the moment (4/29/04), we have no
// mechanism for doing that without first
// acquiring write permission the
workspace(). // Two threads cannot
simultaneously hold that // write
access. if (_far ! null)
_far._unlink() // Remove far
Safety of this code depends on policies
maintained by entirely unconnected classes. The
language and synchronization mechanisms provide
no way to talk about these systemwide properties.
11What it Feels Like to Use the synchronized
Keyword in Java
Image borrowed from an Iomega advertisement for
Y2K software and disk drives, Scientific
American, September 1999.
12Diagnosis Interacting Processes are Not
Compositional
An aggregation of processes is not a process (a
total order of external interactions). What is
it? Many software failures are due to this
ill-defined composition.
13Distributed Version of 20-th Century Computation
Force-fitting the sequential abstraction onto
parallel hardware.
remote procedure call
14Combining Processes and RPC Split-Phase
Execution, Futures,Asynchronous Method Calls,
Callbacks,
These methods are at least as incomprehensible as
concurrent threads or processes.
asynchronous procedure call
15Better Concurrency Models
- Better concurrency models exist.
- We examine a family of such models that we call
actor-oriented models.
16What is an Actor-Oriented MoC?
17Ptolemy II Framework for Experimenting with
Actor-Oriented Models of Computation
Basic Ptolemy II infrastructure
18The Basic Abstract Syntax
- Actors
- Attributes on actors (parameters)
- Ports in actors
- Links between ports
- Width on links (channels)
- Hierarchy
- Concrete syntaxes
- XML
- Visual pictures
- Actor languages (Cal, StreamIT, )
19Hierarchy - Composite Components
dangling
Relation
Port
Actor
opaque Port
Port
transparent or opaqueCompositeActor
toplevel CompositeActor
20Abstract Semanticsof Actor-Oriented Models of
Computation
- Actor-Oriented Models of Computation that we have
implemented - dataflow (several variants)
- process networks
- distributed process networks
- Click (push/pull)
- continuous-time
- CSP (rendezvous)
- discrete events
- distributed discrete events
- synchronous/reactive
- time-driven (several variants)
-
execution control
data transport
init() fire()
21Models of ComputationImplemented in Ptolemy II
- CI Push/pull component interaction
- Click Push/pull with method invocation
- CSP concurrent threads with rendezvous
- CT continuous-time modeling
- DE discrete-event systems
- DDE distributed discrete events
- DDF Dynamic dataflow
- DPN distributed process networks
- DT discrete time (cycle driven)
- FSM finite state machines
- Giotto synchronous periodic
- GR 2-D and 3-D graphics
- PN process networks
- SDF synchronous dataflow
- SR synchronous/reactive
- TM timed multitasking
Most of these are actor oriented.
22Models of ComputationImplemented in Ptolemy II
- CI Push/pull component interaction
- Click Push/pull with method invocation
- CSP concurrent threads with rendezvous
- CT continuous-time modeling
- DE discrete-event systems
- DDE distributed discrete events
- DDF Dynamic dataflow
- DPN distributed process networks
- DT discrete time (cycle driven)
- FSM finite state machines
- Giotto synchronous periodic
- GR 2-D and 3-D graphics
- PN process networks
- SDF synchronous dataflow
- SR synchronous/reactive
- TM timed multitasking
23Example Model of ComputationDiscrete Events (DE)
Reactive actors
Event source
Signal
Time line
24Semantics Clears Up Subtleties E.g.
Simultaneous Events
By default, an actor produces events with the
same time as the input event. But in this
example, we expect (and need) for the
BooleanSwitch to see the output of the
Bernoulli in the same firing where it sees the
event from the PoissonClock. Events with
identical time stamps are also ordered, and
reactions to such events follow data precedence
order.
25Semantics Clears Up Subtleties E.g. Feedback
Data precedence analysis has to take into account
the non-strictness of this actor (that an output
can be produced despite the lack of an input).
26Semantics Clears Up Subtleties E.g. Zeno Systems
DE systems may have an infinite number of events
in a finite amount of time. Carefully constructed
semantics gives these systems meaning.
27A Rough Sense of Discrete-Event Semantics Metric
Space Formulation
Cantor metric
where t is the earliest time where x and y
differ.
The set of signals with this metric form a
complete metric space.
x
y
Generalizations of this metric handle multiple
events at the same time.
t
28Causality in DE
Causal
Strictly causal
Delta causal
A delta-causal component is a contraction map.
29Fixed Point Theorem(Banach Fixed Point Theorem)
- Let (S n T ? V n, d ) be a complete metric
space and f S n ? S n be a delta causal
function. Then f has a unique fixed point, and
for any point s ? S n , the following sequence
converges to that fixed point - s1 s, s2 f (s1), s3 f (s2),
- This means no Zeno!
- Current work Other formulations (using
generalized ultrametric spaces, ordinals, and
posets) give meaning to a broader class of
systems.
30Semantic Challenges
- Create distributed discrete-event systems.
- Three families of techniques are known
- Conservative techniques (Chandy Misra)
- Optimistic techniques (Time warp, Jefferson)
- Distributed consensus (Croquet, Reed)
31Application of DE ModelingWireless Sensor Nets
in VisualSense
VisualSense extends the Ptolemy II discrete-event
domain with communication between actors
representing sensor nodes being mediated by a
channel, which is another actor. The example at
the left shows a grid of nodes that relay
messages from an initiator (center) via a channel
that models a low (but non-zero) probability of
long range links being viable.
32Models of ComputationImplemented in Ptolemy II
- CI Push/pull component interaction
- Click Push/pull with method invocation
- CSP concurrent threads with rendezvous
- CT continuous-time modeling
- DE discrete-event systems
- DDE distributed discrete events
- DDF Dynamic dataflow
- DPN distributed process networks
- DT discrete time (cycle driven)
- FSM finite state machines
- Giotto synchronous periodic
- GR 2-D and 3-D graphics
- PN process networks
- SDF synchronous dataflow
- SR synchronous/reactive
- TM timed multitasking
33Example Model of ComputationContinuous Time (CT)
Director implements a solver that constructs an
approximation to the continuous-time behavior.
A signal has a value at all real-valued times.
Integrator used to define systems governed by
ordinary differential equations.
34Models of ComputationImplemented in Ptolemy II
- CI Push/pull component interaction
- Click Push/pull with method invocation
- CSP concurrent threads with rendezvous
- CT continuous-time modeling
- DE discrete-event systems
- DDE distributed discrete events
- DDF Dynamic dataflow
- DPN distributed process networks
- DT discrete time (cycle driven)
- FSM finite state machines
- Giotto synchronous periodic
- GR 2-D and 3-D graphics
- PN process networks
- SDF synchronous dataflow
- SR synchronous/reactive
- TM timed multitasking
35Heterogeneous ModelsHybrid Systems CT FSM
The FSM director can be combined with other
directors to create modal models.
36Semantic Subtleties
- In hybrid systems, signals may have more than one
value at a given time. - Discontinuities
- Transient states
- Traditional mathematical formulation of a
signal x Reals ? Realsnhas to be
modified x Reals ? Naturals ? Realsnwith
ensuing consequences for the theory.
37Models of ComputationImplemented in Ptolemy II
- CI Push/pull component interaction
- Click Push/pull with method invocation
- CSP concurrent threads with rendezvous
- CT continuous-time modeling
- DE discrete-event systems
- DDE distributed discrete events
- DDF Dynamic dataflow
- DPN distributed process networks
- DT discrete time (cycle driven)
- FSM finite state machines
- Giotto synchronous periodic
- GR 2-D and 3-D graphics
- PN process networks
- SDF synchronous dataflow
- SR synchronous/reactive
- TM timed multitasking
38Heterogeneous ModelsMixed Signals DE CT
DE signal
DE model of a digital controller
CT signal
CT model of mechanical system
39Models of ComputationImplemented in Ptolemy II
- CI Push/pull component interaction
- Click Push/pull with method invocation
- CSP concurrent threads with rendezvous
- CT continuous-time modeling
- DE discrete-event systems
- DDE distributed discrete events
- DDF Dynamic dataflow
- DPN distributed process networks
- DT discrete time (cycle driven)
- FSM finite state machines
- Giotto synchronous periodic
- GR 2-D and 3-D graphics
- PN process networks
- SDF synchronous dataflow
- SR synchronous/reactive
- TM timed multitasking
40Example Untimed Model of ComputationProcess
Networks (PN)
actor thread
signal stream
reads block
writes dont
Kahn, MacQueen, 1977
41PN Semantics
- A signal is a sequence of values
- Define a prefix order
- x y
- means that x is a prefix of y.
- Actors are monotonic functions
- x y ? F(x) F(y)
- Stronger condition Actors are continuous
functions (intuitively they dont wait forever
to produce outputs).
42PN Semantics of Composition (Kahn, 74)
If the components are deterministic, the
composition is deterministic.
- Knaster-Tarski fixed point theorem
- Continuous function has a unique least fixed
point - Execution procedure for finding that fixed point
- Successive approximations to the fixed point
43Semantic Subtleties
- Giving semantics to finite sequences in
combination with infinite sequences. - Unifying fixed-point semantics with metric-space
semantics (in order to give meaning to
heterogeneous models that combine timed with
untimed systems).
44Application of PN and Ptolemy IIKepler
Scientific Workflows
- Led by San Diego Supercomputer Center (SDSC),
with participation from the SEEK ITR, DOE SciDAC
SDM, and others, researchers are building on
Ptolemy II a distributed workflow system called
Kepler to provide access to any resource, any
data, any service, anytime, anywhere via a
distributed computing platform (aka the Grid)
supporting high performance computing, and
federated, integrated, mediated databases within
a user-friendly workbench / problem-solving
environment. - This effort is compatible with the objectives of
NSF Cyberinfrastructure, UKs e-Science
Programme, and DOEs SciDAC (Scientific Discovery
through Advanced Computing).
45Kepler Example Harvesting Web Services
Example showing a web service wrapper (Thanks to
Bertram Ludaecher, San Diego Supercomputer Center)
46Kepler Example Grid Computations
Thanks toBertram LudäscherSDSC
47Kepler ExampleReal-Time Data Feeds
Thanks to Bertram Ludäscher, SDSC
This model integrates real-time data feeds from a
ship (the Roger Revelle)
48KEPLER/CSP Contributors, Sponsors, Projects(or
loosely coupled Communicating Sequential Persons
-)
- Ilkay Altintas SDM, Resurgence
- Kim Baldridge Resurgence, NMI
- Chad Berkley SEEK
- Shawn Bowers SEEK
- Terence Critchlow SDM
- Tobin Fricke ROADNet
- Jeffrey Grethe BIRN
- Christopher H. Brooks Ptolemy II
- Zhengang Cheng SDM
- Dan Higgins SEEK
- Efrat Jaeger GEON
- Matt Jones SEEK
- Werner Krebs, EOL
- Edward A. Lee Ptolemy II
- Kai Lin GEON
- Bertram Ludaescher SEEK, GEON, SDM, BIRN, ROADNet
- Mark Miller EOL
- Steve Mock NMI
- Steve Neuendorffer Ptolemy II
Ptolemy II
Thanks to Bertram Ludäscher, SDSC
49Models of ComputationImplemented in Ptolemy II
- CI Push/pull component interaction
- Click Push/pull with method invocation
- CSP concurrent threads with rendezvous
- CT continuous-time modeling
- DE discrete-event systems
- DDE distributed discrete events
- DDF Dynamic dataflow
- DPN distributed process networks
- DT discrete time (cycle driven)
- FSM finite state machines
- Giotto synchronous periodic
- GR 2-D and 3-D graphics
- PN process networks
- SDF synchronous dataflow
- SR synchronous/reactive
- TM timed multitasking
50Synchronous Models of Computation
Director finds a value (or absent) at each tick
of a global clock
Feedback is resolved by finding a fixed point.
Semantic foundation based on Kanster-Tarski fixed
point theorem on Scott topologies.
Signal has a value or is absent at each tick of
the clock.
51Languages Based on theSynchronous Model of
Computation
- Lustre (and SCADE)
- Esterel
- Signal
- Statecharts (and UML state machines)
- Argos
52Models of ComputationImplemented in Ptolemy II
- CI Push/pull component interaction
- Click Push/pull with method invocation
- CSP concurrent threads with rendezvous
- CT continuous-time modeling
- DE discrete-event systems
- DDE distributed discrete events
- DDF Dynamic dataflow
- DPN distributed process networks
- DT discrete time (cycle driven)
- FSM finite state machines
- Giotto synchronous periodic
- GR 2-D and 3-D graphics
- PN process networks
- SDF synchronous dataflow
- SR synchronous/reactive
- TM timed multitasking
53Dataflow Models of Computation
Many tools, software frameworks, and hardware
architectures have been built to support one or
more of these.
- Computation graphs Karp Miller - 1966
- Process networks Kahn - 1974
- Static dataflow Dennis - 1974
- Dynamic dataflow Arvind, 1981
- K-bounded loops Culler, 1986
- Synchronous dataflow Lee Messerschmitt, 1986
- Structured dataflow Kodosky, 1986
- PGM Processing Graph Method Kaplan, 1987
- Synchronous languages Lustre, Signal, 1980s
- Well-behaved dataflow Gao, 1992
- Boolean dataflow Buck and Lee, 1993
- Multidimensional SDF Lee, 1993
- Cyclo-static dataflow Lauwereins, 1994
- Integer dataflow Buck, 1994
- Bounded dynamic dataflow Lee and Parks, 1995
- Heterochronous dataflow Girault, Lee, Lee,
1997
54Ptolemy II Software ArchitectureBuilt for
Extensibility
- Ptolemy II packages have carefully constructed
dependencies and interfaces
CSP
CT
PN
DE
FSM
SDF
55Conclusion
- Threads are a poor concurrent MoC
- There are many better concurrent MoCs
- The ones we know are the tip of the iceberg
- Ptolemy II is a lab for experimenting with them
- Specializing MoCs can be useful
- Mixing specialized MoCs can be useful.
- This is a rich research area.