A multi-objective auto-tuning framework for parallel codes

  • Authors:
  • Herbert Jordan;Peter Thoman;Juan J. Durillo;Simone Pellegrini;Philipp Gschwandtner;Thomas Fahringer;Hans Moritsch

  • Affiliations:
  • University of Innsbruck, Innsbruck, Austria;University of Innsbruck, Innsbruck, Austria;University of Innsbruck, Innsbruck, Austria;University of Innsbruck, Innsbruck, Austria;University of Innsbruck, Innsbruck, Austria;University of Innsbruck, Innsbruck, Austria;University of Innsbruck, Innsbruck, Austria

  • Venue:
  • SC '12 Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper we introduce a multi-objective auto-tuning framework comprising compiler and runtime components. Focusing on individual code regions, our compiler uses a novel search technique to compute a set of optimal solutions, which are encoded into a multi-versioned executable. This enables the runtime system to choose specifically tuned code versions when dynamically adjusting to changing circumstances. We demonstrate our method by tuning loop tiling in cache-sensitive parallel programs, optimizing for both runtime and efficiency. Our static optimizer finds solutions matching or surpassing those determined by exhaustively sampling the search space on a regular grid, while using less than 4% of the computational effort on average. Additionally, we show that parallelism-aware multi-versioning approaches like our own gain a performance improvement of up to 70% over solutions tuned for only one specific number of threads.