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

EC Reed, N Chen, RE Johnson - Proceedings of the compilation of the …, 2011 - dl.acm.org
EC Reed, N Chen, RE Johnson
Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11 …, 2011dl.acm.org
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 …
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.
ACM Digital Library