113
30-Oct-06 Copyright P.H.Welch 1 Motivation: Concurrency for All (Process Oriented Design ) Motivation: Concurrency for All Motivation: Concurrency for All (Process Oriented Design ) (Process Oriented Design ) Peter Welch ([email protected]) Computing Laboratory, University of Kent at Canterbury Co631 (Concurrency)

Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 1

Motivation: Concurrency for All (Process Oriented Design )

Motivation: Concurrency for All Motivation: Concurrency for All (Process Oriented Design )(Process Oriented Design )

Peter Welch ([email protected])Computing Laboratory, University of Kent at Canterbury

Co631 (Concurrency)

Page 2: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 2

Motivation: Concurrency for AllMotivation: Concurrency for AllMotivation: Concurrency for All

Nature is not serial ...Nature is not serial ...

Components must compose Components must compose ……

Nature is concurrent Nature is concurrent ……

It was 20 years ago todayIt was 20 years ago today ……

Objects considered harmful Objects considered harmful ……

Modelling complex systems Modelling complex systems ……

Blood clottingBlood clotting ……

Page 3: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 3

Nature is not organised as a single thread of control:

Nature is not organised as a Nature is not organised as a single thread of control:single thread of control:

joe.eatBreakfastjoe.eatBreakfast ();();sue.washUpsue.washUp ();();joe.driveToWorkjoe.driveToWork ();();sue.phone (sally);sue.phone (sally);US.government.sue (bill);US.government.sue (bill);sun.zap (office);

???

sun.zap (office);

Page 4: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 4

Nature has very large numbers of independent agents, interacting with each other in regular and chaotic patterns, at all levels of scale:

… nanite … human … astronomic ...

Page 5: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 5

The networks are dynamic: growing, decaying and mutating internal topology (in response to environmental pressure and self-motivation):

… nanite … human … astronomic ...

Page 6: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 6

… nanite … human … astronomic ...

The networks are dynamic: growing, decaying and mutating internal topology (in response to environmental pressure and self-motivation):

Page 7: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 7

Motivation and ApplicationsMotivation and ApplicationsMotivation and ApplicationsThesisThesis

Natural systems are robust, efficient, long-lived and continuously evolving. We should take the hint!We should take the hint!Look on concurrency as a core design mechanismcore design mechanism – not as something difficult, used only to boost performance.

Some applicationsSome applicationsHardware design and modelling.Static embedded systems and parallel supercomputing.Field-programmable embedded systems and dynamic supercomputing (e.g. SETI-at-home).Dynamic distributed systems, eCommerce, operating systems and games.Biological system and nanite modelling.

Page 8: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 8

Motivation: Concurrency for AllMotivation: Concurrency for AllMotivation: Concurrency for All

Nature is not serial ...Nature is not serial ...

Components must compose Components must compose ……

Nature is concurrent Nature is concurrent ……

It was 20 years ago todayIt was 20 years ago today ……

Objects considered harmful Objects considered harmful ……

Modelling complex systems Modelling complex systems ……

Blood clottingBlood clotting ……

Page 9: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 9

Components?Components?Components?

Components must be composeable …… and they must compose simply!

Page 10: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 10

Components?Components?Components?

Mind you, just because components compose …

… doesn’t always mean that it makes sense …

Page 11: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 11

Components?Components?Components?

…… toto compose them compose them ……

*Image courtesy of Philips TASS <*Image courtesy of Philips TASS <http://http://www.tass.philips.comwww.tass.philips.com/>/>

*

Page 12: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 12

If we understand A and B separately, we must be able to deduce simply their combined behaviour.

Components?Components?Components?

plug togetherplug together no surprisesno surprises

Semantics [A + B] = Semantics [A] + Semantics [B]

A and B must be composeable …

Page 13: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 13

Composition?Composition?Composition?Complex systems are composed from less complexcomponents …

… which are composed from simpler components …

… which are composed from simpler components …

… etc …

… which are composed from simple components.

Page 14: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 14

Composition?Composition?Composition?Composition rules must be simple and yield no surprises.

Whatever it is they encapsulate, components must have interfaces that are clean, complete and explicit.

Hardware systems are forced (by physics/geometry) to be built like this.

Software systems have no such constraints. We think we can do better than nature … and get into trouble.

Page 15: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 15

Motivation: Concurrency for AllMotivation: Concurrency for AllMotivation: Concurrency for All

Nature is not serial ...Nature is not serial ...

Components must compose Components must compose ……

Nature is concurrent Nature is concurrent ……

It was 20 years ago todayIt was 20 years ago today ……

Objects considered harmful Objects considered harmful ……

Modelling complex systems Modelling complex systems ……

Blood clottingBlood clotting ……

Page 16: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 16

The Real World and ConcurrencyThe Real World and ConcurrencyThe Real World and Concurrency

Computer systems - to be of use in this world - need tomodel that part of the world for which it is to be used.

If that modeling can reflect the natural concurrency in the system … it should be simpler.

Yet concurrency is thought to be an advanced topic, harder than serial computing (which therefore needs to be mastered first).

Page 17: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 17

This tradition is WRONG!This tradition is WRONG!This tradition is WRONG!

… which has (radical) implications on how we should educate people for computer science …

… and on how we apply what we have learnt …

Page 18: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 18

What we want from ParallelismWhat we want from ParallelismWhat we want from ParallelismA powerful tool for simplifying the description of systems.

Performance that spins out from the above, but is notthe primary focus.

A model of concurrency that is mathematically clean, yields no engineering surprises and scales well with system complexity.

Page 19: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 19

Multi-PongMultiMulti--PongPong

Page 20: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 20

collision detect

control

...

scorer

left right

keycontrol

mouse

flasher

new game freeze

canvas

Multi-PongMultiMulti--PongPong

Page 21: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 21

Good News!Good News!Good News!The good news is that we can worry about each process on its own. A process interacts with its environmentthrough its channels. It does not interact directlydirectlywith other processes.

Some processes have serial implementations - these are just like traditional serial programs.

Some processes have parallel implementations -networks of sub-processes (think hardware).

Our skills for serial logic sit happily alongside our new skills for concurrency - there is no conflict. This willwill scale!

Page 22: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 22

Motivation: Concurrency for AllMotivation: Concurrency for AllMotivation: Concurrency for All

Nature is not serial ...Nature is not serial ...

Components must compose Components must compose ……

Nature is concurrent Nature is concurrent ……

It was 20 years ago todayIt was 20 years ago today ……

Objects considered harmful Objects considered harmful ……

Modelling complex systems Modelling complex systems ……

Blood clottingBlood clotting ……

Page 23: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 23

Twenty Years Ago …Twenty Years Ago Twenty Years Ago ……

“…“… improved understanding and architecture improved understanding and architecture independence were the goals of the design by independence were the goals of the design by Inmos of the Inmos of the occamoccam multiprocssingmultiprocssing language language and the Transputer. The goals were achieved and the Transputer. The goals were achieved

by implementation of the abstract ideas of by implementation of the abstract ideas of process algebra and with an efficiency that is process algebra and with an efficiency that is

today almost unimaginable and certainly today almost unimaginable and certainly unmatchable.unmatchable.””

C.A.R.Hoare, March 2004.C.A.R.HoareC.A.R.Hoare, March 2004., March 2004.

Page 24: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 24

2003 …2003 2003 ……We have been extending the classical We have been extending the classical occamoccamlanguage with ideas of mobility and dynamic language with ideas of mobility and dynamic network reconfiguration which are taken from network reconfiguration which are taken from

MilnerMilner’’s s ππ--calculus. calculus.

We have found ways of implementing these We have found ways of implementing these extensions that still involve significantly less extensions that still involve significantly less resource overhead than that imposed by the resource overhead than that imposed by the

higher level higher level –– but less structured, informal and but less structured, informal and nonnon--compositional compositional –– concurrency primitives of concurrency primitives of existing languages (such as Java) or libraries existing languages (such as Java) or libraries

(such as POSIX threads).(such as POSIX threads).

Page 25: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 25

2003 …2003 2003 ……We have been extending the classical We have been extending the classical occamoccamlanguage with ideas of mobility and dynamic language with ideas of mobility and dynamic network reconfiguration which are taken from network reconfiguration which are taken from

MilnerMilner’’s s ππ--calculus. calculus.

As a result, we can run applications with the As a result, we can run applications with the order of order of millionsmillions of concurrent processes on of concurrent processes on

modestly powered PCs. We have plans to modestly powered PCs. We have plans to extend the system, without sacrifice of too extend the system, without sacrifice of too

much efficiency and none of logic, to simple much efficiency and none of logic, to simple clusters of workstations, wider networks such clusters of workstations, wider networks such

as the Grid and small embedded devices.as the Grid and small embedded devices.

Page 26: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 26

2003 …2003 2003 ……In the interests of In the interests of proveabilityproveability, we have been , we have been

careful to preserve the distinction between the careful to preserve the distinction between the original static pointoriginal static point--toto--point point synchronisedsynchronisedcommunication of communication of occamoccam and the dynamic and the dynamic

asynchronous multiplexed communication of asynchronous multiplexed communication of ππ--calculus;calculus; in this, we have been prepared to in this, we have been prepared to

sacrifice the elegant sacrifice the elegant sparsitysparsity of the of the ππ--calculus.calculus.

We conjecture that the extra complexity and We conjecture that the extra complexity and discipline introduced will make the task of discipline introduced will make the task of

developing, proving and maintaining developing, proving and maintaining concurrent and distributed programs easier.concurrent and distributed programs easier.

Page 27: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 27

Motivation: Concurrency for AllMotivation: Concurrency for AllMotivation: Concurrency for All

Nature is not serial ...Nature is not serial ...

Components must compose Components must compose ……

Nature is concurrent Nature is concurrent ……

It was 20 years ago todayIt was 20 years ago today ……

Objects considered harmful Objects considered harmful ……

Modelling complex systems Modelling complex systems ……

Blood clottingBlood clotting ……

Page 28: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 28

Java Monitors – ConcernsJava Monitors Java Monitors –– ConcernsConcernsEasy to learnEasy to learn -- but but very difficult to applyvery difficult to apply …… safelysafely ……

Monitor methods are Monitor methods are tightly interdependenttightly interdependent -- their their semantics compose in semantics compose in complex wayscomplex ways …… the whole skill lies the whole skill lies in setting up and staying in control of these complex in setting up and staying in control of these complex interactions interactions ……

Threads have no structure Threads have no structure …… there are no there are no threads within threads within threadsthreads ……

Big problems when it comes to Big problems when it comes to scaling up complexityscaling up complexity ……

Page 29: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 29

Objects Considered HarmfulObjects Considered HarmfulObjects Considered HarmfulMost objects are Most objects are dead dead -- they have they have no life of their own.

count

state

ready

no life of their own.

All methods have to All methods have to be invoked by an be invoked by an external thread of external thread of control control -- they have to they have to be be caller orientedcaller oriented ……

…… a somewhat curious a somewhat curious propertyproperty of of ‘‘object object orientedoriented’’ design.design.

Page 30: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 30

Objects Considered HarmfulObjects Considered HarmfulObjects Considered Harmful

count

state

ready

The object is at the The object is at the mercy of mercy of anyany thread thread that sees it.that sees it.

Nothing can be done Nothing can be done to prevent method to prevent method invocation ...invocation ...

…… even if the object is even if the object is not in a fit state to service not in a fit state to service it. it. The object is not in The object is not in control of its life.control of its life.

Page 31: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 31

Objects Considered HarmfulObjects Considered HarmfulObjects Considered HarmfulEach single thread of Each single thread of control snakes around control snakes around objects in the system, objects in the system, bringing them to life bringing them to life transientlytransiently as their as their methods are executed.methods are executed.

Threads cut across object Threads cut across object boundaries leaving boundaries leaving spaghettispaghetti--like trails, like trails, paying no regard to the paying no regard to the underlying structureunderlying structure..

Page 32: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 32

Each object is at the mercy of anyany thread that sees it. Nothing can be done to preventprevent method invocation … even if the object is not in a fit state to service it. The object The object is not in control of its lifeis not in control of its life.

Threads-n-Locks Considered HarmfulThreadsThreads--nn--LocksLocks Considered HarmfulConsidered Harmful

Big problems occur when multiple threads hit the same object.

Page 33: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 33

Errors in claiming/releasing locks is probably the main reason our systems fail …

Threads-n-Locks Considered HarmfulThreadsThreads--nn--LocksLocks Considered HarmfulConsidered Harmful

Too much locking and we get deadlock …

Too little locking and race hazards slowly corrupt …

Sorting this out requires controlling all possible interleavings … which is exponential in the number of threads …

Page 34: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 34

Threads-n-Locks Considered HarmfulThreadsThreads--nn--LocksLocks Considered HarmfulConsidered Harmful

Compare this design structure ...

Compare Compare this design this design structure ...structure ...

Page 35: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 35

collision detect

control

...

scorer

left right

keycontrol

mouse

flasher

new game freeze

canvas

Multi-PongMultiMulti--PongPong

... against this one

... against ... against this onethis one

Page 36: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 36

…… for example for example ……

Page 37: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 37

Motivation: Concurrency for AllMotivation: Concurrency for AllMotivation: Concurrency for All

Nature is not serial ...Nature is not serial ...

Components must compose Components must compose ……

Nature is concurrent Nature is concurrent ……

It was 20 years ago todayIt was 20 years ago today ……

Objects considered harmful Objects considered harmful ……

Modelling complex systems Modelling complex systems ……

Blood clottingBlood clotting ……

Page 38: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 38

InIn--vivovivo InIn--silicosilicoOne of the UK ‘‘Grand ChallengeGrand Challenge’’ areas.Move lifelife--sciencessciences from descriptiondescription to modellingmodelling // predictionprediction. Example: the Nematode worm.the Nematode worm.Development: from fertilised cell to adultfrom fertilised cell to adult (with virtual experiments).(with virtual experiments).Sensors and movement: reaction to stimuli.reaction to stimuli.Interaction between organisms and other pieces of environment.between organisms and other pieces of environment.

Modelling technologiesModelling technologiesCommunicating process networks – fundamentally good fit.Cope with growth / decay, combine / split (evolving topologies).Mobility and location / neighbour awareness.Simplicity, dynamics, performance and safety.

occamoccam--ππ (and JCSP)(and JCSP)Robust and lightweight – good theoretical support.~10,000,000 processes with useful behaviour in useful time.Enough to make a start …

Modelling Bio-MechanismsModelling BioModelling Bio--MechanismsMechanisms

Page 39: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 39

TUNA: TUNA: Theory Underpinning Nanotech AssembliesTheory Underpinning Nanotech AssembliesActive nanonano--devicesdevices that manipulate the world at nanonano--scalescale to have macroscopicmacroscopic effects (e.g. through assembling artifacts).Need vast numbers of them – but these can grow (exponentially).Need capabilities to design, program and control complex and dynamic networks – build desired artifacts, not undesired ones.Need a theory of dynamic networks and emergent properties.

Implementation TechnologiesImplementation TechnologiesCommunicating process networks – fundamentally good fit.Cope with growth / decay, combine / split (evolving topologies).Mobility and location / neighbour awareness.Simplicity, dynamics, performance and safety.

occamoccam--ππ (and JCSP)(and JCSP)Robust and lightweight – good theoretical support.~10,000,000 processes with useful behaviour in useful time.Enough to make a start …

Modelling Nannite-AssembliesModelling Modelling NanniteNannite--AssembliesAssemblies

Funded Funded ☺☺☺☺☺☺ ……York, Surrey and York, Surrey and

KentKent

Page 40: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 40

Mobility and Location AwarenessMobility and Location AwarenessMobility and Location AwarenessClassical communicating process applicationsClassical communicating process applications

Static network structures.Static memory / silicon requirements (pre-allocated).Great for hardware design and software for embedded controllers.Consistent and rich underlying theory – CSP.

Dynamic communicating processes Dynamic communicating processes –– some questionssome questionsMutating topologies:Mutating topologies: how to keep them safe?Mobile channelMobile channel--ends and processes:ends and processes: dual notions?Simple operational semantics:Simple operational semantics: low overhead implementation? Yes.Yes.Process algebra:Process algebra: combine the best of CSP and the π-calculus? YesYes..Refinement:Refinement: for manageable system verification … can we keep?Location awareness:Location awareness: how can mobile processes know where they are, how can they find each other and link up?Programmability:Programmability: at what level – individual processes or clusters? Overall behaviour:Overall behaviour: planned or emergent?planned or emergent?

Page 41: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 41

Location (Neighbourhood) AwarenessLocation (Neighbourhood) Awareness

The MatrixThe The

MatrixMatrix

Mobile AgentsMobile Mobile AgentsAgents

Page 42: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 42

Location (Neighbourhood) AwarenessLocation (Neighbourhood) Awareness

Page 43: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 43

Location (Neighbourhood) AwarenessLocation (Neighbourhood) Awareness

Page 44: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 44

Location (Neighbourhood) AwarenessLocation (Neighbourhood) Awareness

Page 45: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 45

Mobility and Location AwarenessMobility and Location AwarenessMobility and Location AwarenessThe MatrixThe Matrix

A network of (mostly passive) server processes.Responds to client requests from the mobile agents and, occasionally, from neighbouring server nodes.Deadlock avoided (in the matrix) either by one-place buffered server channels or by pure-client slave processes (one per matrix node) that ask their server node for elements (e.g. mobile agents) and forward them to neighbouring nodes.Server nodes only see neighbours, maintain registry of currentlylocated agents (and, maybe, agents on the neighbouring nodes) and answer queries from local agents (including moving them).

The AgentsThe AgentsAttached to one node of the Matrix at a time.Sense presence of other agents – on local or neighbouring nodes.Interact with other local agents – must use agent-specific protocol to avoid deadlock. May decide to reproduce, split or move.Local (or global) sync barrierssync barriers to maintain sense of time.

Page 46: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 46

A Thesis and HypothesisA Thesis and HypothesisA Thesis and HypothesisThesisThesis

Natural systems are concurrent at all levels of scale. Central points of control do not remain stable for long.Natural systems are robust, efficient, long-lived and continuously evolving. We should take the hint! We should take the hint! Natural mechanisms should map on to simple engineering principles with low cost and high benefit. Concurrency is a natural mechanism.We should look on concurrencyconcurrency as a core design mechanismcore design mechanism – not as something difficult, used only to boost performance.Computer science took a wrong turn once. Concurrency should not introduce the algorithmic distortions and hazards evident in current practice. It should hastenhasten the construction, commisioning and maintenance of systems.

HypothesisHypothesisThe wrong turn can be corrected and this correction is needed now.

Page 47: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 47

Putting CSP into practice …Putting CSP into practice Putting CSP into practice ……

http://http://www.cs.ukc.ac.uk/projects/ofa/krocwww.cs.ukc.ac.uk/projects/ofa/kroc//

Page 48: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 48

Putting CSP into practice …Putting CSP into practice Putting CSP into practice ……

http://http://www.cs.ukc.ac.uk/projects/ofa/jcspwww.cs.ukc.ac.uk/projects/ofa/jcsp//

Page 49: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 49

Page 50: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 50

Motivation: Concurrency for AllMotivation: Concurrency for AllMotivation: Concurrency for All

Nature is not serial ...Nature is not serial ...

Components must compose Components must compose ……

Nature is concurrent Nature is concurrent ……

It was 20 years ago todayIt was 20 years ago today ……

Objects considered harmful Objects considered harmful ……

Modelling complex systems Modelling complex systems ……

Blood clottingBlood clotting ……

Page 51: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 51

Case Study: blood clottingCase Study: Case Study: blood clottingblood clottingHaemostasis: Haemostasis: we consider a greatly simplified model of the we consider a greatly simplified model of the formation of blood clots in response to damage in blood formation of blood clots in response to damage in blood vessels.vessels.

PlateletsPlatelets are passive quasi-cells carried in the bloodstream. They become activatedactivated when a balance between chemical suppressants and activators shift in favour of activation.

When activated, they become stickysticky …

We are just going to model the clumping together of such sticky activated platelets to form clotsclots.

To learn and refine our modelling techniques, we shall start with a simple one-dimensional model of a bloodstream.

Page 52: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 52

Platelet Model (‘busy’ CA)Platelet Model (Platelet Model (‘‘busybusy’’ CA)CA)SpaceSpace is represented as a pipeline of is represented as a pipeline of cellcell processesprocesses. Activated (i.e. sticky) plateletsplatelets are generated and injected into the pipeline at a user-determined randomised rate. They move through the cellscells at speeds inversely proportional to the size of the clotclot in which they become embedded – these speeds are randomised slightly. ClotsClotsthat bump together stay together.

The cellscells do all the work and work all the time, even when empty. PlateletsPlatelets/clotsclots pass through them – at which times, the cellscells compute part of their life-cycle.

PlateletsPlatelets/clotsclots are not directly modelled as processes.

Page 53: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 53

Platelet Model (‘busy’ CA)Platelet Model (Platelet Model (‘‘busybusy’’ CA)CA)

drawdraw

holegen ···cell cell cell···

screenscreendisplay

keyboardkeyboard

keywatch

Page 54: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 54

Platelet Model (‘busy’ CA)Platelet Model (Platelet Model (‘‘busybusy’’ CA)CA)

drawdraw

Key: Phase 0Phase 0Phase 1Phase 1

keyboardkeyboard

keywatchscreenscreen

display

holegen ···cell cell cell···

display state running

Page 55: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 55

Platelet Model (‘busy’ CA)Platelet Model (Platelet Model (‘‘busybusy’’ CA)CA)

drawdraw

Key: Phase 0Phase 0keyboardkeyboard

keywatchscreenscreen

display

holegen ···cell cell cell···

display state running

Page 56: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 56

Platelet Model (‘busy’ CA)Platelet Model (Platelet Model (‘‘busybusy’’ CA)CA)

drawdraw

Key:Phase 1Phase 1

keyboardkeyboard

keywatchscreenscreen

display

holegen ···cell cell cell···

display state running

Page 57: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 57

Platelet Model (‘busy’ CA)Platelet Model (Platelet Model (‘‘busybusy’’ CA)CA)···cell cellcell cell······cell cellcell cell······cell cellcell cell······cell cellcell cell······cell cellcell cell······cell cellcell cell···

Page 58: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 58

Platelet Model (‘busy’ CA)Platelet Model (Platelet Model (‘‘busybusy’’ CA)CA)PROCPROC cell (cell (BYTEBYTE my.visible.statemy.visible.state, , BOOLBOOL running, running, BARRIERBARRIER draw, draw,

CHANCHAN CELL.CELLCELL.CELL l.inl.in??, , l.outl.out!!, , r.inr.in??, , r.outr.out!!))... local declarations / initialisation (phase 0)... local declarations / initialisation (phase 0)WHILE runningWHILE runningSEQSEQSYNCSYNC draw draw ---- phase 1phase 1... PAR... PAR--I/O exchange of full/empty stateI/O exchange of full/empty state... if full,... if full,... discover clump size (pass count through)... discover clump size (pass count through)... if head,... if head,... decide on move ... decide on move (non(non--deterministic choice)deterministic choice)... if move, tell empty cell ahead... if move, tell empty cell ahead... else receive decision on move from cell ahead... else receive decision on move from cell ahead... if not tail, pass decision back... if not tail, pass decision back... if tail and move, become empty... if tail and move, become empty... else if clump behind exists and moves, become full... else if clump behind exists and moves, become fullSYNCSYNC draw draw ---- phase 0phase 0... update ... update my.visible.statemy.visible.state

::

Page 59: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 59

Platelet Model (Visualisation)Platelet Model (Visualisation)Platelet Model (Visualisation)

Page 60: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 60

Platelet Model (‘busy’ CA)Platelet Model (Platelet Model (‘‘busybusy’’ CA)CA)Performance:Performance: each each cellcell has to work harder if full (carrying a has to work harder if full (carrying a plateletplatelet). Also, clotclot sizes are recomputed every cycle – so large clumps increase the cost. (2.4 GHz. P IV ‘mobile’ ).

Generate probability (n / 256)Generate probability (n / 256) Cell cycle time (ns)Cell cycle time (ns)

0 6501 6602 6704 6808 700

16 74032 1070 (total jam)

Page 61: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 61

Platelet Model (‘busy’ ‘lazy’ CA)Platelet Model (Platelet Model (‘‘busybusy’’ ‘‘lazylazy’’ CA)CA)Scaling problem:Scaling problem: every every cellcell is active every cycle is active every cycle –– regardless regardless of whether it contains a platelet. This works well for systems of whether it contains a platelet. This works well for systems with up to ~100K with up to ~100K cellscells..

For For TUNATUNA, we will need to be working in 3D (say, ~10M , we will need to be working in 3D (say, ~10M cellscells), ), modelling many different types of agent with much richer rules modelling many different types of agent with much richer rules of engagement.of engagement.

These automata must become These automata must become ‘‘lazylazy’’, whereby only processes , whereby only processes with things to do remain in the computation. with things to do remain in the computation.

Page 62: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 62

Platelet Model (‘busy’ ‘lazy’ CA)Platelet Model (Platelet Model (‘‘busybusy’’ ‘‘lazylazy’’ CA)CA)Logical problem:Logical problem: the rules for the different stages in the life the rules for the different stages in the life cycle of cycle of plateletsplatelets, or , or clotsclots, are coded into different cycles of , are coded into different cycles of the cells. Each the cells. Each cellcell sees lots of different sees lots of different platelets platelets –– sometimes sometimes bunched together as bunched together as clots clots –– and operates on them as they and operates on them as they pass through.pass through.

No process directly models the development of a single No process directly models the development of a single clotclot..

The following system addresses this. The The following system addresses this. The cellcell processes are processes are pure pure serversservers, not enrolled on the time, not enrolled on the time--synchronising synchronising barrierbarrier. . Their Their clientsclients are are clotclot processes, processes, generated dynamicallygenerated dynamically, that , that are enrolled on the are enrolled on the barrierbarrier and use that and use that barrierbarrier to synchronise to synchronise access to the access to the cellcell servers with their generator and the display.servers with their generator and the display.

The The cellcell processes are only worked as processes are only worked as clotclot boundariesboundaries pass pass over them.over them.

Page 63: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 63

Platelet Model (‘busy’ ‘lazy’ CA)Platelet Model (Platelet Model (‘‘busybusy’’ ‘‘lazylazy’’ CA)CA)

The following system addresses this. The The following system addresses this. The cellcell processes are processes are pure pure serversservers, not enrolled on the time, not enrolled on the time--synchronising synchronising barrierbarrier. . Their Their clientsclients are are clotclot processes, processes, generated dynamicallygenerated dynamically, that , that are enrolled on the are enrolled on the barrierbarrier and use that and use that barrierbarrier to synchronise to synchronise access to the access to the cellcell servers with their generator and the display.servers with their generator and the display.

To manage this, we need to movebarriers barriers to FORKFORKed processes. The general solution is given by making

barriersbarriers MOBILEMOBILE.

Page 64: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 64

occamoccam--ππ includes mobilemobile barrier types:

Barriers (mobile)Barriers (mobile)

MOBILEMOBILE BARRIER b:BARRIER b:SEQSEQbb := := MOBILE MOBILE BARRIERBARRIER... logic involving ... logic involving SYNC bSYNC b

Run-time construction

Declaration: initially bbis undefinedundefined

Whenever a barrier is constructed, the process doing the construction becomes enrolledenrolled.

Whenever a barrier is communicated (e.g. to a forkedforked process), the receiving process dynamically enrollsenrolls and the sending process resignsresigns (unless a CLONECLONE is sent).

Channels may carry MOBILE MOBILE BARRIERBARRIERs as components of their messages (occamoccam--ππ PROTOCOLPROTOCOLs).

Whenever a defined barrier variable is overwritten or goes out of scope, the process holding it resignsresigns.

Page 65: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 65

Forking Processes with BarriersForking Processes with BarriersForking Processes with Barriers

bb

FORKINGFORKINGXX PPPPPP

occamoccam--ππ viewview

Page 66: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 66

Forking Processes with BarriersForking Processes with BarriersForking Processes with Barriers

bb

FORKINGFORKINGXX PP PPPP

occamoccam--ππ viewview

Page 67: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 67

Platelet Model (‘lazy’ CA)Platelet Model (Platelet Model (‘‘lazylazy’’ CA)CA)

keyboardkeyboard

keywatch

gen

······ cell cellcell cell cellcell

clot

drawdraw

Page 68: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 68

Platelet Model (‘lazy’ CA)Platelet Model (Platelet Model (‘‘lazylazy’’ CA)CA)

keyboardkeyboard

keywatch

drawdraw

gen

······ cell cellcell cell cellcell

clot

phase 1

screenscreendisplay

Page 69: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 69

Platelet Model (‘lazy’ CA)Platelet Model (Platelet Model (‘‘lazylazy’’ CA)CA)

screenscreendisplay

keyboardkeyboard

keywatch

drawdraw

gen

······ cell cellcell cell cellcell

clotphase 0

Page 70: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 70

Platelet Model (‘lazy’ CA)Platelet Model (Platelet Model (‘‘lazylazy’’ CA)CA)

screenscreendisplay

keyboardkeyboard

keywatch

drawdraw

gen

······ cell cellcell cell cellcell

clotphase 0

Page 71: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 71

Platelet Model (‘lazy’ CA)Platelet Model (Platelet Model (‘‘lazylazy’’ CA)CA)

phase 1

screenscreendisplay

keyboardkeyboard

keywatch

drawdraw

gen

······ cell cellcell cell cellcell

clot

Page 72: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 72

Platelet Model (‘lazy’ CA)Platelet Model (Platelet Model (‘‘lazylazy’’ CA)CA)

screenscreendisplay

keyboardkeyboard

keywatch

drawdraw

gen

······ cell cellcell cell cellcell

clotphase 0

Page 73: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 73

Platelet Model (‘lazy’ CA)Platelet Model (Platelet Model (‘‘lazylazy’’ CA)CA)

screenscreendisplay

keyboardkeyboard

keywatch

drawdraw

gen

······ cell cellcell cell cellcell

clotphase 0

Page 74: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 74

Platelet Model (‘lazy’ CA)Platelet Model (Platelet Model (‘‘lazylazy’’ CA)CA)

screenscreendisplay

keyboardkeyboard

keywatch

drawdraw

gen

······ cell cellcell cell cellcell

phase 1

clotclot

Page 75: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 75

Platelet Model (‘lazy’ CA)Platelet Model (Platelet Model (‘‘lazylazy’’ CA)CA)

screenscreendisplay

keyboardkeyboard

keywatch

drawdraw

gen

······ cell cellcell cell cellcell

phase 1

clotclot

Page 76: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 76

Platelet Model (‘lazy’ CA)Platelet Model (Platelet Model (‘‘lazylazy’’ CA)CA)

screenscreendisplay

keyboardkeyboard

keywatch

drawdraw

gen

······ cell cellcell cell cellcell

phase 1

clotclot

Page 77: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 77

Platelet Model (‘lazy’ CA)Platelet Model (Platelet Model (‘‘lazylazy’’ CA)CA)

screenscreendisplay

keyboardkeyboard

keywatch

drawdraw

gen

······ cell cellcell cell cellcell

phase 1

clotclot

Page 78: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 78

Platelet Model (‘lazy’ CA)Platelet Model (Platelet Model (‘‘lazylazy’’ CA)CA)

screenscreendisplay

keyboardkeyboard

keywatch

drawdraw

gen

······ cell cellcell cell cellcell

phase 1

clot

Page 79: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 79

Platelet Model (‘lazy’ CA)Platelet Model (Platelet Model (‘‘lazylazy’’ CA)CA)

screenscreendisplay

keyboardkeyboard

keywatch

drawdraw

gen

······ cell cellcell cell cellcell

phase 1

clot

Page 80: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 80

Platelet Model (‘lazy’ CA)Platelet Model (Platelet Model (‘‘lazylazy’’ CA)CA)Performance:Performance: a a cellcell only works when a only works when a clotclot boundary moves through. Run-time depends only on the number of clotsclots; the clotclot sizes are now irrelevant (2.4 GHz. P IV-M).

Generate probability (n / 256)Generate probability (n / 256) ‘‘BusyBusy’’ (ns)(ns) ‘‘LazyLazy’’ (ns)(ns)

0 650 081 660

122 670144 680168 7001816 740

32 1070 (total jam) 0 (total jam)

Page 81: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 81

Clot Frequency by Position by SizeClot Frequency by Position by SizeClot Frequency by Position by Size

Page 82: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 82

Clot Frequency by Position by SizeClot Frequency by Position by SizeClot Frequency by Position by Size

Page 83: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 83

Clot Frequency by Position by SizeClot Frequency by Position by SizeClot Frequency by Position by Size

Page 84: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 84

Clot Frequency by Position by SizeClot Frequency by Position by SizeClot Frequency by Position by Size

Page 85: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 85

Clot Frequency by Position by SizeClot Frequency by Position by SizeClot Frequency by Position by Size

Page 86: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 86

Clot Frequency by Position by SizeClot Frequency by Position by SizeClot Frequency by Position by Size

Page 87: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 87

Clot Frequency by Position by SizeClot Frequency by Position by SizeClot Frequency by Position by Size

Page 88: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 88

Clot Frequency by Position by SizeClot Frequency by Position by SizeClot Frequency by Position by Size

Page 89: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 89

Clot Frequency by Position by SizeClot Frequency by Position by SizeClot Frequency by Position by Size

Page 90: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 90

Maximum Clot Size by PositionMaximum Clot Size by PositionMaximum Clot Size by Position

Page 91: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 91

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 92: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 92

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 93: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 93

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 94: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 94

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 95: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 95

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 96: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 96

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 97: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 97

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 98: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 98

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 99: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 99

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 100: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 100

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 101: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 101

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 102: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 102

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 103: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 103

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 104: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 104

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 105: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 105

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 106: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 106

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 107: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 107

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 108: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 108

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 109: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 109

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 110: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 110

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 111: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 111

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 112: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 112

3-D Bloodstream33--D BloodstreamD Bloodstream

Page 113: Motivation: Concurrency for All (Process Oriented Design )cs377/phw-slides/motivation.pdf · 2006-11-16 · QMonitor methods are tightly interdependent - their semantics compose in

30-Oct-06 Copyright P.H.Welch 113

3-D Bloodstream33--D BloodstreamD Bloodstream