StreamIt: A Language for Streaming Applications

  • William Thies
  • Michal Karczmarek
  • Saman Amarasinghe
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2304)


We characterize high-performance streaming applications as a new and distinct domain of programs that is becoming 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 analyses and optimizations. In this paper, we motivate, describe and justify the language features of StreamIt, which include: a structured model of streams, a messaging system for control, a re-initialization mechanism, and a natural textual syntax.


  1. 1.
    Rixner, S., et al: A Bandwidth-Efficient Architecture for Media Processing. In: HPCA, Dallas, TX (1998)Google Scholar
  2. 2.
    Abelson, H., Sussman, G.: Structure and Interpretation of Computer Programs. MIT Press, Cambridge, MA (1985)Google Scholar
  3. 3.
    Stephens, R.: A Survey of Stream Processing. Acta Informatica 34 (1997) 491–541MATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Mai, K., Paaske, T., Jayasena, N., Ho, R., Dally, W., Horowitz, M.: Smart memories: A modular recongurable architecture (2000)Google Scholar
  5. 5.
    Waingold, E., et al.: Baring it all to Software: The Raw Machine. MIT-LCS Technical Report 709, Cambridge, MA (1997)Google Scholar
  6. 6.
    Sankaralingam, K., Nagarajan, R., Keckler, S., Burger, D.: 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.: The click modular router. ACM Trans. on Computer Systems 18 (2000) 263–297CrossRefGoogle Scholar
  8. 8.
    Tennenhouse, D., Bose, V.: The SpectrumWare Approach to Wireless Signal Processing. Wireless Networks (1999)Google Scholar
  9. 9.
    Bose, V., Ismert, M., Welborn, M., Guttag, J.: Virtual radios. IEEE/JSAC, Special Issue on Software Radios (April 1999)Google Scholar
  10. 10.
    B. Volume and B. July: Bluetooth Spec. Vol. 1. Bluetooth Consortium (1999)Google Scholar
  11. 11.
    Mouly, M., Pautet, M.: The GSM System for Mobile Communications. Cell&Sys, Palaiseau, France (1992)Google Scholar
  12. 12.
    EIA/TIA: Mobile station-land station compatibility spec. Tech. Rep. 553 (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.
    Lebak, J.: Polymorphous Computing Architecture (PCA) Example Applications and Description. External Report, MIT Lincoln Laboratory (August 2001)Google Scholar
  16. 16.
    Gosling, Joy, Steele: The Java Language Specification. Addison Wesley (1997)Google Scholar
  17. 17.
    Thies, B., Karczmarek, M., Amarasinghe, S.: StreamIt: A Language for Streaming Applications. MIT-LCS Technical Memo TM-620, Cambridge, MA (August, 2001)Google Scholar
  18. 18.
    Thies, W., Karczmarek, M., Gordon, M., Maze, D., Wong, J., Hoffmann, H., Brown, M., Amarasinghe, S.: StreamIt: A Compiler for Streaming Applications. MIT-LCS Technical Memo TM-622, Cambridge, MA (December, 2001)Google Scholar
  19. 19.
    Cormen, T. H., Leiserson, C. E., Rivest, R. L.: Introduction to Algorithms. The MIT Electrical Engineering and Computer Science Series. MIT Press/ McGraw Hill (1990)Google Scholar
  20. 20.
    Vincent Gay-Para, Thomas Graf, A. G. L., Wais, E.: Kopi Reference manual. (2001)
  21. 21.
    Halbwachs, N., Caspi, P., Raymond, P., Pilaud, D.: The synchronous data-flow programming language LUSTRE. Proceedings of the IEEE 79 (1991) 1305–1320CrossRefGoogle Scholar
  22. 22.
    Berry, G., Gonthier, G.: The Esterel Synchronous Programming Language: Design, Semantics, Implementation. Science of Computer Programming 19 (1992) 87–152MATHCrossRefGoogle Scholar
  23. 23.
    Lee, E. A.: Overview of the Ptolemy Project. UCB/ERL Technical Memorandum UCB/ERL M01/11, Dept. EECS, University of California, Berkeley, CA (2001)Google Scholar
  24. 24.
    Bhattacharyya, S. S., Murthy, P. K., Lee, E. A.: Software Synthesis from Dataflow Graphs. Kluwer Academic Publishers (1996) 189 pages.Google Scholar
  25. 25.
    CCITT Recommendation Z.100: Specification and Description Language. ITU, Geneva (1992)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • William Thies
    • 1
  • Michal Karczmarek
    • 1
  • Saman Amarasinghe
    • 1
  1. 1.Laboratory for Computer ScienceMassachusetts Institute of TechnologyCambridge

Personalised recommendations