TY - GEN
T1 - An Interactive Visual Tool for Code Optimization and Parallelization Based on the Polyhedral Model
AU - Papenhausen, Eric
AU - Mueller, Klaus
AU - Langston, M. Harper
AU - Meister, Benoit
AU - Lethin, Richard
N1 - Publisher Copyright:
© 2016 IEEE.
PY - 2016/9/23
Y1 - 2016/9/23
N2 - Writing high performance software requires the programmer to take advantage of multi-core processing. This can be done through tools like OpenMP, which allow the programmer to mark parallel loops. Identifying parallelizable loops, however, is a non-trivial task. Furthermore, transformations can be applied to a loop nest to expose parallelism. Polyhedral compilation has become an increasingly popular technique for exposing parallelism in computationally intensive loop nests. These techniques can simultaneously optimize for a number of performance parameters (i.e. parallelism, locality, etc). This is typically done using a cost model designed to give good performance in the general case. For some problems, the compiler may miss optimization opportunities or even produce a transformation that leads to worse performance. In these cases, the user has little recourse, since there are few options for the user to affect the transformation decisions. In this paper we present PUMA-V, a visualization interface that helps the user understand and affect the transformations made by R-Stream, an industrial strength optimizing compiler based on the polyhedral model. This tool visualizes performance heuristics and runtime performance statistics to help the user identify missed optimization opportunities. Changes to the transformed code can be made by directly manipulating the visualizations. We show an example where performance is greatly improved over the polyhedral model alone by using our tool.
AB - Writing high performance software requires the programmer to take advantage of multi-core processing. This can be done through tools like OpenMP, which allow the programmer to mark parallel loops. Identifying parallelizable loops, however, is a non-trivial task. Furthermore, transformations can be applied to a loop nest to expose parallelism. Polyhedral compilation has become an increasingly popular technique for exposing parallelism in computationally intensive loop nests. These techniques can simultaneously optimize for a number of performance parameters (i.e. parallelism, locality, etc). This is typically done using a cost model designed to give good performance in the general case. For some problems, the compiler may miss optimization opportunities or even produce a transformation that leads to worse performance. In these cases, the user has little recourse, since there are few options for the user to affect the transformation decisions. In this paper we present PUMA-V, a visualization interface that helps the user understand and affect the transformations made by R-Stream, an industrial strength optimizing compiler based on the polyhedral model. This tool visualizes performance heuristics and runtime performance statistics to help the user identify missed optimization opportunities. Changes to the transformed code can be made by directly manipulating the visualizations. We show an example where performance is greatly improved over the polyhedral model alone by using our tool.
KW - performance analysis
KW - polyhedral model
KW - source code optimization
KW - visualization
UR - https://www.scopus.com/pages/publications/84990996555
U2 - 10.1109/ICPPW.2016.52
DO - 10.1109/ICPPW.2016.52
M3 - Conference contribution
AN - SCOPUS:84990996555
T3 - Proceedings of the International Conference on Parallel Processing Workshops
SP - 309
EP - 318
BT - Proceedings - 45th International Conference on Parallel Processing Workshops, ICPPW 2016
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 45th International Conference on Parallel Processing Workshops, ICPPW 2016
Y2 - 16 August 2016 through 19 August 2016
ER -