StreamIt: A Language for Streaming Applications
By William Thies, Michal Karczmarek, Saman P. Amarasinghe. International Conference on Compiler Construction, 2002
1,318 citations recorded by the source corpus.
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.
Subfields: Hardware and Architecture
View Paper: https://www.semanticscholar.org/paper/553fdbe4c82296cc0a2db2731f252fbb434fe22d
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Hardware and Architecture
- Armando Solar-Lezama
- Rastislav Bodík
- Saman P. Amarasinghe
- Jason Ansel
- Marek Olszewski
- Luis Ceze
- Andrew Adams
- Jonathan Ragan-Kelley
Citations in the corpus
- Dandelion: a compiler and runtime for heterogeneous systems (2013, background): “StreamIt [93] and DirectShow [67] support graph-based parallelism.”
- Program synthesis by sketching (2008, background): “StreamIt [64] which can produce very e cient signal processing kernels from a high-level speci cation.”
- Combinatorial sketching for finite programs (2006, background): “(4) Sketching was embedded into a dataflow programming language [14].”
- Merge: a programming model for heterogeneous multi-core systems (2008, methodology): “Direct approaches, such as the DSVMs cited previously or streaming languages (4; 30; 15; 20; 24), map the application directly to the accelerator ISA or API, while library-based approaches, such as the Merge framework, Sequoia, and MATCH (23), map the application to a library of function-intrinsics ”
- Frenetic: a network programming language (2011, background): “At a high level, Frenetic is also similar to streaming languages such as StreamIt [39], CQL [7], Esterel [8], Brooklet [38], etc.”
- Halide: a language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines (2013, methodology): “Graph-structured programs have been studied in the context of streaming languages [4, 11, 29].”
- Piccolo: Building Fast, Distributed Programs with Partitioned Tables (2010, background): “Although there are also popular streaming/data-flow models [44, 47, 12], most parallel models for a single machine are based on shared-memory.”
- Kendo: efficient deterministic multithreading in software (2009, methodology): “Unfortunately, StreamIt s design choice limits it to a speci.c class of applications that can use streaming semantics.”
- Programming by sketching for bit-streaming programs (2005, background): “This specification, called the reference program, is written in the StreamIt dataflow language [15], and is nothing more than a clean, unoptimized program describing the task at the level of bits (rather than at the level of words).”
- A stream compiler for communication-exposed architectures (2002, methodology): “A more detailed description of the design and rationale for StreamIt can be found in [31], which describes version l DataSource } 4, / {duplicate splitter~ [ FIR~ilter ] /”
- DMP: deterministic shared memory multiprocessing (2009, methodology): “StreamIt: A Language for Streaming Applications.”