Abderrazak JEMAI Chapitre 2 Notion de Performance

publicité
Chapitre 2
Notion de Performance
Abderrazak JEMAI
2003-2004
©A.Jemai
Chapitre 2.1
Introduction
§ Tout ordinateur est composé de 5 composants
• Processeur: (1) Partie opérative : datapath
•
(2) partie contrôle : control
•
(3) Mémoire : Memory
• I/O:
(4) Unités d’éntrée : Input devices
•
(5) Unité de sortie : Output devices
§ La mémoire est subdivisée en :
• Cache: rapide (coût élevé) placée dans le processeur
• Mémoire principale : moins rapide, coût moyen,
grande capacité, extensible.
§ Dans ce chapitre, nous nous intéressons à la
performance du processeur et à celle du système global
(ordinateur).
2003-2004
©A.Jemai
Chapitre 2.2
Exemple de calcul de performance
• Temps Concorde vs. Boeing 747?
•
•
•
•
•
Concord est 2172 km/h vs 982 km/h
Capacité de la Concord 132 vs 470 pour la Boeing.
pour ramener 132 personnes la Concord est 2.2 plus rapide
pour ramener plusieurs 396 personnes quelle performance ?
pour ramener plusieurs 1000 personnes quelle performance ?
• Débit de la Concorde vs. Boeing 747 = 0.62
Débit =
132 x 2172
470 x 982
= 0.62
• La Boeing est 1.6 “plus rapide”
2003-2004
©A.Jemai
Chapitre 2.3
Définition
§ On peut définir la performance d’un ordinateur comme
étant la rapidité avec laquelle il exécute une tâche bien
déterminée (ex : benchmark).
§ Un ordinateur A est plus performant qu’un ordinateur B
s’il arrive à exécuter la même tâche T en moins de temps.
§ Donc la performance est liée au temps d’exécution.
Performance =
1
Temps d’exécution
§ La machine A est n fois plus rapide que la machine B si
Performance de A
Performance de B
2003-2004
©A.Jemai
=n
Chapitre 2.4
Exercices
1. Si la machine A exécute un programme en 30 seconde et la machine
B exécute le même programme en 40 secondes de combien A estelle plus rapide que B ?
2. La commande time sous unix nous fournit les informations suivante
à propos de l’exécution d’un programme :
90.7u 12.9s 2:39
Temps total écoulé
Temps système
Temps CPU utilisateur
Quel est le temps d’attente (attente d’entrées/sortie, etc…) ?
90.7 + 12.9
159
2003-2004
= 65% è plus du tiers du temps a été
utilisé pour attendre les E/S
©A.Jemai
Chapitre 2.5
Calcul de performance
Temps d’exécution UC
=
Pour un programme
Temps d’exécution UC
Pour un programme
2003-2004
=
Nombre de cycles UC
Pour un programme
X
Temps de cycle
Nombre de cycles UC pour un programme
Fréquence d’horloge
©A.Jemai
Chapitre 2.6
Exercice
Un benchmark (programme d’évaluation des
performances) s’exécute en 10 secondes sur
l’ordinateur A (Horloge : 100 Mhz). On veut aider un
concepteur à construire une machine B, qui exécutera
ce programme en 6 secondes.
Sachant que la machine B sera amenée à utiliser 1.2 fois
plus de cycles d’horloge que la machine A pour ce
benchmark.
Quelle est la fréquence d’horloge de la machine B ?
2003-2004
©A.Jemai
Chapitre 2.7
Réponse
§
Nombre de cycles d’horloge nécessaires au benchmark sur A
Temps UCA
10 secondes
=
=
Nombre de cycles UCA
Fréquence d’horlogeA
Nombre de cycles UCA
100 x 106 x
cycles
seconde
§
Nombre de cycles sur A = 1000 x 106 cycles
§
Nombre de cycles sur B = 1.2 x 1000 x 106 cycles
§
Fréquence d’horlogeB = 200 MHZ
2003-2004
©A.Jemai
Chapitre 2.8
Temps d’exécution
Temps
=
Instructions X
Cycles
Instructions
X
Secondes
Cycle
CPI : cycle par instruction
2003-2004
©A.Jemai
Chapitre 2.9
CPI
“Nombre de cycles moyen par instruction”
CPI
=
Nombre de cycles UC
Nombre d’instructions
n
S
Nombre de cycles d’horloge UC =
CPI i * Ci
i =1
Cj : le nombre des instructions de classe j exécutées.
CPIj : Le nombre moyen de cycles par instruction pour cette classe j
2003-2004
©A.Jemai
Chapitre 2.10
Exercice
Un concepteur de compilateur essaie de choisir entre deux
séquences de code pour une machine donnée. Les concepteurs
du matériel ont fournit les informations suivantes :
Classe
A
B
C
CPI
1
2
3
Pour une expression particulière d’un langage de haut niveau, le
concepteur du compilateur envisage deux séquences de code qui
nécessitent les nombres d’instructions suivants :
Code
1
2
2003-2004
©A.Jemai
Nombre d’instructions
A
B
C
2
1
2
4
1
1
Chapitre 2.11
Exercice (suite…)
§ Quelle séquence de code exécute le moins d’instructions ?
§ Laquelle sera la plus rapide ?
§ Quel est le CPI de chaque séquence ?
2003-2004
©A.Jemai
Chapitre 2.12
Réponse
(1) : séquence 1 : 2+1+2 = 5 instructions
séquence 2 : 4+1+1 = 6 instructions
La séquence (1) exécute moins d’instructions
(2) quelle séquence est la plus rapide ?
Nous allons utiliser le nombre de cycle d’horloge puisqu’il s’agit de
la même machine.
n
S
Nombre de cycles d’horloge UC =
CPI i * Ci
i =1
2003-2004
©A.Jemai
Chapitre 2.13
Réponse
(2… suite) :
Nb cycles Séq1 : (2*1) + (1*2) + (2*3) = 10 cyles.
Nb cycles Séq2 : (4*1) + (1*2) + (1*3) = 9 cyles.
La séquence (2) est plus rapide
(3) Quelle est la CPI de chaque séquence ?
CPI
CPI1
CPI2
2003-2004
=
=
=
Nombre de cycles UC
Nombre d’instructions
Nombre de cycles UC1
Nombre d’instructions1
Nombre de cycles UC2
Nombre d’instructions2
©A.Jemai
=
=
10
5
9
6
=
2
=
1.5
Chapitre 2.14
SPEC95
§ Un benchmark formé de 18 applications avec des données en
entrées bien définies
§ 8 dites à calcul entier
• m88ksim, : simulateur du 88000 de Motorola
• gcc, : compilateur C sous unix
• compress, : commande de compression
• perl : langage de programmation pour cgi (web dynamique)
• vortex, li, ijpeg, go
§ 10 à calcul flottant
• tomcatv, swim, su2cor, hydro2d, mgrid, applu, turb3d, apsi,
fppp, wave5
2003-2004
©A.Jemai
Chapitre 2.15
Unité de mesure des performances
Applications
Ex : Base de donnée
Requête par seconde
Langages de
programmation
Compilateur
(millions) d’Instructions par seconde – MIPS
ISA
Datapath
Control
Micro opération par seconde
Unité fonctionnelles
Transistors fils
Cycles par seconde
(fréquence d’horloge MHZ)
Chaque unité de mesure a sa place
2003-2004
©A.Jemai
Chapitre 2.16
Performance CPU
Temp
xx Secondes
TempCPU
CPU == Secondes
Secondes ==Instructions
Instructions xx Cycles
Cycles
Secondes
Programme
Programme
Instruction
Cycle
Programme
Programme
Instruction
Cycle
2003-2004
©A.Jemai
Chapitre 2.17
Exemple (processeur RISC)
Op
ALU
Load
Store
Branch
2003-2004
Freq
50%
20%
10%
20%
Cycles CPI(i)
1
.5
5
1.0
3
.3
2
.4
2.2
©A.Jemai
% Time
23%
45%
14%
18%
Chapitre 2.18
Téléchargement