skip to main content
10.1145/2095050.2095074acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Expressing pipeline parallelism using TBB constructs: a case study on what works and what doesn't

Published: 23 October 2011 Publication History

Abstract

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 pipeline applications - content-based image retrieval, compression and video encoding - to use the pipeline constructs in 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 possible solutions.

References

[1]
Intel Threading Building Blocks. http://www.threadingbuildingblocks.org/.
[2]
TPL Dataflow. http://msdn.microsoft.com/en-us/devlabs/gg585582.
[3]
x264. http://www.videolan.org/developers/x264.html.
[4]
C. Bienia, S. Kumar, J. P. Singh, and K. Li. The parsec benchmark suite: Characterization and architectural implications. Technical Report TR-811-08, Princeton University, January 2008.
[5]
I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan. Brook for gpus: stream computing on graphics hardware. In SIGGRAPH '04.
[6]
A. J. Dios, R. Asenjo, A. Navarro, F. Corbera, and E. L. Zapata. Wavefront template implementation based on the task programming model. Technical report, University of Malaga, 2011.
[7]
H. Hoffman, A. Agarwal, and S. Devadas. Partitioning Strategies: Spatiotemporal Patterns of Program Decomposition. In ICPADS '10.
[8]
U. J. Kapasi, S. Rixner, W. J. Dally, B. Khailany, J. H. Ahn, P. Mattson, and J. D. Owens. Programmable stream processors. Computer, 36: 54--62, August 2003.
[9]
E. A. Lee. The Problem with Threads. Computer, 39: 33--42, May 2006.
[10]
D. Leijen, W. Schulte, and S. Burckhardt. The Design of a Task Parallel Library. In OOPSLA '09.
[11]
Q. Lv, W. Josephson, Z. Wang, M. Charikar, and K. Li. Ferret: a toolkit for content-based similarity search of feature-rich data. In EuroSys '06.
[12]
S. MacDonald, D. Szafron, and J. Schaeffer. Rethinking the Pipeline as Object-oriented States with Transformations. In HIPS '04.
[13]
T. G. Mattson, B. A. Sanders, and B. L. Massingill. Patterns for Parallel Programming. Addison-Wesley Professional, 2004.
[14]
A. Navarro, R. Asenjo, S. Tabik, and C. Cascaval. Analytical Modeling of Pipeline Parallelism. In PACT '09.
[15]
I. E. Richardson. The H.264 Advanced Video Compression Standard. Wiley, 2010.
[16]
S. Rul, H. Vandierendonck, and K. De Bosschere. A profile-based tool for finding pipeline parallelism in sequential programs. Parallel Comput., 36: 531--551, September 2010.
[17]
W. Thies and S. Amarasinghe. An empirical characterization of stream programs and its implications for language and compiler design. In PACT '10.
[18]
W. Thies, V. Chandrasekhar, and S. Amarasinghe. A Practical Approach to Exploiting Coarse-Grained Pipeline Parallelism in C Programs. In MICRO '07.
[19]
W. Thies, M. Karczmarek, and S. P. Amarasinghe. StreamIt: A Language for Streaming Applications. In CC '02. Springer-Verlag.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SPLASH '11 Workshops: Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE! 2011, AOOPES'11, NEAT'11, & VMIL'11
October 2011
358 pages
ISBN:9781450311830
DOI:10.1145/2095050
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 23 October 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. pattern
  2. pipeline parallelism
  3. pthreads
  4. threading building blocks

Qualifiers

  • Research-article

Conference

SPLASH '11
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)1
Reflects downloads up to 20 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media