Expressing pipeline parallelism using TBB constructs
Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE!'11, AOOPES'11, NEAT'11, & VMIL'11 - SPLASH '11 Workshops
https://doi.org/10.1145/2095050.2095074Abstract
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 applicationscontent-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.
References (19)
- Intel Threading Building Blocks. http://www. threadingbuildingblocks.org/.
- C. Bienia, S. Kumar, J. P. Singh, and K. Li. The parsec bench- mark suite: Characterization and architectural implications. Technical Report TR-811-08, Princeton University, January 2008.
- H.-J. Boehm. Threads Cannot Be Implemented As a Library. In PLDI '05.
- I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan. Brook for gpus: stream com- puting on graphics hardware. In SIGGRAPH '04.
- C. Campbell, R. Johnson, A. Miller, and S. Toub. Parallel Programming with Microsoft .NET. Microsoft Press, 2010.
- 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.
- H. Hoffman, A. Agarwal, and S. Devadas. Partitioning Strate- gies: Spatiotemporal Patterns of Program Decomposition. In ICPADS '10.
- U. J. Kapasi, S. Rixner, W. J. Dally, B. Khailany, J. H. Ahn, P. Mattson, and J. D. Owens. Programmable stream proces- sors. Computer, 36:54-62, August 2003.
- E. A. Lee. The Problem with Threads. Computer, 39:33-42, May 2006.
- D. Leijen, W. Schulte, and S. Burckhardt. The Design of a Task Parallel Library. In OOPSLA '09.
- 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.
- S. MacDonald, D. Szafron, and J. Schaeffer. Rethinking the Pipeline as Object-oriented States with Transformations. In HIPS '04.
- T. G. Mattson, B. A. Sanders, and B. L. Massingill. Pat- terns for Parallel Programming. Addison-Wesley Profes- sional, 2004.
- A. Navarro, R. Asenjo, S. Tabik, and C. Cascaval. Analytical Modeling of Pipeline Parallelism. In PACT '09.
- I. E. Richardson. The H.264 Advanced Video Compression Standard. Wiley, 2010.
- S. Rul, H. Vandierendonck, and K. De Bosschere. A profile- based tool for finding pipeline parallelism in sequential pro- grams. Parallel Comput., 36:531-551, September 2010.
- W. Thies and S. Amarasinghe. An empirical characterization of stream programs and its implications for language and compiler design. In PACT '10.
- W. Thies, V. Chandrasekhar, and S. Amarasinghe. A Practical Approach to Exploiting Coarse-Grained Pipeline Parallelism in C Programs. In MICRO '07, .
- W. Thies, M. Karczmarek, and S. P. Amarasinghe. StreamIt: A Language for Streaming Applications. In CC '02. Springer- Verlag, .