EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization

Similar documents
Fundamental Algorithms for System Modeling, Analysis, and Optimization

Overview of Dataflow Languages. Waheed Ahmad

Main application of SDF: DSP hardware modeling

From synchronous models to distributed, asynchronous architectures

Concurrent Models of Computation

Compositionality in Synchronous Data Flow: Modular Code Generation from Hierarchical SDF Graphs

Embedded Systems 7 BF - ES - 1 -

Embedded Systems 8. Identifying, modeling and documenting how data moves around an information system. Dataflow modeling examines

Embedded Systems 7. Models of computation for embedded systems

fakultät für informatik informatik 12 technische universität dortmund Data flow models Peter Marwedel TU Dortmund, Informatik /10/08

HW/SW Codesign. Exercise 2: Kahn Process Networks and Synchronous Data Flows

Embedded Systems CS - ES

Dataflow Languages. Languages for Embedded Systems. Prof. Stephen A. Edwards. March Columbia University

STATIC SCHEDULING FOR CYCLO STATIC DATA FLOW GRAPHS

Computational Models for Concurrent Streaming Applications

Tokens vs. Signals: On Conformance between Formal Models of Dataflow and Hardware

Compositionality in Synchronous Data Flow: Modular Code Generation from Hierarchical SDF Graphs

Requirements on the Execution of Kahn Process Networks

SDL. Jian-Jia Chen (slides are based on Peter Marwedel) TU Dortmund, Informatik 年 10 月 18 日. technische universität dortmund

Hierarchical Reconfiguration of Dataflow Models

Hardware Software Codesign

Modelling and simulation of guaranteed throughput channels of a hard real-time multiprocessor system

Model checking pushdown systems

Modelling, Analysis and Scheduling with Dataflow Models

LabVIEW Based Embedded Design [First Report]

Hierarchical Reconfiguration of Dataflow Models

Symbolic Buffer Sizing for Throughput-Optimal Scheduling of Dataflow Graphs

FSMs & message passing: SDL

EE249 Discussion Petri Nets: Properties, Analysis and Applications - T. Murata. Chang-Ching Wu 10/9/2007

AMAJOR impediment to further progress in modeling

Static Scheduling and Code Generation from Dynamic Dataflow Graphs With Integer- Valued Control Streams

Lecture 4: Synchronous Data Flow Graphs - HJ94 goal: Skiing down a mountain

By: Chaitanya Settaluri Devendra Kalia

Petri Nets ee249 Fall 2000

Modeling Stream-Based Applications using the SBF model of computation

ESE532: System-on-a-Chip Architecture. Today. Process. Message FIFO. Thread. Dataflow Process Model Motivation Issues Abstraction Recommended Approach

Actors and their composition. Jörn W. Janneck

Interface Automata and Actif Actors

Implementation of Process Networks in Java

Modal Models in Ptolemy

Petri Nets. Robert A. McGuigan, Department of Mathematics, Westfield State

A Schedulability-Preserving Transformation Scheme from Boolean- Controlled Dataflow Networks to Petri Nets

Reliable Embedded Multimedia Systems?

Dynamic Dataflow Modeling in Ptolemy II. by Gang Zhou. Research Project

Petri Nets. Petri Nets. Petri Net Example. Systems are specified as a directed bipartite graph. The two kinds of nodes in the graph:

Building Synchronous DataFlow graphs with UML & MARTE/CCSL

Compositionality in system design: interfaces everywhere! UC Berkeley

EE382N.23: Embedded System Design and Modeling

Höllische Programmiersprachen Hauptseminar im Wintersemester 2014/2015 Determinism and reliability in the context of parallel programming

Coverability Graph and Fairness

Embedded Systems 7. Petri net plan coordination for robocup teams G. Kontes and M.G. Lagoudakis BF - ES BF - ES - 2 -

EE213A - EE298-2 Lecture 8

Specifications and Modeling

Lecture 6. Abstract Interpretation

Promela and SPIN. Mads Dam Dept. Microelectronics and Information Technology Royal Institute of Technology, KTH. Promela and SPIN

Paradigms of computer programming

Outline. Petri nets. Introduction Examples Properties Analysis techniques. 1 EE249Fall04

Bounded Scheduling of Process Networks. Thomas M. Parks. B.S.E (Princeton University) in the

Concurrent Models of Computation

HW/SW Cyber-System Co-Design and Modeling

COMP 763. Eugene Syriani. Ph.D. Student in the Modelling, Simulation and Design Lab School of Computer Science. McGill University

3.7 Denotational Semantics

Throughout this course, we use the terms vertex and node interchangeably.

[module 2.2] MODELING CONCURRENT PROGRAM EXECUTION

fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik /11/15

EECS 144/244. Fundamental Algorithms for System Modeling, Analysis, and Optimization. Lecture 1: Introduction, Systems

6.080 / Great Ideas in Theoretical Computer Science Spring 2008

A NETWORK OF COMMUNICATING LOGIC PROGRAMS AND ITS SEMANTICS. Susumu Yamasaki. Department of Information Science, Kyoto University Sakyo, Kyoto, Japan

Petri Nets ~------~ R-ES-O---N-A-N-C-E-I--se-p-te-m--be-r Applications.

Transactional Information Systems:

DIGITAL VS. ANALOG SIGNAL PROCESSING Digital signal processing (DSP) characterized by: OUTLINE APPLICATIONS OF DIGITAL SIGNAL PROCESSING

Counting Interface Automata and their Application in Static Analysis of Actor Models

The Markov Reformulation Theorem

Timed Automata: Semantics, Algorithms and Tools

Math 5593 Linear Programming Lecture Notes

CONVENTIONAL EXECUTABLE SEMANTICS. Grigore Rosu CS422 Programming Language Semantics

System Correctness. EEC 421/521: Software Engineering. System Correctness. The Problem at Hand. A system is correct when it meets its requirements

Hardware-Software Codesign. 6. System Simulation

PROGRAM ANALYSIS & SYNTHESIS

CS 6110 S14 Lecture 38 Abstract Interpretation 30 April 2014

Formal Specification and Verification

Computational Process Networks a model and framework for high-throughput signal processing

4/6/2011. Model Checking. Encoding test specifications. Model Checking. Encoding test specifications. Model Checking CS 4271

The alternator. Mohamed G. Gouda F. Furman Haddix

Software Engineering using Formal Methods

Behavioural Equivalences and Abstraction Techniques. Natalia Sidorova

Fork Sequential Consistency is Blocking

Course Modelling of Concurrent Systems Summer Semester 2016 University of Duisburg-Essen

Imperative model of computation

CS422 - Programming Language Design

Hierarchical FSMs with Multiple CMs

CONVENTIONAL EXECUTABLE SEMANTICS. Grigore Rosu CS522 Programming Language Semantics

Qualitative Analysis of WorkFlow nets using Linear Logic: Soundness Verification

Distributed Systems Programming (F21DS1) Formal Verification

The SPIN Model Checker

Fork Sequential Consistency is Blocking

Reactive Process Networks

A Fair Extension of (Soft) Concurrent Constraint Languages

Design and Analysis of Distributed Interacting Systems

Computer Science Technical Report

Transcription:

EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization Dataflow Lecture: SDF, Kahn Process Networks Stavros Tripakis University of California, Berkeley Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 1 / 52

Dataflow: Meanings and Origins Dataflow: generic term in computer science, with multiple meanings common theme: data flowing through some computing network this course: asynchronous processes communicating via FIFO queues Multiple origins: Computer architecture: dataflow (vs. von Neumann) architectures for efficient, parallel computing Note: HW is dataflow in any case Signal processing (c.f. SDF) Foundations of distributed systems (c.f. Kahn Process Networks)... possibly others... Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 2 / 52

Synchronous Data Flow 1 (SDF) One of the most basic dataflow models Proposed in 1987 [Lee and Messerschmitt, 1987] Widely used: mainly in signal-processing applications Many many variants: SDF, CSDF, HSDF, SADF,... Semantics: untimed, timed, probabilistic untimed variants can be used for checking correctness of the system (e.g., consistency, deadlocks), and for design-space exploration (e.g., buffer sizing) timed variants can be used for performance analysis: worst-case or, in the case of probabilistic models, average-case We look first at untimed, then at timed SDF 1 a better (and sometimes used) term is Static Data Flow Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 3 / 52

UNTIMED SDF Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 4 / 52

(Untimed) SDF 1 α 2 3 β 1 A B C An SDFG (SDF Graph) A, B, C: dataflow actors 1, 2, 3,...: token production/consumption rates α, β: (a-priori unbounded) FIFO queues (channels) each channel has unique producer/consumer abstract from token values FIFO property ignored Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 5 / 52

(Untimed) SDF A 1 α 2 B 3 β 1 C 2 An SDFG (SDF Graph) A, B, C: dataflow actors 1, 2, 3,...: token production/consumption rates α, β: (a-priori unbounded) FIFO queues (channels) each channel has unique producer/consumer abstract from token values FIFO property ignored Channels can have initial tokens Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 5 / 52

(Untimed) SDF A 1 α 2 B 3 β 1 C 2 An SDFG (SDF Graph) A, B, C: dataflow actors 1, 2, 3,...: token production/consumption rates α, β: (a-priori unbounded) FIFO queues (channels) each channel has unique producer/consumer abstract from token values FIFO property ignored Channels can have initial tokens Behavior (intuition): A: can fire at any time; it produces 1 token every time it fires B: needs 2 tokens in order to fire; it consumes 2 tokens and produces 3 tokens every time it fires; C: needs 1 token in order to fire; it consumes 1 token each time it fires. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 5 / 52

SDF Formal Semantics (sketch) A 1 α 2 B 3 β 1 C 2 An SDFG defines a labeled transition system: State = a vector describing how many tokens are in every channel Note: tokens have no value FIFO property irrelevant Initial state (unique): determined by initial tokens E.g., (α : 2, β : 1) in example above Transitions: if actor A consumes c A tokens from α i and produces p A tokens to α j, and k i c A, then the following transition is possible: (k 1,..., k i,..., k j,..., k n ) A (k 1,..., k i c A,..., k j + p A,..., k n ) Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 6 / 52

Example 1 α 2 3 β 1 A B C This SDFG defines the following LTS: (0, 0)

Example 1 α 2 3 β 1 A B C This SDFG defines the following LTS: (0, 0) A (1, 0)

Example 1 α 2 3 β 1 A B C This SDFG defines the following LTS: (0, 0) A (1, 0) A (2, 0)

Example 1 α 2 3 β 1 A B C This SDFG defines the following LTS: (0, 0) A (1, 0) A (2, 0) A (3, 0) A (4, 0)

Example 1 α 2 3 β 1 A B C This SDFG defines the following LTS: (0, 0) A (1, 0) A (2, 0) A (3, 0) A (4, 0) B (0, 3)

Example 1 α 2 3 β 1 A B C This SDFG defines the following LTS: (0, 0) A (1, 0) A (2, 0) A (3, 0) A (4, 0) B (0, 3) A A (1, 3) (2, 3) C (0, 2) Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 7 / 52

Example 1 α 2 3 β 1 A B C Observe: There exist behaviors where queues grow unbounded Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 8 / 52

Example 1 α 2 3 β 1 A B C Observe: There exist behaviors where queues grow unbounded But there are also behaviors where this doesn t happen and all actors keep firing Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 8 / 52

Example 1 α 2 3 β 1 A B C Observe: There exist behaviors where queues grow unbounded But there are also behaviors where this doesn t happen and all actors keep firing These are the behaviors we want Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 8 / 52

Example 1 α 2 3 β 1 A B C Observe: There exist behaviors where queues grow unbounded But there are also behaviors where this doesn t happen and all actors keep firing These are the behaviors we want Some can be represented by periodic schedules: (AABCCC) ω Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 8 / 52

Example 1 α 2 3 β 1 A B C Observe: There exist behaviors where queues grow unbounded But there are also behaviors where this doesn t happen and all actors keep firing These are the behaviors we want Some can be represented by periodic schedules: (AABCCC) ω Can we always find such schedules? Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 8 / 52

SDF: Deadlock A 1 1 2 1 2 B Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 9 / 52

SDF: Deadlock A 1 1 2 1 2 B Behavior deadlocks! (0, 2) A (1, 0) B (0, 1) Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 9 / 52

SDF: Unbounded Behavior 2 1 A 1 1 B Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 10 / 52

SDF: Unbounded Behavior 2 1 A 1 1 B Queues keep growing! (0, 1) A (2, 0) B (1, 1) B (0, 2) A (2, 1) B (1, 2) B (0, 3) Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 10 / 52

Balance Equations and Repetition Vectors 2 1 A 1 1 B Balance equations: For each channel: tokens produced = tokens consumed initial tokens don t matter for balance equations q A 2 = q B 1 // equation for channel A B q B 1 = q A 1 // equation for channel B A q A : number of times actor A fires Solution to balance equations is called repetition vector Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 11 / 52

Balance Equations and Repetition Vectors 2 1 A 1 1 B q A = 2q A q B = q A Only trivial solution (always exists): q A = q B = 0 SDF graph is called inconsistent Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 12 / 52

Balance Equations and Repetition Vectors Another example: 3 6 A 2 4 5 B 3q A = 6q B // equation for channel A B 2q A = 4q B // equation for channel B A Non-zero solution: q B = 1, q A = 2q B = 2 Any multiple is also a solution SDF graph is called consistent Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 13 / 52

Balance Equations and Repetition Vectors Another example: 3 6 A 2 4 5 B 3q A = 6q B // equation for channel A B 2q A = 4q B // equation for channel B A Non-zero solution: q B = 1, q A = 2q B = 2 Any multiple is also a solution SDF graph is called consistent Does consistency imply no deadlock? Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 13 / 52

Consistency vs. Deadlock Consistency absence of deadlock: 1 1 A 1 1 B Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 14 / 52

Consistency vs. Deadlock Consistency absence of deadlock: 1 1 A 1 1 B Absence of deadlock consistency: 2 1 A 1 1 B Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 14 / 52

SDF Consistency Can chain SDFGs be inconsistent? Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 15 / 52

SDF Consistency Can chain SDFGs be inconsistent? No. Can tree SDFGs be inconsistent? Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 15 / 52

SDF Consistency Can chain SDFGs be inconsistent? No. Can tree SDFGs be inconsistent? No. Can arbitrary DAGs be inconsistent? Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 15 / 52

SDF Consistency Can chain SDFGs be inconsistent? No. Can tree SDFGs be inconsistent? No. Can arbitrary DAGs be inconsistent? Yes: 2 1 A 1 1 B Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 15 / 52

Solving Balance Equations 1 1 2 1 A B C 2 1 Balance equations rewritten: let a = q A, b = q B, c = q C : in matrix form: a b = 0 2b c = 0 2a +c = 0 1 1 0 0 2 1 2 0 1 a b c = 0 Balance equations can be solved efficiently e.g., by Gaussian elimination Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 16 / 52

Checking for Deadlock Consistency absence of deadlocks: 1 1 A 1 1 B How to check whether a given SDF graph deadlocks? Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 17 / 52

Checking for Deadlock Consistency absence of deadlocks: 1 1 A 1 1 B How to check whether a given SDF graph deadlocks? 1. Check consistency: if consistent, compute non-zero repetition vector q 2. Simulate execution of SDFG, firing actors no more times than what q specifies ( termination) if manage to complete execution then no deadlock: periodic schedule has been found otherwise: SDFG deadlocks Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 17 / 52

Checking for Deadlock: Example 1 1 A 1 1 B 1. Graph consistent: q A = q B = 1 2. Simulate execution: from initial channel state (0, 0) no firing possible SDFG deadlocks Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 18 / 52

Checking for Deadlock: Another Example A 2 1 2 2 1 B 1. Graph consistent: q A = 1, q B = 2 2. Simulate execution (firing A at most once, B twice): (2, 0) B (1, 1) SDFG is deadlock-free schedule: (BBA) ω B (0, 2) A (2, 0) Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 19 / 52

Interesting Questions on Deadlock-Checking Algorithm Why is it enough to stop after one repetition vector? Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 20 / 52

Interesting Questions on Deadlock-Checking Algorithm Why is it enough to stop after one repetition vector? channel state after one repetition = initial channel state same execution can be repeated forever Does the order in which actors are fired during simulation matter? Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 20 / 52

Interesting Questions on Deadlock-Checking Algorithm Why is it enough to stop after one repetition vector? channel state after one repetition = initial channel state same execution can be repeated forever Does the order in which actors are fired during simulation matter? No. Deep result: c.f. Kahn Process Networks Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 20 / 52

KAHN PROCESS NETWORKS Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 21 / 52

Kahn Process Networks Can be seen as generalization of SDF although Kahn s work [Kahn, 1974] pre-dates SDF [Lee and Messerschmitt, 1987] by more than 10 years Kahn s motivation: distributed systems / parallel programming Main idea: generalize dataflow actors to Kahn processes Kahn process: an arbitrary sequential program reading from and writing to queues read is blocking (Kahn called it wait): if queue is empty, process blocks until queue becomes non-empty write is non-blocking (Kahn called it send): queues are a-priori unbounded as in SDF Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 22 / 52

Kahn Process Networks Can be seen as generalization of SDF although Kahn s work [Kahn, 1974] pre-dates SDF [Lee and Messerschmitt, 1987] by more than 10 years Kahn s motivation: distributed systems / parallel programming Main idea: generalize dataflow actors to Kahn processes Kahn process: an arbitrary sequential program reading from and writing to queues read is blocking (Kahn called it wait): if queue is empty, process blocks until queue becomes non-empty write is non-blocking (Kahn called it send): queues are a-priori unbounded as in SDF Highly recommended reading: [Kahn, 1974] (on bspace). Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 22 / 52

Kahn Process Network: Example Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 23 / 52

SDF Actors are a special case of Kahn Processes SDF actor: 2 A 3 Corresponding Kahn process: Process A(integer in U; integer out V); Begin integer I1, I2, R1, R2, R3; Repeat Begin I1 := wait(u); I2 := wait(u);... compute R1, R2, R3... send R1 on V; send R2 on V; send R3 on V; end; End; Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 24 / 52

Kahn Processes are more general than SDF actors In SDF, token production/consumption rates are static: 2 A 3 In Kahn processes, they are dynamic: Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 25 / 52

SDF Graphs are a special case of Kahn Process Networks Kahn process network: Begin Integer channel X; SDFG: A 1 1 2 B Process A(integer out V); Begin integer R1, R2, R;... compute initial tokens R1, R2... send R1 on V; send R2 on V; Repeat Begin... compute R... send R on V; end; End; Process B(integer in U);... End; /* main: */ A(X) par B(X) End; Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 26 / 52

Semantics of Kahn Process Networks We can give both operational and denotational semantics. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 27 / 52

Operational vs. Denotational Semantics What is the meaning of a (say, C) program? Operational semantics answer: the sequence of steps that the program takes to compute its output from its input Denotational semantics answer: a function f that returns the right output for a given input Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 28 / 52

Semantics of Kahn Process Networks Operational semantics: KPN defines a transition system (similar to the SDF semantics we defined above) global state = local states (local vars, program counters,...) of each process + contents of all queues transition: one process makes a move must define some kind of atomic moves for processes: for instance, one statement in the sequential program asynchronous (interleaving) semantics (c.f. Spin) Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 29 / 52

Semantics of Kahn Process Networks Operational semantics: KPN defines a transition system (similar to the SDF semantics we defined above) global state = local states (local vars, program counters,...) of each process + contents of all queues transition: one process makes a move must define some kind of atomic moves for processes: for instance, one statement in the sequential program asynchronous (interleaving) semantics (c.f. Spin) Denotational semantics: this is what we will focus on next. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 29 / 52

Denotational Semantics of Kahn Process Networks General idea: Each process = a function on streams An entire (closed) network = a (big) function on (vectors of) streams Semantics = the stream computed by the network at every queue Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 30 / 52

Denotational Semantics of Kahn Process Networks General idea: Each process = a function on streams An entire (closed) network = a (big) function on (vectors of) streams Semantics = the stream computed by the network at every queue Major benefits: Can handle feedback loops in an elegant manner: fixpoint theory Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 30 / 52

Denotational Semantics of Kahn Process Networks General idea: Each process = a function on streams An entire (closed) network = a (big) function on (vectors of) streams Semantics = the stream computed by the network at every queue Major benefits: Can handle feedback loops in an elegant manner: fixpoint theory Determinacy: network has a unique solution In terms of operational semantics: order of interleaving does not matter (as long as it is fair) Example: if one execution deadlocks, all executions deadlock Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 30 / 52

Streams Stream = a finite or infinite sequence of values. D: set of values D : set of all finite sequences of values from D D ω : set of all infinite sequences of values from D D = D D ω Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 31 / 52

Streams Stream = a finite or infinite sequence of values. D: set of values D : set of all finite sequences of values from D This includes the empty sequence ε D ω : set of all infinite sequences of values from D D = D D ω Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 31 / 52

Streams Stream = a finite or infinite sequence of values. D: set of values D : set of all finite sequences of values from D This includes the empty sequence ε D ω : set of all infinite sequences of values from D Note: D ω = D N = set of all total functions from N to D D = D D ω Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 31 / 52

Streams: Examples Let D = {0, 1}. Consider the streams: 0 D Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 32 / 52

Streams: Examples Let D = {0, 1}. Consider the streams: 0 D 00000 = 0 5 D Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 32 / 52

Streams: Examples Let D = {0, 1}. Consider the streams: 0 D 00000 = 0 5 D 010101 = (01) ω D ω Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 32 / 52

Streams: Examples Let D = {0, 1}. Consider the streams: 0 D 00000 = 0 5 D 010101 = (01) ω D ω 0100100010 4 10 5 1 D ω Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 32 / 52

Prefix Order on Streams Let s s denote stream concatenation: if s = ε, then s s = s (s could be infinite in this case) if s ε, then s must be finite (s could be finite or infinite) s 1 is a prefix of s 2, denoted s 1 s 2, iff s 3 : s 2 = s 1 s 3 Note that s 3 may be the empty string, in which case s 1 = s 2 so s s for any stream s Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 33 / 52

Prefix Order on Streams Let s s denote stream concatenation: if s = ε, then s s = s (s could be infinite in this case) if s ε, then s must be finite (s could be finite or infinite) s 1 is a prefix of s 2, denoted s 1 s 2, iff s 3 : s 2 = s 1 s 3 Note that s 3 may be the empty string, in which case s 1 = s 2 so s s for any stream s Examples: 000 0001 Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 33 / 52

Prefix Order on Streams Let s s denote stream concatenation: if s = ε, then s s = s (s could be infinite in this case) if s ε, then s must be finite (s could be finite or infinite) s 1 is a prefix of s 2, denoted s 1 s 2, iff s 3 : s 2 = s 1 s 3 Note that s 3 may be the empty string, in which case s 1 = s 2 so s s for any stream s Examples: 000 0001 000 0001 ω Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 33 / 52

Prefix Order on Streams Let s s denote stream concatenation: if s = ε, then s s = s (s could be infinite in this case) if s ε, then s must be finite (s could be finite or infinite) s 1 is a prefix of s 2, denoted s 1 s 2, iff s 3 : s 2 = s 1 s 3 Note that s 3 may be the empty string, in which case s 1 = s 2 so s s for any stream s Examples: 000 0001 000 0001 ω 000 0010 Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 33 / 52

Prefix Order on Streams Let s s denote stream concatenation: if s = ε, then s s = s (s could be infinite in this case) if s ε, then s must be finite (s could be finite or infinite) s 1 is a prefix of s 2, denoted s 1 s 2, iff s 3 : s 2 = s 1 s 3 Note that s 3 may be the empty string, in which case s 1 = s 2 so s s for any stream s Examples: 000 0001 000 0001 ω 000 0010 000 = 0 ω 10 ω = 1000 Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 33 / 52

Partial Orders Possible definitions of partial orders: is a partial order iff it is: reflexive : s : s s antisymmetric : s, s : s s s s s = s transitive : s, s, s : s s s s s s < is a partial order iff it is: irreflexive : s : s s transitive : s, s, s : s < s s < s s < s The definitions are equivalent in the sense that from we can get < and vice-versa. How? Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 34 / 52

Partial Orders Possible definitions of partial orders: is a partial order iff it is: reflexive : s : s s antisymmetric : s, s : s s s s s = s transitive : s, s, s : s s s s s s < is a partial order iff it is: irreflexive : s : s s transitive : s, s, s : s < s s < s s < s The definitions are equivalent in the sense that from we can get < and vice-versa. How? Given, define < := {(a, b) a b a b}. Given <, define := {(a, b) a < b a = b}. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 34 / 52

Prefix Order on Streams is a partial order on D, i.e., it is reflexive : s : s s antisymmetric : s, s : s s s s s = s transitive : s, s, s : s s s s s s Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 35 / 52

Prefix Order on Streams is a partial order on D, i.e., it is reflexive : s : s s antisymmetric : s, s : s s s s s = s transitive : s, s, s : s s s s s s The pair (D, ) is a poset (partially-ordered set). In fact, it is a CPO (a complete poset) because it also satisfies for any increasing chain s 0 s 1 s 2 : lim n s n is in D Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 35 / 52

Prefix Order on Streams is a partial order on D, i.e., it is reflexive : s : s s antisymmetric : s, s : s s s s s = s transitive : s, s, s : s s s s s s The pair (D, ) is a poset (partially-ordered set). In fact, it is a CPO (a complete poset) because it also satisfies for any increasing chain s 0 s 1 s 2 : lim n s n is in D It has a least element (which one is it?) such that s : s. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 35 / 52

Prefix Order on Streams is a partial order on D, i.e., it is reflexive : s : s s antisymmetric : s, s : s s s s s = s transitive : s, s, s : s s s s s s The pair (D, ) is a poset (partially-ordered set). In fact, it is a CPO (a complete poset) because it also satisfies for any increasing chain s 0 s 1 s 2 : lim n s n is in D It has a least element (which one is it?) such that s : s. = ε (the empty sequence) Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 35 / 52

Functions on Streams Function on streams (single-input / single-output): f : D D Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 36 / 52

Functions on Streams Function on streams (single-input / single-output): f : D D Function on streams (general): f : (D ) n (D ) m s 1. s n f s 1. s m Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 36 / 52

Kahn Processes = Functions on Streams s 1 s 1 s 1 s 1. P. = f P.. s n s m s n s m Basic idea: Fix the contents of input queues to s 1,..., s n. Let the process P run. Observe the contents of output queues: s 1,..., s m. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 37 / 52

Kahn Processes = Functions on Streams s 1 s 1 s 1 s 1. P. = f P.. s n s m s n s m Basic idea: Fix the contents of input queues to s 1,..., s n. Let the process P run. Observe the contents of output queues: s 1,..., s m. Notice that Kahn processes are deterministic programs. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 37 / 52

Monotonic Functions on Streams A stream function f : D D is monotonic (w.r.t. ) iff s, s D : s s f(s) f(s ) Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 38 / 52

Monotonic Functions on Streams A stream function f : D D is monotonic (w.r.t. ) iff s, s D : s s f(s) f(s ) Stream functions defined by Kahn processes are monotonic. Why? Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 38 / 52

Monotonic Functions on Streams A stream function f : D D is monotonic (w.r.t. ) iff s, s D : s s f(s) f(s ) Stream functions defined by Kahn processes are monotonic. Why? Once something is written to an output queue, it cannot be taken back. More inputs more outputs. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 38 / 52

Continuous Functions on Streams A stream function f : D D is continuous (w.r.t. ) if f is monotonic and for any increasing chain s 0 s 1 s 2 f( lim n s n) = lim n f(s n) Note: by monotonicity of f, and the fact that s 0 s 1 s 2 is a chain, f(s 0 ) f(s 1 ) f(s 2 ) is also a chain, so is well-defined. lim f(s n) n Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 39 / 52

Continuous Functions on Streams By definition continuity implies monotonicity. 2 But: monotonicity does not generally imply continuity. Quiz: Can you think of a non-monotonic stream function? a non-continuous stream function? a monotonic but non-continuous stream function? 2 Alternative definitions of continuity exist that imply monotonicity. See good textbook on order theory: [Davey and Priestley, 2002]. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 40 / 52

Continuous Functions on Streams Stream functions defined by Kahn processes are continuous. Quiz: Why? Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 41 / 52

Continuous Functions on Streams Stream functions defined by Kahn processes are continuous. Quiz: Why? Kahn processes cannot take forever to produce an output. Every output they produce must be produced because of the finite sequence of inputs the process has read so far. If for all finite sequences the process produces no outputs, then the process produces no outputs at all, even for the infinite sequence. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 41 / 52

Monotonic and Continuous Functions on Streams The notions of monotonicity and continuity extend to functions of arbitrary arity: f : (D ) n (D ) m Basic idea: Lift to vectors element-wise iff (s 1, s 2,..., s n ) (s 1, s 2,..., s n) s 1 s 1 s 2 s 2 s n s n Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 42 / 52

Fixpoint Theorem Theorem A continuous function f : (D ) n (D ) n has a least fixpoint s. Moreover, s = lim n f n (ε, ε,..., ε). Least fixpoint s means: s is a fixpoint: f(s) = s. s is a least fixpoint: for any other fixpoint s = f(s ), s s. Note: least implies s is unique. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 43 / 52

Fixpoint Theorem Theorem A continuous function f : (D ) n (D ) n has a least fixpoint s. Moreover, s = lim n f n (ε, ε,..., ε). Least fixpoint s means: s is a fixpoint: f(s) = s. s is a least fixpoint: for any other fixpoint s = f(s ), s s. Note: least implies s is unique. How is s related to the semantics of Kahn process networks? Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 43 / 52

From Process Network to Fixpoint Equations s 1 f 1 f 2 P 1 P 2 process network = s 2 fixpoint equations s 1 = f 1 (s 2 ) s 2 = f 2 (s 1 ) Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 44 / 52

From Process Network to Fixpoint Equations s 1 f 1 f 2 P 1 P 2 process network Can be rewritten as: = s 2 fixpoint equations s 1 = f 1 (s 2 ) s 2 = f 2 (s 1 ) (s 1, s 2 ) = f(s 1, s 2 ) where f : (D ) 2 (D ) 2 is defined as: f(s 1, s 2 ) = ( f 1 (s 2 ), f 2 (s 1 ) ) Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 44 / 52

Putting it all together The denotational semantics of the Kahn process network P 1 P 2 = f 1 f 2 s 1 s 2 is the unique least fixpoint (s 1, s 2 ) of the set of equations: s 1 = f 1 (s 2 ) s 2 = f 2 (s 1 ) Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 45 / 52

Example: denotational semantics of SDF graphs 1 1 A 1 1 B Viewing A and B as functions on streams of tokens: A(ε) = B(ε) = ε A( ) = B( ) = A( ) = B( ) = A( ) = B( ) = Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 46 / 52

Example: denotational semantics of SDF graphs 1 1 A 1 1 B Viewing A and B as functions on streams of tokens: A(ε) = B(ε) = ε A( ) = B( ) = A( ) = B( ) = A( ) = B( ) = Computing the fixpoint: f(ε, ε) = (A(ε), B(ε)) = (ε, ε) Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 46 / 52

Example: denotational semantics of SDF graphs A 2 1 2 2 1 B Viewing A as a function on streams of tokens (B is as before): A(ε) = // this captures initial tokens A( ) = A( ) = A( ) = A( ) = Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 47 / 52

Example: denotational semantics of SDF graphs A 2 1 2 2 1 B Viewing A as a function on streams of tokens (B is as before): A(ε) = // this captures initial tokens A( ) = A( ) = A( ) = A( ) = Computing the fixpoint: f(ε, ε) = (A(ε), B(ε)) = (, ε) f(, ε) = (A(ε), B( )) = (, ) f(, ) = (A( ), B( )) = (, )... fixpoint is ( ω, ω ). Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 47 / 52

Assessment Why get excited about Kahn process networks? Elegant mathematics (to compare, try to define formal operational semantics, or see papers that do that, e.g., [Lynch and Stark, 1989, Jonsson, 1994]) Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 48 / 52

Assessment Why get excited about Kahn process networks? Elegant mathematics Caveats: (to compare, try to define formal operational semantics, or see papers that do that, e.g., [Lynch and Stark, 1989, Jonsson, 1994]) Still need to relate denotational to some operational semantics, to convince ourselves that they are equivalent [Lynch and Stark, 1989, Jonsson, 1994]. Framework difficult to extend to non-deterministic processes c.f. famous Brock-Ackerman anomaly and related literature [Brock and Ackerman, 1981, Jonsson, 1994] Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 48 / 52

Assessment Why get excited about Kahn process networks? Foundations of asynchronous message-passing paradigm. Deterministic concurrency. Writing/debugging concurrent programs made easier. Contrast this to threads [Lee, 2006]. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 49 / 52

Assessment Why get excited about Kahn process networks? Foundations of asynchronous message-passing paradigm. Deterministic concurrency. Writing/debugging concurrent programs made easier. Contrast this to threads [Lee, 2006]. How is determinism achieved in Kahn Process Networks? No shared memory! Channels have unique writer/reader processes. Blocking read. No peeking into input queues allowed, no removing data already written into output queues, etc. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 49 / 52

Assessment Why get excited about Kahn process networks? Foundations of asynchronous message-passing paradigm. Deterministic concurrency. Writing/debugging concurrent programs made easier. Contrast this to threads [Lee, 2006]. How is determinism achieved in Kahn Process Networks? No shared memory! Channels have unique writer/reader processes. Blocking read. No peeking into input queues allowed, no removing data already written into output queues, etc. Criticism: KPN use infinite queues but these do not exist in reality. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 49 / 52

Assessment Why get excited about Kahn process networks? Foundations of asynchronous message-passing paradigm. Deterministic concurrency. Writing/debugging concurrent programs made easier. Contrast this to threads [Lee, 2006]. How is determinism achieved in Kahn Process Networks? No shared memory! Channels have unique writer/reader processes. Blocking read. No peeking into input queues allowed, no removing data already written into output queues, etc. Criticism: KPN use infinite queues but these do not exist in reality. Answer: finite queues can easily be modeled in KPN (also in SDF). How? Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 49 / 52

Modeling Finite Queues with Backward Channels P 1 1 1 queue of size k P 2 1 1 = P 1 P 2 1 k 1 Each time P 1 needs to write, it must first remove a token from the backward channel. If there are no tokens left then it means that the (forward) queue is full. Each time P 2 reads, it puts a token into the backward channel. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 50 / 52

Kahn Process Networks vs. Petri Nets [Ignore if you don t know what Petri nets are] Petri nets: More abstract model: processes = transitions. Non-deterministic: Each place can have many incoming / outgoing transitions. Each place may be shared by multiple producers / consumers. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 51 / 52

Bibliography Brock, J. and Ackerman, W. (1981). Scenarios: A model of non-determinate computation. In Proc. Intl. Colloq. on Formalization of Programming Concepts, pages 252 259, London, UK. Springer-Verlag. Davey, B. A. and Priestley, H. A. (2002). Introduction to Lattices and Order. Cambridge University Press, 2nd edition. Jonsson, B. (1994). Compositional specification and verification of distributed systems. ACM Trans. Program. Lang. Syst., 16(2):259 303. Kahn, G. (1974). The semantics of a simple language for parallel programming. In Information Processing 74, Proceedings of IFIP Congress 74. North-Holland. Lee, E. (2006). The problem with threads. IEEE Computer, 39(5):33 42. Lee, E. and Messerschmitt, D. (1987). Synchronous data flow. Proceedings of the IEEE, 75(9):1235 1245. Lynch, N. and Stark, E. (1989). A Proof of the Kahn Principle for Input/Output Automata. Information and Computation, 82:81 92. Stavros Tripakis: EECS 144/244 Dataflow SDF, Kahn Process Networks 52 / 52