Dataflow Process Networks Lee & Parks Synchronous Dataflow Lee & Messerschmitt Abhijit Davare Nathan Kitchen.

Slides:



Advertisements
Similar presentations
Fakult ä t f ü r informatik informatik 12 technische universit ä t dortmund Data flow models Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra.
Advertisements

Concurrency: Mutual Exclusion and Synchronization Chapter 5.
PROTOCOL VERIFICATION & PROTOCOL VALIDATION. Protocol Verification Communication Protocols should be checked for correctness, robustness and performance,
IE 469 Manufacturing Systems
Requirements on the Execution of Kahn Process Networks Marc Geilen and Twan Basten 11 April 2003 /e.
DATAFLOW PROCESS NETWORKS Edward A. Lee Thomas M. Parks.
Synthesis of Embedded Software Using Free-Choice Petri Nets.
Synchronous Data Flow Presenter: Zohair Hyder Gang Zhou Synchronous Data Flow E. A. Lee and D. G. Messerschmitt Proc. of the IEEE, September, Joint.
Component Technologies for Embedded Systems Johan Eker.
A denotational framework for comparing models of computation Daniele Gasperini.
CSCI 8150 Advanced Computer Architecture Hwang, Chapter 2 Program and Network Properties 2.3 Program Flow Mechanisms.
Using Interfaces to Analyze Compositionality Haiyang Zheng and Rachel Zhou EE290N Class Project Presentation Dec. 10, 2004.
Scheduling for Embedded Real-Time Systems Amit Mahajan and Haibo.
Complexity Analysis (Part I)
Copyright © 2001 Stephen A. Edwards All rights reserved Dataflow Languages Prof. Stephen A. Edwards.
FunState – An Internal Design Representation for Codesign A model that enables representations of different types of system components. Mixture of functional.
An Extensible Type System for Component-Based Design
1 Quasi-Static Scheduling of Embedded Software Using Free-Choice Petri Nets Marco Sgroi, Alberto Sangiovanni-Vincentelli Luciano Lavagno University of.
Design of Fault Tolerant Data Flow in Ptolemy II Mark McKelvin EE290 N, Fall 2004 Final Project.
Models of Computation for Embedded System Design Alvise Bonivento.
A Denotational Semantics For Dataflow with Firing Edward A. Lee Jike Chong Wei Zheng Paper Discussion for.
State Machines Timing Computer Bus Computer Performance Instruction Set Architectures RISC / CISC Machines.
Heterochronous Dataflow in Ptolemy II Brian K. Vogel EE249 Project Presentation, Dec. 4, 1999.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
Real-Time Kernels and Operating Systems. Operating System: Software that coordinates multiple tasks in processor, including peripheral interfacing Types.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 8: February 11, 2009 Dataflow.
CSE S. Tanimoto Syntax and Types 1 Representation, Syntax, Paradigms, Types Representation Formal Syntax Paradigms Data Types Type Inference.
5 th Biennial Ptolemy Miniconference Berkeley, CA, May 9, 2003 JHDL Hardware Generation Mike Wirthlin and Matthew Koecher
CS294-6 Reconfigurable Computing Day 23 November 10, 1998 Stream Processing.
A. Frank - P. Weisberg Operating Systems Introduction to Cooperating Processes.
VLSI DSP 2008Y.T. Hwang3-1 Chapter 3 Algorithm Representation & Iteration Bound.
Joint Minimization of Code and Data for Synchronous Dataflow Programs Kaushik Ravindran EE 249 – Presentation.
Kathy Grimes. Signals Electrical Mechanical Acoustic Most real-world signals are Analog – they vary continuously over time Many Limitations with Analog.
Universität Dortmund  P. Marwedel, Univ. Dortmund, Informatik 12, 2003 Hardware/software partitioning  Functionality to be implemented in software.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology A Synthesis Algorithm for Modular Design of.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology High-level Specification and Efficient Implementation.
Precision Going back to constant prop, in what cases would we lose precision?
1 Testing Concurrent Programs Why Test?  Eliminate bugs?  Software Engineering vs Computer Science perspectives What properties are we testing for? 
Chapter 1 Algorithm Analysis
Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
S. M. Farhad PhD Student Supervisor: Dr. Bernhard Scholz
CMPE 511 DATA FLOW MACHINES Mustafa Emre ERKOÇ 11/12/2003.
Voicu Groza, 2008 SITE, HARDWARE/SOFTWARE CODESIGN OF EMBEDDED SYSTEMS Hardware/Software Codesign of Embedded Systems Voicu Groza SITE Hall, Room.
High Performance Architectures Dataflow Part 3. 2 Dataflow Processors Recall from Basic Processor Pipelining: Hazards limit performance  Structural hazards.
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
1 - CPRE 583 (Reconfigurable Computing): Compute Models Iowa State University (Ames) CPRE 583 Reconfigurable Computing Lecture 7: Wed 10/28/2009 (Compute.
C. André, J. Boucaron, A. Coadou, J. DeAntoni,
MEMORY ORGANIZTION & ADDRESSING Presented by: Bshara Choufany.
Conformance Test Experiments for Distributed Real-Time Systems Rachel Cardell-Oliver Complex Systems Group Department of Computer Science & Software Engineering.
Transactional Coherence and Consistency Presenters: Muhammad Mohsin Butt. (g ) Coe-502 paper presentation 2.
Processor Architecture
Gedae, Inc. Gedae: Auto Coding to a Virtual Machine Authors: William I. Lundgren, Kerry B. Barnes, James W. Steed HPEC 2004.
CSCI1600: Embedded and Real Time Software Lecture 11: Modeling IV: Concurrency Steven Reiss, Fall 2015.
Actor Oriented Programming with CAL -designing embedded system components Johan Eker Department of Automatic Control, Lund University Chris Chang, Jörn.
Royal Institute of Technology System Specification Fundamentals Axel Jantsch, Royal Institute of Technology Stockholm, Sweden.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 3: Embedded Computing High Performance Embedded Computing Wayne Wolf.
March 4, 2008http://csg.csail.mit.edu/arvindDF3-1 Dynamic Dataflow Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology.
High Performance Embedded Computing © 2007 Elsevier Lecture 4: Models of Computation Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte.
1 5-High-Performance Embedded Systems using Concurrent Process (cont.)
Autumn 2006CSE P548 - Dataflow Machines1 Von Neumann Execution Model Fetch: send PC to memory transfer instruction from memory to CPU increment PC Decode.
Prof. Onur Mutlu Carnegie Mellon University
2. Specification and Modeling
ESE532: System-on-a-Chip Architecture
Background and Motivation
ESE535: Electronic Design Automation
Deadlock Detection for Distributed Process Networks
Well-behaved Dataflow Graphs
Samira Khan University of Virginia Jan 23, 2019
Advanced Computer Architecture Dataflow Processing
Prof. Onur Mutlu Carnegie Mellon University
Presentation transcript:

Dataflow Process Networks Lee & Parks Synchronous Dataflow Lee & Messerschmitt Abhijit Davare Nathan Kitchen

Dataflow Data oriented Host Language  Java, C/C++ Coordination language  SDF, Cyclo-static Dataflow

Kahn Process Networks Dataflow process networks are a special case of Kahn process networks. P2P2 a, b, cA, B, C unbounded channels P1P1 P3P3

Properties of Kahn Processes The processes that we deal with are usually:  Continuous  Monotonic Which means that we can realistically compute them.

Continuous Processes Formally: Practically:  A continuous process will not wait for the end of an infinite input stream before producing an output.

Monotonic Processes Adding to the input does not change the output already produced. All continuous processes are monotonic. monotonicnot monotonic P 1, 2, 32, 4, 6 P 1, 22, 4 P 1, 2, 34, 2, 6 P 1, 22, 4

Computing Continuous Processes Continuity means:  We can start producing the output stream before we have received all the input.  We can process an infinite stream with finite resources.  Networks of processes are determinate.

Nondeterminism Pros:  Compact system definition  Incomplete specification OK Cons:  Loss of continuity  Analysis more difficult

Nondeterminism (2) Nondeterminism can be added to KPN by:  Processes can test for empty channels  Internal Nondeterminism  Channel has multiple sources  Channel has multiple sinks  Processes have shared variables rand() x+=2 x=0 empty?

Streams Most relevant in real-time signal processing Recursively defined or Channel oriented Be good at losing data, recycling memory, and storing data. Recursive CampChannel Camp

Dataflow Processes When a dataflow actor fires, it consumes inputs and produces outputs. We get a dataflow process by repeatedly firing an actor

Firing Rules for Actors Dataflow processes are continuous if:  Each actor firing is functional (i.e., the outputs depend only on the inputs).  The firing rules are sequential. A firing rule is a set of patterns that the inputs have to match.

Examples of Firing Rules At least one token on each input:  R 1 = { [*], [*] } The select channel chooses an input channel to take a token from:  R 1 = { [*], , [T] }  R 2 = { , [*], [F] } + [*] F T

Firing Rules in SDF A synchronous dataflow actor has a single firing rule containing only wildcards—it is enabled by a fixed number of tokens. down sample 41 R = { [*, *, *, *] }

Firing Rules with a Problem At least one token on either input: R 1 = { [*,  ] }, R 2 = { [ , *] } Which rule should be checked first? If we check with a blocking read, we will deadlock. These rules are not sequential. merge

Sequential Firing Rules If we can avoid deadlock by checking rules in the right order, the rules are sequential. Example: the select actor  R 1 = { [*], , [T] }  R 2 = { , [*], [F] } We read the third input first, then we know which other input to read.

Implications of Sequentiality All sequential processes are continuous, therefore determinate. Networks of functional actors with sequential firing rules can be scheduled; we do not have to synchronize processes using blocking reads.

Execution models For Dataflow Process Networks, execution independent of scheduling 1. Concurrent Processes 2. Dynamic Scheduling 3. Static Scheduling

B Concurrent Processes C B A

B C B A hungry

B Concurrent Processes C B A hungry suspended hungry

B Concurrent Processes C B A hungry suspended hungry suspended hungry enabled

Concurrent Processes(2) Large overhead of context switching In general, increasing process granularity decreases relative overhead

Dynamic Scheduling Data dependencies can make static scheduling impossible In particular, dynamic scheduling is necessary when number of input and output tokens for each actor cannot be defined a priori Can be done in hardware or software Actors activated when inputs available

Static Scheduling Must have number of input & output tokens predetermined for all actors Best schedule chosen among several based on objective (e.g. minimum buffer size, minimum code size) Used for:  Code generation by code stitching  HW synthesis

Formalism for Static Scheduling Rank: Number of linearly independent vectors

Formalism for Static Scheduling Rank: Number of linearly independent vectors Full rank No periodic solution

Formalism for Static Scheduling Rank: Number of linearly independent vectors

Correctness of SDF graphs 12 3 A BC

12 3 A BC

12 3 A BC

Delays On startup, need to make sure that arcs have enough tokens to activate nodes b(i) represents number of tokens in buffer i b(n+1) = b(n) + T v(n) b(0) affects which startup options are legal

Single Processor Static Scheduling Class S algorithms:  Given a firing vector (q) and the initial number of tokens in each buffer  Select each runnable node and update b(n) iteratively  List of these selected nodes forms schedule  If schedule cannot be met, deadlock has occurred

Parallel Processor Static Scheduling Exploit concurrency to increase throughput In this example, nodes 1 and 3 can be scheduled at the same time on different processors Periodic Admissible Schedules: {1,3,1,2} {3,1,1,2} {1,1,3,2}

Static Buffering Minimize execution time by having memory locations embedded as constants in the code, not variables iq = KN Where  i = Number of tokens emitted per firing  q = Number of firings in one period  N = Size of buffer  K = an integer

Functional Behavior & Hierarchy Dataflow Process Networks allow hierarchy Functionality may be present at the higher level Delay, internal state, and unbalanced subsystems can cause nodes to be non-functional

Dataflow and Functional Languages Actors correspond to first-order functions: Processes are higher-order functions (they take functions as arguments): Process F results from applying first-order function f to a stream that starts with R and continues with X.

Language Features Recursion  Iteration  Carrying state Polymorphism Parallelism

Recursion Not needed in dataflow to carry state (we have feedback loops) Can be used with high-order functions for compact models (e.g., FFT)  Expensive unless unrolled at setup time

Polymorphism Tokens can have arbitrary type  Arrays as sequence of tokens  Arrays as single tokens In Ptolemy  One actor can operate on several types add doubles add ints (without converting to doubles)

Parallelism Functional languages  Explicit  Thwarted by recursion  Use higher-order functions for parallelism instead Dataflow  Implicit  Use higher-order functions as syntactic sugar Unrolled at setup time Still parallel!

Credits Sean Connery as James Bond: BONDLIT1.HTMhttp:// BONDLIT1.HTM Screen Beans © 1995, 1996, 1997, 1998, 1999, 2000 A Bit Better Corporation Screen Beans is a registered trademark of A Bit Better Corporation. Figures from “Dataflow Process Networks,” Lee & Parks, Proc. IEEE, May 1995, and “Synchronous Data Flow,” Lee & Messerschmitt, Proc. IEEE, Sep All episodes are filmed before a live studio audience. No animals were harmed during the production of this presentation.

Tagged Token Model Tokens have tags + values Out of order execution  Channels are not FIFO  Actors fire when input tags match Graph would deadlock as dataflow More expressive Limited value