A multi-objective auto-tuning framework for parallel codes

Herbert Jordan, Peter Thoman, Juan José Durillo, Simone Pellegrini, Philipp Gschwandtner, Thomas Fahringer, H Moritsch · 2012 International Conference for High Performance Computing, Networking, Storage and Analysis · 2012

In this paper we introduce a multi-objective autotuning 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.

Read the paper · More papers on PaperTik