English

Polly's Polyhedral Scheduling in the Presence of Reductions

Programming Languages 2015-05-29 v1 Distributed, Parallel, and Cluster Computing

Abstract

The polyhedral model provides a powerful mathematical abstraction to enable effective optimization of loop nests with respect to a given optimization goal, e.g., exploiting parallelism. Unexploited reduction properties are a frequent reason for polyhedral optimizers to assume parallelism prohibiting dependences. To our knowledge, no polyhedral loop optimizer available in any production compiler provides support for reductions. In this paper, we show that leveraging the parallelism of reductions can lead to a significant performance increase. We give a precise, dependence based, definition of reductions and discuss ways to extend polyhedral optimization to exploit the associativity and commutativity of reduction computations. We have implemented a reduction-enabled scheduling approach in the Polly polyhedral optimizer and evaluate it on the standard Polybench 3.2 benchmark suite. We were able to detect and model all 52 arithmetic reductions and achieve speedups up to 2.21×\times on a quad core machine by exploiting the multidimensional reduction in the BiCG benchmark.

Keywords

Cite

@article{arxiv.1505.07716,
  title  = {Polly's Polyhedral Scheduling in the Presence of Reductions},
  author = {Johannes Doerfert and Kevin Streit and Sebastian Hack and Zino Benaissa},
  journal= {arXiv preprint arXiv:1505.07716},
  year   = {2015}
}

Comments

Presented at the IMPACT15 workshop