Automatic Calibration of Performance Models on Heterogeneous Multicore Architectures - HPPC 2009

Automatic Calibration of Performance Models on Heterogeneous Multicore Architectures - HPPC 2009

Cédric Augonnet, Samuel Thibault, and Raymond Namyst

Abstract. Multicore architectures featuring specialized accelerators are getting an increasing amount of attention, and this success will probably influence the design of future High Performance Computing hardware. Unfortunately, programmers are actually having a hard time trying to exploit all these heterogeneous computing units efficiently, and most ex- isting efforts simply focus on providing tools to offload some compu- tations on available accelerators. Recently, some runtime systems have been designed that exploit the idea of scheduling – as opposed to of- floading – parallel tasks over the whole set of heterogeneous computing units. Scheduling tasks over heterogeneous platforms makes it necessary to use accurate prediction models in order to assign each task to its most adequate computing unit [2]. A deep knowledge of the application is usually required to model per-task performance models, based on the algorithmic complexity of the underlying numeric kernel.

We present an alternate, auto-tuning performance prediction approach based on performance history tables dynamically built during the appli- cation run. This approach does not require that the programmer pro- vides some specific information. We show that, thanks to the use of a carefully chosen hash-function, our approach quickly achieves accurate performance estimations automatically. Our approach even outperforms regular algorithmic performance models with several linear algebra nu- merical kernels.



author = {C{'e}dric Augonnet and Samuel Thibault and Raymond Namyst},
title = {{Automatic Calibration of Performance Models on Heterogeneous Multicore Architectures}},
booktitle = {Proceedings of the International Euro-Par Workshops 2009, HPPC'09},
address = {Delft, The Netherlands},
month = AUG,
year = 2009,
keywords = {StarPU},
publisher = {Springer},
series = {Lecture Notes in Computer Science},
url = {},
keywords = {StarPU}