Treffer: Implement the Parallel Pipeline Design Pattern using Threads, TBB, and SYCL, A comparative study.

Title:
Implement the Parallel Pipeline Design Pattern using Threads, TBB, and SYCL, A comparative study.
Authors:
Rossainz-Lopez, Mario1 (AUTHOR) mrossainzl@gmail.com, Sánchez-Rinza, Bárbara1 (AUTHOR), Rosas-Lezama, Rodolfo1 (AUTHOR), Capel-Tuñón, Manuel2 (AUTHOR)
Source:
Procedia Computer Science. 2025, Vol. 274, p453-462. 10p.
Database:
Supplemental Index

Weitere Informationen

A parallel design pattern describes the common control structure shared by all algorithms that correspond to the same pattern, enabling programmers to easily obtain the parallel counterpart of an initially sequential problem with minimal effort. This work presents three possible implementations of the Pipeline design pattern: at the thread level with shared memory using modern C++, using Intel's TBB library for message-passing programming, and multi-core (host-device) programming using SYCL from Intel's OneAPI. The problem to be solved consists of parallelizing the summation of i , where 1 ≤ i ≤ N , and N is sufficiently large to allow a comparative performance analysis of the three proposed approaches. The calculation of the summation of i is an elementary problem from an algorithmic perspective; however, its reformulation in a pipeline-type parallel programming model allows us to analyze the division of work into functional stages with key aspects of parallelism: workload distribution across pipeline stages, synchronization and communication between neigh boring stages, and efficiency in shared and/or distributed memory. Our goal is to demonstrate that simple (computationally speaking) problems can benefit from the use of the programming models—threads, TBB, and SYCL—for designing a pipeline structure in order to evaluate fundamental principles of parallel and multicore programming. We aim to highlight the technical importance of applying the pipeline as an organized parallel structure that can be easily scaled to more complex problems. Source codes for the three implementation approaches are presented, along with a comparison of the scalability of each parallel implementation and an analysis of the speedup achieved compared to the sequential version of the problem, in order to identify the best pipeline implementation. [ABSTRACT FROM AUTHOR]