Towards Automatic Parallelization of Stream Processing Applications Articles uri icon

publication date

  • January 2018

start page

  • 39944

end page

  • 39961

volume

  • 6

International Standard Serial Number (ISSN)

  • 2169-3536

abstract

  • 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.

keywords

  • refactoring framework; automatic parallelization; load-balanced pipeline; parallel patterns