Constrained and phased scheduling of synchronous data flow graphs for StreamIt language

Applications that are structured around some notion of a "stream" are becoming increasingly important and widespread. There is evidence that streaming media applications are already consuming most of the cycles on consumer machines [20], and their use is continuing to grow. StreamIt is a language and compiler specifically designed for modern stream programming. Despite the prevalence of these applications, there is surprisingly little language and compiler for practical, large-scale stream programming. StreamIt is a language and compiler specifically designed for modern stream programming. The StreamIt langauge holds two goals: first, to provide high-level stream abstractions that improve programmer productivity and program robustness within the streaming domain; second, to serve as a common machine language for grid-based processors. At the same time, StreamIt compiler aims to perform stream-specific optimizations to achieve the performance of an expert programmer. This thesis develops several techniques for scheduling execution of Filters in StreamIt. The work focuses on correctness as well as minimizing buffering requirements and stored schedule size. Thesis Supervisor: Saman Amarasinghe Title: Associate Professor

[1]  Jean-Luc Gaudiot,et al.  The Sisal model of functional programming and its implementation , 1997, Proceedings of IEEE International Symposium on Parallel Algorithms Architecture Synthesis.

[2]  William J. Dally,et al.  Smart Memories: a modular reconfigurable architecture , 2000, ISCA '00.

[3]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[4]  Paul Le Guernic,et al.  SIGNAL: A declarative language for synchronous programming of real-time systems , 1987, FPCA.

[5]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[6]  William J. Dally,et al.  A bandwidth-efficient architecture for media processing , 1998, Proceedings. 31st Annual ACM/IEEE International Symposium on Microarchitecture.

[7]  Edward A. Lee,et al.  Looped schedules for dataflow descriptions of multirate signal processing algorithms , 1994, Formal Methods Syst. Des..

[8]  Robert Stephens,et al.  A survey of stream processing , 1997, Acta Informatica.

[9]  Peter Wayner,et al.  Smart memories , 1991 .

[10]  Steve Goddard,et al.  Analyzing the real-time properties of a U.S. Navy signal processing system , 1999, Proceedings 4th IEEE International Symposium on High-Assurance Systems Engineering.

[11]  Edward A. Lee,et al.  Synthesis of Embedded Software from Synchronous Dataflow Specifications , 1999, J. VLSI Signal Process..

[12]  Henry Hoffmann,et al.  StreamIt: A Compiler for Streaming Applications ⁄ , 2002 .

[13]  Nicolas Halbwachs,et al.  Data-Flow Synchronous Languages , 1993, REX School/Symposium.

[14]  Edward A. Lee,et al.  Overview of the Ptolemy project , 2001 .

[15]  Henry Hoffmann,et al.  A stream compiler for communication-exposed architectures , 2002, ASPLOS X.

[16]  Edward A. Lee,et al.  Software Synthesis from Dataflow Graphs , 1996 .

[17]  William Thies,et al.  StreamIt: A Language for Streaming Applications , 2002, CC.

[18]  Rudy Lauwereins,et al.  Cyclo-dynamic dataflow , 1996, Proceedings of 4th Euromicro Workshop on Parallel and Distributed Processing.

[19]  Shuvra S. Bhattacharyya Optimization Trade-offs in the Synthesis of Software for Embedded DSP , 1995 .

[20]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[21]  Vivek Sarkar,et al.  Baring it all to Software: The Raw Machine , 1997 .

[22]  Karthikeyan Sankaralingam,et al.  A Technology-Scalable Architecture for Fast Clocks and High ILP , 2001 .

[23]  Edward A. Lee,et al.  Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing , 1989, IEEE Transactions on Computers.

[24]  William Thies,et al.  Phased Computation Graphs in the Polyhedral Model , 2002 .

[25]  E.A. Lee,et al.  A comparison of synchronous and cycle-static dataflow , 1995, Conference Record of The Twenty-Ninth Asilomar Conference on Signals, Systems and Computers.

[26]  Guang R. Gao,et al.  Minimizing Buffer Requirements under Rate-Optimal Schedule in Regular Dataflow Networks , 2002, J. VLSI Signal Process..

[27]  BerryGérard,et al.  The ESTEREL synchronous programming language , 1992 .