author : cedric augonnet, samuel thibault, and raymond namyst inria bordeaux, labri, university of...

Post on 17-Jan-2018

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 Multi-core architectures featuring specialized accelerator ◦ Those are getting an increasing amount of attention. ◦ This success will probably influence the design of future High Performance Computing hardware.  Homogeneous multi-core system → Heterogeneous multi-core system  Static prediction → Dynamic prediction

TRANSCRIPT

Automatic Calibration of Performance Models on Heterogeneous Multi-core ArchitecturesAuthor : Cedric Augonnet, Samuel Thibault, and Raymond NamystINRIA Bordeaux, LaBRI, University of BordeauxWorkshop on Highly Parallel Processing on a Chip (HPPC 2009)

1) Introduction2) What is StarPU ?3) How to define and to build performance

models ?4) Build history-based performance models

dynamically5) Experimental validation 6) Conclusion

outline

Multi-core architectures featuring specialized accelerator◦ Those are getting an increasing amount of

attention.◦ This success will probably influence the design of

future High Performance Computing hardware.

Homogeneous multi-core system → Heterogeneous multi-core system

Static prediction → Dynamic prediction

Introduction

Auto-tuning performance prediction approach ◦ based on performance history tables dynamically

built during the application run.

Introduction (cont.)

A runtime system for task scheduling on heterogeneous multi-core architecture.

The design of StarPU is organized around three main components:◦ An unified execution model.◦ A data management library. ◦ A scheduling framework.

What is StarPU ?

Scheduling strategies based on performance models

Define performance model :

◦ We need to decide which parameters the model should depend on.

◦ Find relationship between these parameters.

How to define and to build performance models ?

Build performance model :◦ It is common to use specific pre-calibration program

to build those model.

◦ It is however possible to design a model based on the amount of computations per task, and to calibrate the parameters by the means of a regression.

◦ StarPU can therefore automatically calibrate parametric models, either at runtime using linear regression models or offline in the case of non-linear models.

How to define and to build performance models ? (cont.)

Regression analysis will be create a model of dependent variable and independent variable.

In the model, we can be prediction value of dependent variable by independent variable.

General cases are linear regression and non-linear regression

Regression analysis

Measuring tasks' duration.

Identifying task kinds.

Feeding and looking up from the model.

Build history-based performance models dynamically

Identifying task kinds.

Each computational kernel is associated with a hash table per architecture.

Steps :1. A task is submitted to StarPU2. It computes its hash.3. Consults the hash table corresponding to the

proper kernel-architecture pair to retrieve the average execution time previously measured for this kind of task.

4. Update hash table, and save the new hash table to a file. (These performance models are persistent between different runs.)

Feeding and looking up from the model.

Environment :◦ They have implemented these automatic model

calibration mechanisms in StarPU .

◦ Multi-core CPU, GPU, Cell processor(SPU)

Experimental validation

Sharpness of the performance prediction

Performance feedback tools

We have proposed a generic approach to seamlessly build history-based performance models.

It has been implemented within the StarPU runtime system with the support of its integrated data management library, and we have shown how StarPU's performance feedback tools help the programmer to analyze whether the resulting performance prediction are relevant or not.

Conclusion

Q & A

top related