Language and Compiler Design for Streaming Applications

  • Saman Amarasinghe
  • Michael l. Gordon
  • Michal Karczmarek
  • Jasper Lin
  • David Maze
  • Rodric M. Rabbah
  • William Thies


High-performance streaming applications are a new and distinct domain of programs that is increasingly important. The StreamIt language provides novel high-level representations to improve programmer productivity and program robustness within the streaming domain. At the same time, the StreamIt compiler aims to improve the performance of streaming applications via stream-specific analysis and optimizations. In this paper, we motivate, describes and justify the StreamIt language which include a structured model of streams, a messaging system for control, and a natural textual syntax.


Stream computing StreamIt parallelizing compiler tiled-processor architectures productivity. 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    S. Rixner, W. Dally, U. Kapasi, P. Mattson, J. Owens, B. Khailany, and A. Lopez-Lagunas, A Bandwidth-Efficient Architecture for Media Processing, in Int. Symp. on Microarchitecture, pp. 3–13 (December 1998).Google Scholar
  2. 2.
    Abelson, H., Sussman, G. 1985Structure and Interpretation of Computer ProgramsMIT PressCambridge, MA.Google Scholar
  3. 3.
    Stephens, R. 1997A Survey of Stream ProcessingActa Informatica34491541URL Scholar
  4. 4.
    Mai K., Paaske T., Jayasena N., Ho R., Dally W., Horowitz M. (2000). Smart Memories: A Modular Recongurable ArchitectureGoogle Scholar
  5. 5.
    Waingold, E.,  et al. 1997Baring it all to Software: The Raw MachineMIT-LCS Technical Report 709Cambridge, MA.Google Scholar
  6. 6.
    K. Sankaralingam, R. Nagarajan, S. Keckler, and D. Burger, A Technology-Scalable Architecture for Fast Clocks and High ILP, UT Austin Tech Report 01-02 (2001).Google Scholar
  7. 7.
    Kohler, E., Morris, R., Chen, B., Jannotti, J., Kaashoek, M.F. 2000The Click Modular RouterACM Trans. Comput. Syst.18263197URL /tocs/2000-18-3/p26%3-kohler/Google Scholar
  8. 8.
    Tennenhouse D., Bose V. (1999). The Spectrum Ware Approach to Wireless Signal Processing, Wireless Netw.Google Scholar
  9. 9.
    V. Bose, M. Ismert, M. Welborn, and J. Guttag, Virtual Radios, IEEE/JSAC, Special Issue on Software Radios (April 1999).Google Scholar
  10. 10.
    B. Volume and B. July, Bluetooth Specification, Vol. 1, Bluetooth Consortium (July 1999).Google Scholar
  11. 11.
    M. Mouly and M. B. Pautet, The GSM System for Mobile Communications, Cell&Sys, Palaiseau, France (1992).Google Scholar
  12. 12.
    EIA/TIA, Mobile Station–Land Station Compatibility Spec., Technical Report 553, ANSI/EIA/TIA (1989).Google Scholar
  13. 13.
    Microsoft Corporation, Microsoft DirectShow, Online Documentation (2001).Google Scholar
  14. 14.
    RealNetworks, Software Developer’s Kit, Online Documentation (2001).Google Scholar
  15. 15.
    J. Lebak, Polymorphous Computing Architecture (PCA) Example Applications and Description, External Report, MIT Lincoln Laboratory (August 2001).Google Scholar
  16. 16.
    Thies, B., Karczmarek, M., Amarasinghe, S. August 2001StreamIt: A Language for Streaming ApplicationsMIT-LCS Technical Memo TM-620Cambridge, MA.Google Scholar
  17. 17.
    Thies, W., Karczmarek, M., Gordon, M., Maze, D., Wong, J., Hoffmann, H., Brown, M., Amarasinghe, S. December 2001StreamIt: A Compiler for Streaming ApplicationsTechnical Memo TM-622, MIT-LCSCambridge, MA.Google Scholar
  18. 18.
    V. Gay-Para, T. Graf, A.-G. Lemonnier, and E. Wais, Kopi Reference Manual, (2001).Google Scholar
  19. 19.
    M. I. Gordon et al., A Stream Compiler for Communication-Exposed Architectures, in Proc. of the 10th Int. Conf. on Architectural Support for Programming Languages and Operating Systems, San Jose, CA (October 2002), URL http: // Scholar
  20. 20.
    Lamb, A.A., Thies, W., Amarasinghe, S. June 2003Linear Analysis and Optimization of Stream ProgramsProc. of the SIGPLAN ’03 Conf. on Programming Language Design and ImplementationSan Diego, CAGoogle Scholar
  21. 21.
    Halbwachs, N., Caspi, P., Raymond, P., Pilaud, D. September 1991The synchronous data-flow programming language LUSTREProc. IEEE7913051320URL Scholar
  22. 22.
    Berry, G., Gonthier, G. 1992The Esterel Synchronous Programming Language: Design, Semantics, ImplementationScience of Computer Programming.1987152Google Scholar
  23. 23.
    Lee, E.A. March 2001Overview of the Ptolemy Project, UCB/ERL Technical Memorandum UCB/ERL M01/1, Dept. EECSUniversity of CaliforniaBerkeley, CA.Google Scholar
  24. 24.
    S. S. Bhattacharyya, P. K. Murthy, and E. A. Lee, Software Synthesis from Dataflow Graphs, Kluwer Academic Publishers (1996), URL, 189 pages.Google Scholar
  25. 25.
    Kapasi U.J., Mattson P., Dally W.J., Owens J.D., Towles B. (2001). Stream Scheduling, in Proc. of the 3rd Workshop on Media and Streaming Processors, pp. 101–106Google Scholar
  26. 26.
    S. Seneff, Speech transformation system (spectrum and/or excitation) without pitch extraction, Master’s thesis, Massachussetts Institute of Technology (1980).Google Scholar
  27. 27.
    3rd Generation Partnership Project, 3GPP TS 25.201, V3.3.0, Technical Specification (March 2002).Google Scholar

Copyright information

© Springer Science+Business Media, Inc. 2005

Authors and Affiliations

  • Saman Amarasinghe
    • 1
  • Michael l. Gordon
    • 1
  • Michal Karczmarek
    • 1
  • Jasper Lin
    • 1
  • David Maze
    • 1
  • Rodric M. Rabbah
    • 1
  • William Thies
    • 1
  1. 1.Computer Science and Artificial Intelligence LaboratoryMassachusetts Institute of TechnologyCambridgeUSA

Personalised recommendations