Task-based libraries, such as Intel's Threading Building Blocks (TBB), are promising tools that help programmers to develop parallel code in a productive way, thanks to high-level constructors which simplify the chore of efficiently exploiting system resources. In this paper we focus on one type of task parallelism, pipeline parallelism, which is becoming an increasingly popular parallel programming pattern for streaming applications in the domain of digital signal processing, graphics, compression and encryption. Specifically, TBB provides a high-level template to express pipeline parallelism, but it is limited to representing simple pipeline structures. We address the issue of non-trivial parallel pipeline structures in which one or more stages in the pipeline have more items leaving than arriving, a problem for which the current TBB pipeline template does not provide support. In this work, we describe a new Multioutput filter that we have incorporated into the TBB pipeline framework to deal with these multioutput stages. Using real world streaming applications from different computational domains (dedup and scenerecog), we also compare the performance of our implementation using the Multioutput filter in the TBB pipeline template to other more complex TBB task-based implementations that only use the standard filters. We also develop new analytical models for each implementation to better understand the resources utilization in each case. Performance evaluation and analysis shows that the implementation based on the Multioutput filter outperforms the other solutions because: it promotes finer task parallelism, which is more suited to the TBB task-stealing mechanism in order to better exploit the resources; and it also reduces the overheads related to memory and task management. (C) 2014 Elsevier B.V. All rights reserved.
机构:
Western Univ, Western Inst Neurosci, London, ON, Canada
Western Univ, Dept Psychol, London, ON, Canada
Western Univ, Schulich Sch Med & Dent, Grad Program Neurosci, London, ON, CanadaUniv Utah, Dept Neurol, Salt Lake City, UT 84132 USA
Kolisnyk, M.
Novi, S.
论文数: 0引用数: 0
h-index: 0
机构:
Western Univ, Western Inst Neurosci, London, ON, Canada
Western Univ, Dept Physiol & Pharmacol, London, ON, CanadaUniv Utah, Dept Neurol, Salt Lake City, UT 84132 USA
Novi, S.
Kazazian, K.
论文数: 0引用数: 0
h-index: 0
机构:
Western Univ, Western Inst Neurosci, London, ON, CanadaUniv Utah, Dept Neurol, Salt Lake City, UT 84132 USA
Kazazian, K.
Ardakani, M.
论文数: 0引用数: 0
h-index: 0
机构:
Western Univ, Western Inst Neurosci, London, ON, CanadaUniv Utah, Dept Neurol, Salt Lake City, UT 84132 USA
Ardakani, M.
Abdalmalak, A.
论文数: 0引用数: 0
h-index: 0
机构:
Western Univ, Western Inst Neurosci, London, ON, Canada
Western Univ, Dept Physiol & Pharmacol, London, ON, CanadaUniv Utah, Dept Neurol, Salt Lake City, UT 84132 USA
Abdalmalak, A.
Debicki, D.
论文数: 0引用数: 0
h-index: 0
机构:
Western Univ, Western Inst Neurosci, London, ON, Canada
London Hlth Sci Ctr, Clin Neurol Sci, London, ON, CanadaUniv Utah, Dept Neurol, Salt Lake City, UT 84132 USA
Debicki, D.
Gofton, T.
论文数: 0引用数: 0
h-index: 0
机构:
Western Univ, Western Inst Neurosci, London, ON, Canada
London Hlth Sci Ctr, Clin Neurol Sci, London, ON, CanadaUniv Utah, Dept Neurol, Salt Lake City, UT 84132 USA
Gofton, T.
Owen, A. M.
论文数: 0引用数: 0
h-index: 0
机构:
Western Univ, Western Inst Neurosci, London, ON, Canada
Western Univ, Dept Physiol & Pharmacol, London, ON, CanadaUniv Utah, Dept Neurol, Salt Lake City, UT 84132 USA