Expressing Pipeline Parallelism using TBB constructs

Task-based libraries such as Intel’s Threading Building Blocks (TBB) provide higher levels of abstraction than threads for parallel programming. Work remains, however, to determine how straightforward it is to use these libraries to express various patterns of parallelism. This case study focuses on a particular pattern: pipeline parallelism. We attempted to transform three representative applications – content-based image retrieval, compression and video encoding – to pipelines using TBB. We successfully converted two of the three applications. In the successful cases we discuss our transformation process and contrast the expressivity and performance of our implementations to existing Pthreads versions; in the unsuccessful case, we detail what the challenges were and propose potential solutions.

[1]  William Thies,et al.  StreamIt: A Language for Streaming Applications , 2002, CC.

[2]  Jonathan Schaeffer,et al.  Rethinking the pipeline as object-oriented states with transformations , 2004, Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings..

[3]  Sebastian Burckhardt,et al.  The design of a task parallel library , 2009, OOPSLA 2009.

[4]  William J. Dally,et al.  Programmable Stream Processors , 2003, Computer.

[5]  Edward A. Lee The problem with threads , 2006, Computer.

[6]  Timothy G. Mattson,et al.  Patterns for parallel programming , 2004 .

[7]  Zhe Wang,et al.  Ferret: a toolkit for content-based similarity search of feature-rich data , 2006, EuroSys.

[8]  Hans-Juergen Boehm,et al.  HP Laboratories , 2006 .

[9]  William Thies,et al.  A Practical Approach to Exploiting Coarse-Grained Pipeline Parallelism in C Programs , 2007, 40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007).

[10]  Srinivas Devadas,et al.  Partitioning strategies: Spatiotemporal patterns of program decomposition , 2009 .

[11]  Rafael Asenjo,et al.  Analytical Modeling of Pipeline Parallelism , 2009, 2009 18th International Conference on Parallel Architectures and Compilation Techniques.

[12]  Kai Li,et al.  The PARSEC benchmark suite: Characterization and architectural implications , 2008, 2008 International Conference on Parallel Architectures and Compilation Techniques (PACT).

[13]  Iain E. G. Richardson,et al.  The H.264 Advanced Video Compression Standard , 2010 .

[14]  William Thies,et al.  An empirical characterization of stream programs and its implications for language and compiler design , 2010, 2010 19th International Conference on Parallel Architectures and Compilation Techniques (PACT).

[15]  Pat Hanrahan,et al.  Brook for GPUs: stream computing on graphics hardware , 2004, SIGGRAPH 2004.