Architectures, Languages, and Compilers for the Streaming Domain

PACT 2003 Tutorial

Saman P. AmarasingheBill Thies; MIT

The streaming application class is becoming increasinly important and widespread. Encompassing programs for embedded signal processing, sensor networks, intelligent software routers, high-performance graphics and image processing, the streaming domain offers a fresh set of challenges for architects, language designers, and compiler writers. Unlike the scientific domain, stream programs are characterized by abundant parallelism, regular communication patterns, and short data lifetimes, all of which can be exploited to improve programmability and performance.

In this tutorial, we describe recent advances in programming language and architectural support for stream programs. We focus on lessons learned in the development of StreamIt, a language and compiler for high-performance streaming applications. Topics include:


Acknowledgements

Many people contributed slides for the tutorial, largely from their presentations at the 2003 Workshop on Streaming Systems:

Links

The following is an initial (and very incomplete!) set of links to resources on stream processing. If you have a link you would like us to add, we would love to hear from you -- please send mail to streamit@cag.lcs.mit.edu.