| | |
Summary: Exploiting Coarse-Grained Task, Data,
and Pipeline Parallelism in Stream Programs
Michael I. Gordon, William Thies, and Saman Amarasinghe
Massachusetts Institute of Technology
Computer Science and Artificial Intelligence Laboratory
{mgordon, thies, saman}@mit.edu
Abstract
As multicore architectures enter the mainstream, there is a press-
ing demand for high-level programming models that can effectively
map to them. Stream programming offers an attractive way to ex-
pose coarse-grained parallelism, as streaming applications (image,
video, DSP, etc.) are naturally represented by independent filters
that communicate over explicit data channels.
In this paper, we demonstrate an end-to-end stream compiler
that attains robust multicore performance in the face of varying ap-
plication characteristics. As benchmarks exhibit different amounts
of task, data, and pipeline parallelism, we exploit all types of par-
allelism in a unified manner in order to achieve this generality. Our
compiler, which maps from the StreamIt language to the 16-core
Raw architecture, attains a 11.2x mean speedup over a single-core
|