Concurrent Models of Computation - Ptolemy...
Transcript of Concurrent Models of Computation - Ptolemy...
1
Concurrent Models of Computation
Edward A. LeeProfessor, UC BerkeleyPtolemy ProjectCHESS: Center for Hybrid and Embedded Software Systems
HP Workshop on Advanced Software TechnologiesJuly 20-22HP Labs, Palo Alto, CA
Lee, Berkeley 2
Standard Software Abstraction(20-th Century Computation)
initial state
final state
sequence f : State → State
• Time is irrelevant• All actions are ordered
Alan Turing
2
Lee, Berkeley 3
Standard Software Abstraction: Processes or Threads
suspend
Infinite sequences of state transformations are called “processes” or “threads”
The operating system (typically) provides:
• suspend/resume• mutual exclusion• semaphores
resume
Lee, Berkeley 4
stalled for rendezvous
stalled by precedence
race condition
Standard Software Abstraction:Concurrency via Interacting Threads
Potential for race conditions, deadlock, and livelockseverely compromises software reliability.
These methods date back to the 1960’s (Dijkstra).
3
Lee, Berkeley 5
A Stake in the Ground
Nontrivial concurrent programs based on processes, threads, semaphores, and mutexesare incomprehensible to humans.
No amount of process improvement is going to change this.
• the human brain doesn’t work this way.
Formal methods may help• scalability?• understandability?
Better concurrency abstractions will help more
Lee, Berkeley 6A Story: Ptolemy Project Code ReviewA Story: Ptolemy Project Code Review
4
Lee, Berkeley 7
Ptolemy Project Code ReviewA Typical Story
Code review discovers that a method needs to be synchronized to ensure that multiple threads do not reverse each other’s 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.
Lee, Berkeley 8
Code Review Doesn’t Always WorkAnother Typical Story
/**CrossRefList is a list that maintains pointers to other CrossRefLists.…@author Geroncio Galicia, Contributor: Edward A. Lee@version $Id: CrossRefList.java,v 1.78 2004/04/29 14:50:00 eal Exp $@since Ptolemy II [email protected] Green (eal)@Pt.AcceptedRating 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.
5
Lee, Berkeley 9
And Doubts Remain/**CrossRefList is a list that maintains pointers to other CrossRefLists.…@author Geroncio Galicia, Contributor: Edward A. Lee@version $Id: CrossRefList.java,v 1.78 2004/04/29 14:50:00 eal Exp $@since Ptolemy II [email protected] Green (eal)@Pt.AcceptedRating 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.
Lee, Berkeley 10
What it Feels Like to Use the synchronizedKeyword in Java
Imag
e “b
orro
wed”
fro
m a
n Io
meg
a ad
vert
isem
ent
for
Y2K
soft
ware
and
dis
k dr
ives
, Sci
enti
fic
Amer
ican
, Sep
tem
ber
1999
.
6
Lee, Berkeley 11
Diagnosis: 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.
Lee, Berkeley 12
remote procedure call
Distributed Version of 20-th Century Computation
Force-fitting the sequential abstraction onto parallel hardware.
7
Lee, Berkeley 13
“asynchronous”procedure call
Combining Processes and RPC –Split-Phase Execution, Futures,Asynchronous Method Calls, Callbacks, …
These methods are at least as incomprehensible as concurrent threads or processes.
Lee, Berkeley 14
Model Used in Wireless Sensor NetsNo Threads: nesC and TinyOS
Component 1
interface used
interface provided
Component 2
interface used
interface provided
command invoked
command implemented event signaled
event handled
Typical usage pattern:hardware interrupt signals an event.event handler posts a task.tasks are executed when machine is idle.tasks execute atomically w.r.t. one another.tasks can invoke commands and signal events.hardware interrupts can interrupt tasks.exactly one monitor, implemented by disabling interrupts.
Command implementers can invoke other commands or post tasks, but do not trigger events.
8
Lee, Berkeley 15
Ptolemy II: Framework for Experimenting with Alternative Concurrent Models of Computation
Director from a library defines component interaction semantics
Large, domain-polymorphic component library.
Basic Ptolemy II infrastructure:
Visual editor supporting an abstract syntax
Type system for transported data
Lee, Berkeley 16
The Basic Abstract Syntax
PortPort
Actor ActorLink
Relation
ActorPort
connection
connection conn
ectio
n
Link
Link
Attributes Attributes
Attributes
• 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, …)
9
Lee, Berkeley 17
Hierarchy - Composite Components
toplevel CompositeActortransparent or opaqueCompositeActor
Actor
Relationdangling
Port
Portopaque Port
Lee, Berkeley 18
Abstract 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)• …
Actor
IOPort IORelation
P2P1
E1
E2
send(0,t) receiver.put(t) get(0)
token tR1
Basic Transport:
Receiver(inside port)
execution control data transport
init()fire()
10
Lee, Berkeley 19
What is an Actor-Oriented MoC?
Actor oriented:
actor name
data (state)
ports
Input data
parameters
Output data
What flows through an object is
streams of data
class name
data
methods
call return
What flows through an object is
sequential control
Traditional component interactions:
Lee, Berkeley 20
Models of ComputationImplemented in Ptolemy II
CI – Push/pull component interactionClick – Push/pull with method invocationCSP – concurrent threads with rendezvousCT – continuous-time modelingDE – discrete-event systemsDDE – distributed discrete eventsFSM – finite state machinesDT – discrete time (cycle driven) Giotto – synchronous periodicGR – 2-D and 3-D graphicsPN – process networksDPN – distributed process networksSDF – synchronous dataflowSR – synchronous/reactiveTM – timed multitasking
Most of these are actor oriented.
11
Lee, Berkeley 21
Discrete Event ModelsDE Director implements timed semantics using an event queue
Event source
Time line
Reactive actors
Signal
Lee, Berkeley 22
Semantics of DE Signals
TIF →×ℜ:A signal is a partial function:
F
Real numbers (approximated by doubles)
Data type (set of values)
Integers (allowing for simultaneous events in a signal)
signal in signal out
Note: A signal is not a single event but all the events that flow on a path.
12
Lee, Berkeley 23
Subtleties: 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.
Lee, Berkeley 24
Subtleties: 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).
13
Lee, Berkeley 25
Discrete-Event Semantics
τ2/1),( =yxdCantor metric:
where τ is the earliest time where x and y differ.
τ
x
y
Lee, Berkeley 26
Causality
x
x′
y
y′
),(),( xxdyyd ′≤′Causal:
),(),( xxdyyd ′<′Strictly causal:
,1<∃δDelta causal:
),(),( xxdyyd ′≤′ δ
A delta-causal component is a “contraction map.”
14
Lee, Berkeley 27
Semantics of Composition
x yFxxFyx=⇒=
)(
Banach fixed point theorem:• Contraction map has a unique fixed point• Execution procedure for finding that fixed point• Successive approximations to the fixed point
If the components are deterministic, the composition is deterministic.
Lee, Berkeley 28
Zeno Systems
Theorem: If every directed cycle contains a delta-causal component, then the system is non-Zeno.
15
Lee, Berkeley 29
Extension of Discrete-Event Modeling for Wireless Sensor Nets
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.
Lee, Berkeley 30
Distributed Discrete Event Modelsas Currently Implemented in Ptolemy II
DDE Director supports distributed execution and a distributed notion of time [Chandy & Misra 1979]
Blocking read at input ports prevents time from locally advancing without “permission” from a source
Local notion of time in each actor, advancing only when input is received
This is the “Chandy and Misra” style of distributed discrete events [1979], which compared to Croquet and Time Warp [Jefferson, 1985], is “conservative.”
16
Lee, Berkeley 31
Continuous-Time Models
A signal has a value at all real-valued times.
Integrator used to define systems governed by ordinary differential equations.
Director implements a “solver” that constructs an approximation to the continuous-time behavior.
Lee, Berkeley 32
Heterogeneous ModelsMixed Signals: DE + CT
DE model of a digital controller
CT model of mechanical system
DE signal
CT signal
17
Lee, Berkeley 33
Heterogeneous ModelsHybrid Systems: CT + FSM
The FSM director can be combined with other directors to create modal models.
Lee, Berkeley 34
Untimed Concurrency Model:First Example: Click
Implementation of Click with a visual syntax in Mescal (Keutzer, et al.)
push output portpush input port
pull output port
agnostic output port
Typical usage pattern:queues have push input, pull output.schedulers have pull input, push output.thin wrappers for hardware have push output or pull input only.push or pull handled by method calls
18
Lee, Berkeley 35
Untimed Concurrency Model:Second Example: Process Networks
actor == thread
signal == stream
reads block
writes don’tKahn, MacQueen, 1977
Lee, Berkeley 36
PN Semantics
A signal is a sequence of valuesDefine a prefix order:
x ymeans that x is a prefix of y.Actors are monotonic functions:
x y ⇒ F(x) F(y)Stronger condition: Actors are continuousfunctions (intuitively: they don’t wait forever to produce outputs).
x
y
)(xF
)(yF
19
Lee, Berkeley 37
PN Semantics of Composition (Kahn, ’74)
x yFxxFyx=⇒=
)(
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
If the components are deterministic, the composition is deterministic.
Lee, Berkeley 38
Distributed Process Networks
Created by Dominique Ragot, Thales Communications
Transport mechanism between hosts is provided by the director. Transparently provides guaranteed delivery and ordered messages.
20
Lee, Berkeley 39
Kepler: Extensions to Ptolemy II for Scientific Workflows
Example showing a web service wrapper (Thanks to Bertram Ludaecher, San Diego Supercomputer Center)
Lee, Berkeley 40
Synchronous Models of Computation
Director finds a value (or absent) at each “tick” of a global clock
Feedback is resolved by finding a fixed point.
Signal has a value or is absentat each tick of the “clock.”
Semantic foundation based on Kanster-Tarski fixed point theorem on Scott topologies.
21
Lee, Berkeley 41
Languages Based on theSynchronous Model of Computation
Lustre (and SCADE)EsterelSignalStatecharts (and UML state machines)Argos…
Lee, Berkeley 42
Dataflow Models of Computation
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, 1980’s]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]…
Many tools, software frameworks, and hardware architectures have been built to support one or more of these.
22
Lee, Berkeley 43
Synchronous Dataflow (SDF)(Lee and Messerschmitt, 1986)
SDF offers feedback, multirate, static scheduling, deadlock analysis, parallel scheduling, static memory allocation.
SDF director
Lee, Berkeley 44
Synchronous Dataflow (SDF)Fixed Production/Consumption Rates
Balance equations (one for each channel):
Schedulable staticallyGet a well-defined “iteration”Decidable:
buffer memory requirementsdeadlock
fire B {…consume M…
}
fire A {…produce N…
}
channelN M
MfNf BA =number of tokens consumed
number of firings per “iteration”
number of tokens produced
23
Lee, Berkeley 45
One Consequence of SDF Semantics:Mobile Code that Cannot Perform Denial of Service Attacks
MobileModel actor accepts an XML description of a model. It then executes that model on a stream of input data using locally defined component implementations.
PushConsumer actor receives pushed data provided via CORBA, where the data is an XML model of a signal analysis algorithm.
SDF model has decidable semantics (termination, memory usage).
Lee, Berkeley 46
Parallel Scheduling of SDF Models
A
C
D
B
Sequential Parallel
SDF is suitable for automated mapping onto parallel processors and synthesis of parallel circuits.
Many scheduling optimization problems can be formulated.
Some can be solved, too!
24
Lee, Berkeley 47
Scheduling Tradeoffs(Bhattacharyya, Parks, Pino)
264170Best minimum code size schedule
1021170Worst minimum code size schedule
329400 Minimum buffer schedule, with looping
3213735 Minimum buffer schedule, no looping
DataCodeScheduling strategy
Source: Shuvra Bhattacharyya
Lee, Berkeley 48
Minimum Buffer Schedule
A B A B C A B C A B A B C A B C D E A F F F F F B A B C A B C A B A B C D EA F F F F F B C A B A B C A B C A B A B C D E A F F F F F B C A B A B C A B CD E A F F F F F B A B C A B C A B A B C A B C D E A F F F F F B A B C A B C AB A B C D E A F F F F F B C A B A B C A B C A B A B C D E A F F F F F E B C AF F F F F B A B C A B C D E A F F F F F B A B C A B C A B A B C A B C D E A FF F F F B A B C A B C A B A B C D E A F F F F F B C A B A B C A B C A B A B CD E A F F F F F B C A B A B C A B C D E A F F F F F B A B C A B C A B A B C AB C D E A F F F F F B A B C A B C A B A B C D E A F F F F F E B C A F F F F F BA B C A B C A B A B C D E A F F F F F B C A B A B C A B C D E A F F F F F B AB C A B C A B A B C A B C D E A F F F F F B A B C A B C A B A B C D E A F F FF F B C A B A B C A B C A B A B C D E A F F F F F B C A B A B C A B C D E A FF F F F B A B C A B C A B A B C A B C D E A F F F F F E B A F F F F F B C A B CA B A B C D E A F F F F F B C A B A B C A B C A B A B C D E A F F F F F B C AB A B C A B C D E A F F F F F B A B C A B C A B A B C A B C D E A F F F F F BA B C A B C A B A B C D E A F F F F F B C A B A B C A B C A B A B C D E A FF F F F B C A B A B C A B C D E F F F F F E F F F F F
Source: Shuvra Bhattacharyya
25
Lee, Berkeley 49
Selected Generalizations
Multidimensional Synchronous Dataflow (1993)Arcs carry multidimensional streamsOne balance equation per dimension per arc
Cyclo-Static Dataflow (Lauwereins, et al., 1994)Periodically varying production/consumption rates
Boolean & Integer Dataflow (1993/4)Balance equations are solved symbolicallyPermits data-dependent routing of tokensHeuristic-based scheduling (undecidable)
Dynamic Dataflow (1981-)Firings scheduled at run timeChallenge: maintain bounded memory, deadlock freedom, livenessDemand driven, data driven, and fair policies all fail
Kahn Process Networks (1974-)Replace discrete firings with process suspensionChallenge: maintain bounded memory, deadlock freedom, liveness
Heterochronous Dataflow (1997)Combines state machines with SDF graphsVery expressive, yet decidable
Lee, Berkeley 50
Multidimensional SDF(Lee, 1993)
Production and consumption of N-dimensional arrays of data:
Balance equations andscheduling policiesgeneralize.Much more data parallelism is exposed.
(40, 48)
(8, 8)
Similar (but dynamic) multidimensional streams have been implemented in Lucid.
26
Lee, Berkeley 51
MDSDF Structure ExposesFine-Grain Data Parallelism
(1,1,N)
(1,1,1)
Repeat
(0,1,0)
Downsample
(1,M,N)
(M,N,1)
Transpose Parameter: (3,1,2)T
A(L,M)
B(M,N)
(L,1,1)
(1,1,1)
Repeat
T
(1,M,1)
(1,1,1)(L,1,N)
(L,N,1)
Transpose Parameter: (1,3,2)
From this, a precedencegraph can be automaticallyconstructed that revealsall the parallelism in thealgorithm.
L
M
N
M
N
L
Original Matrix
Repeats
Element-wise product
Original Matrix
Repeats
However, such programs are extremely hard to write (and to read).
Lee, Berkeley 52
Cyclostatic Dataflow (CSDF)(Lauwereins et al., TU Leuven, 1994)
Actors cycle through a regular production/consumption pattern.Balance equations become:
fire B {…consume M…
}
fire A {…produce …
}
channel
),(;1
0mod
1
0mod QPlcmRMfNf
R
iQiB
R
iPiA == ∑∑
−
=
−
=
iN10 ,, −PNN K 10 ,, −QMM K
cyclic production pattern
27
Lee, Berkeley 53
Boolean and Integer Dataflow (BDF, IDF)(Lee and Buck, 1993)
Balance equations are solved symbolically in terms of unknowns that become known at run time.An annotated schedule is constructed with predicates guarding each action. Existence of such an annotated schedule is undecidable (as is deadlock & bounded memory)
Production rate is unknown and is represented symbolically by a variable (b).
B
sele
ct
swit
ch
b
1− b
b
1− b
A
CD
E
...)1( Cswitch
Bswitch
fbffbf=−
=
b
Lee, Berkeley 54
Dynamic Dataflow (DDF)
Actors have firing rulesSet of finite prefixes on input sequencesFor determinism: No two such prefixes are joinable under a prefix orderFiring function applied to finite prefixes yield finite outputs
Scheduling objectives:Do not stop if there are executable actorsExecute in bounded memory if this is possibleMaintain determinacy if possible
Policies that fail:Data-driven executionDemand-driven executionFair executionMany balanced data/demand-driven strategies
Policy that succeeds (Parks 1995):Execute with bounded buffersIncrease bounds only when deadlock occurs
DDF, like BDF and IDF is undecidable(deadlock, bounded memory, schedule)
28
Lee, Berkeley 55
Undecidability(Buck ’93)
Sufficient set of actors for undecidability:boolean functions on boolean tokensswitch and selectinitial tokens on arcs
Undecidable:deadlockbounded buffer memoryexistence of an annotated schedule
booleanfunction se
lect
switc
h
initial token
1
1
1
1
1 1
1
b
1- b
b
1- b
BDF, IDF, DDF, and PN are all undecidablein this sense. Fortunately, we can identify a large decidable subset, which we call heterochronous dataflow (HDF).
T
F
T
F
These four parts are sufficient to build any computable function.
Lee, Berkeley 56
Example of a Heterochronous Dataflow Model
An actor consists of a state machine and refinements to the states that define behavior.
29
Lee, Berkeley 57
Heterochronous Dataflow (HDF)(Girault, Lee, and Lee, 1997)
An interconnection of actors.An actor is either SDF or HDF.If HDF, then the actor has:
a state machinea refinement for each statewhere the refinement is an SDF or HDF actor
Operational semantics:with the state of each state machine fixed, graph is SDFin the initial state, execute one complete SDF iterationevaluate guards and allow state transitionsin the new state, execute one complete SDF iteration
HDF is decidablebut complexity can be high
Related to “parameterized dataflow” of Bhattachrya and Bhattacharyya (2001).
Lee, Berkeley 58
Ptolemy II Software ArchitectureBuilt for Extensibility
Ptolemy II packages have carefully constructed dependencies and interfaces
PN
CSP
CT
DE FSM
SDF
Kernel
Data
Actor Math
Graph
30
Lee, Berkeley 59
Ptolemy II Component Libraryactor
actor.lib
AbsoluteValueAccumulatorAddSubtractArrayAppendArrayElementArrayExtractArrayLengthArrayMaximumArrayMinimumAverageBernoulliConstCounterDBDifferentialDiscreteRandomSourceExpressionGaussianIIRInterpolatorLatticeLevinsonDurbinLimiterLinearDifferenceEquationSystemLookupTableMathFunctionMaxIndexMaximumMinimumMultiplyDividePhaseUnwrapPoissonClockPulseQuantizerRandomSourceRecursiveLatticeRicianScaleTrigFunctionUniform
ConvolutionalCoderDeScramblerHadamardCodeScramblerViterbiDecoder
actor.lib.comm
ArrayPlotterArrowKeySensorBarGraphDisplayHistogramPlotterInteractiveShellKeystrokeSensorMatrixViewerPlotterPlotterBaseRealTimePlotterSequencePlotterSequenceScopeSketchedSourceSliderSourceTimedPlotterTimedScopeXYPlotterXYScope
actor.lib.gui
AudioCaptureAudioPlayerAudioReadBufferAudioReaderAudioWriteBufferAudioWriter
actor.lib.javasound
ImageDisplayImageReaderImageRotateImageToStringTransformURLToImage
actor.lib.image
DoubleMatrixToJAIJAIAffineTransformJAIBMPWriterJAIBandCombineJAIBandSelectJAIBorderJAIBoxFilterJAIConvolveJAICropJAIDCTJAIDFTJAIDataCasterJAIEdgeDetectionJAIIDCTJAIIDFTJAIImageReaderJAIImageTokenJAIInvertJAIJPEGWriterJAILogJAIMagnitudeJAIMedianFilterJAIPNMWriterJAIPeriodicShiftJAIPhaseJAIPolarToComplexJAIRotateJAIScaleJAITIFFWriterJAIToDoubleMatrixJAITranslateJAITranspose
actor.lib.jai
ColorFinderJMFImageTokenPlaySoundVideoCamera
actor.lib.jmf
domains
sdf
lib
ArrayToSequenceAutocorrelationDelayLineDotProductDownSampleFFTFIRIFFTLMSAdaptiveLineCoderMatrixToSequenceRaisedCosineRepeatSampleDelaySequenceToArraySequenceToMatrixUpSampleVariableFIRVariableLatticeVariableRecursiveLattice
UML package diagram of key actor libraries included with Ptolemy II.
Data polymorphic componentsBehaviorally polymorphic components
Lee, Berkeley 60
Polymorphic Components - Component Library Works Across Data Types and Domains
Data polymorphism:Add numbers (int, float, double, Complex)Add strings (concatenation)Add composite types (arrays, records, matrices)Add user-defined types
Behavioral polymorphism:In dataflow, add when all connected inputs have dataIn a time-triggered model, add when the clock ticksIn discrete-event, add when any connected input has data, and add in zero timeIn process networks, execute an infinite loop in a thread that blocks when reading empty inputsIn CSP, execute an infinite loop that performs rendezvous on input or outputIn push/pull, ports are push or pull (declared or inferred) and behave accordinglyIn real-time CORBA, priorities are associated with ports and a dispatcher determines when to add
By not choosing among these when defining the component, we get a huge increment in component re-usability. But how do we ensure that the component will work in all these circumstances?
31
Lee, Berkeley 61
Shared InfrastructureModularity Mechanisms
instance
instance
subclass
inherited actors
override actors
local classdefinition
execution
Lee, Berkeley 62
More Shared Infrastructure: Hierarchical Heterogeneity and Modal Models
modal model
dataflow controller
example Ptolemy II model: hybrid control system
continuous-time model
32
Lee, Berkeley 63
Branding
Ptolemy II configurations are Ptolemy II models that specify
welcome windowhelp menu contentslibrary contentsFile->New menu contentsdefault model structureetc.
A configuration can identify its own “brand” independent of the “Ptolemy II” name and can have more targeted objectives.
An example is HyVisual, a tool for hybrid system modeling. VisualSense is another tool for wireless sensor network modeling.
Lee, Berkeley 64
Ptolemy II Extension Points
Define actorsInterface to foreign tools (e.g. Python, MATLAB)Interface to verification tools (e.g. Chic)Define actor definition languagesDefine directors (and models of computation)Define visual editorsDefine textual syntaxes and editorsPackaged, branded configurations
All of our “domains” are extensions built on a core infrastructure.
33
Lee, Berkeley 65
Example Extension: VisualSense
• Branded
• Customized visualization
• Customized model of computation (an extension of DE)
• Customized actor library
• Motivated some extensions to the core (e.g. classes, icon editor).
Lee, Berkeley 66
Example Extensions: Self-Repairing Models
Concept demonstration built together with Boeing to show how to write actors that adaptively reconstruct connections when the model structure changes.
34
Lee, Berkeley 67
Example ExtensionsPython Actors and Cal Actors
Cal is an experimental language for defining actors that is analyzable for key behavioral properties.
Lee, Berkeley 68
Example ExtensionsUsing Models to Control Models
This is an example of a “higher-order component,” or an actor that references one or more other actors.
35
Lee, Berkeley 69
Examples of ExtensionsMobile Models
Model-based distributed task management:
MobileModel actor accepts a StringTokencontaining an XML description of a model. It then executes that model on a stream of input data.
PushConsumer actor receives pushed data provided via CORBA, where the data is an XML model of a signal analysis algorithm.
Authors:Yang ZhaoSteve NeuendorfferXiaojun Liu
Lee, Berkeley 70
Examples of ExtensionsHooks to Verification Tools
New component interfaces to Chic verification tool
Authors:Arindam ChakrabartiEleftherios Matsikoudis
36
Lee, Berkeley 71
Examples of ExtensionsHooks to Verification Tools
Authors:Arindam ChakrabartiEleftherios Matsikoudis
Synchronous assume/guarantee interface specification for Block1
Lee, Berkeley 72
Examples of ExtensionsHooks to Verification Tools
37
Lee, Berkeley 73
Conclusion
Threads suckThere are many alternative concurrent MoCsThe ones you know are the tip of the icebergPtolemy II is a lab for experimenting with themSpecializing MoCs can be usefulMixing specialized MoCs can be useful.