An Interactive Tool based on Polly for Detection and Parallelization of Loops

  • Authors:
  • Diana Göhringer;Jan Tepelmann

  • Affiliations:
  • Ruhr-University Bochum (RUB), Germany and Karlsruhe Institute of Technology (KIT), Germany;Karlsruhe Institute of Technology (KIT), Germany

  • Venue:
  • Proceedings of Workshop on Parallel Programming and Run-Time Management Techniques for Many-core Architectures and Design Tools and Architectures for Multicore Embedded Computing Platforms
  • Year:
  • 2014

Quantified Score

Hi-index 0.00

Visualization

Abstract

In many applications, such as signal and image processing, most computation time is spent within loops. Therefore, these loops are ideal candidates for performance increase when moving to parallel architectures, such as multi- or many-core systems. However, manual parallelization of existing applications is a complex and cumbersome task. To leverage this, we introduce in this paper an interactive tool based on Polly, LLVM and the linux perf tools. With the help of our tool compute intensive loops can be found and parallelized. Polly is a polyhedral optimizer for LLVM. In the polyhedral model, loops are described in an abstract mathematical way and loop optimizations are mathematical transformations on this abstract description. Loops must meet specific requirements to be representable in the polyhedral model. If only one requirement is not satisfied, the loop cannot be optimized with Polly. Our tool can help here by showing the user all the problems which prevent an automatic optimization with Polly. Such an optimization is only worthwhile for compute intensive loops. To find such loops our tool uses the linux perf tools for performance profiling. Evaluation results for the following two applications are presented: Tiff2rgba and 2D Cross-Correlation image processing algorithm.