Towards automatic parallelization of stream processing applications

Research Projects
Organizational Units
Journal Issue
Parallelizing and optimizing codes for recent multi-/many-core processors have been recognized to be a complex task. For this reason, strategies to automatically transform sequential codes into parallel and discover optimization opportunities are crucial to relieve the burden to developers. In this paper, we present a compile-time framework to (semi) automatically find parallel patterns (Pipeline and Farm) and transform sequential streaming applications into parallel using GrPPI, a generic parallel pattern interface. This framework uses a novel pipeline stage-balancing technique which provides the code generator module with the necessary information to produce balanced pipelines. The evaluation, using a synthetic video benchmark and a real-world computer vision application, demonstrates that the presented framework is capable of producing parallel and optimized versions of the application. A comparison study under several thread-core oversubscribed conditions reveals that the framework can bring comparable performance results with respect to the Intel TBB programming framework.
Refactoring framework, Automatic parallelization, Load-balanced pipeline, Parallel patterns
Bibliographic citation
M. F. Dolz, D. Del Rio Astorga, J. Fernández, J. D. García and J. Carretero, "Towards Automatic Parallelization of Stream Processing Applications" in IEEE Access, vol. 6, pp. 39944-39961, 2018, doi: 10.1109/ACCESS.2018.2855064