Вы находитесь на странице: 1из 46

1

ARCHITECTURE EVOLUEE DES ORDINATEURS


MESURE DES PERFORMANCES
Mme Kadri & Mlle Haichour
{n_kadri , a_haichour}@esi.dz
Ecole nationale Supérieure d’Informatique (ESI)

2019-2020
2

Objectifs du chapitre
• Définir les paramètres de la performance d’une machine
• Mesurer la performance d’une machine
• Comparer les performances des machines
• Evaluer l’effet des améliorations de la conception sur la performance
des machines
3

Contenu du chapitre
• Définition de la performance d’une machine
• Paramètres affectant la performance d’une machine
• Métriques et équations de la performance d’une machine
• Comparaison des performances des machines
• Amélioration des performances : Loi d’Amdhal
• Synthèse et conclusion
4

Performance (Définition)
• Mesure indiquant le degré d’efficacité d’une machine
• Efficacité en termes de :
▫ Vitesse
▫ Consommation d’énergie
▫ Coût (surface)
5

Performance (Paramètres de conception)


• Architecture = logiciel + matériel
• Logiciel
▫ Compilateur : optimisation de la génération de code
▫ Jeu d’instructions : réduction du nombre de cycles par instruction (RISC)
Format de l’instruction : simplification
• Matériel
▫ Processeur (fréquence d’horloge, microarchitecture, séquenceur)
▫ Mémoire (registres, cache, MC)
▫ E/S
6

Performance (Evolution)
• Matériel
▫ Processeur : Diminution du cycle d’horloge
▫ Registres internes : Temps d’accès évolue de -20% par an
▫ Mémoire cache : Temps d’accès évolue de -20% par an
▫ Mémoire centrale : Vitesse évolue de +10% par an
7

Performance (Métriques ou Critères de mesure)


• Objectif  augmenter la performance d’une architecture
• Vision de la performance varie
▫ Utilisateur intéressé par la réduction du temps d’exécution ou temps de
réponse
▫ Responsable du centre de calcul intéressé par l’augmentation du débit de
sortie (throughput)
8

Performance (Mesure)
• Temps d’exécution
▫ Temps mesuré entre le début et la fin d’une tâche
▫ Exprimé en secondes
▫ Inclut ou pas : traitement des instructions; accès mémoire; E/S;
interruptions; surcoût du système d’exploitation

Performance  1
Temps _ Exécution
9

Performance (Mesure)
• Performance de crête (Peak rate)
▫ Taux de traitement maximal (théorique)
▫ Pratiquement pas atteignable (dépendances dans les données et
traitements)
▫ Les fabricants y ont recours pour de la publicité
10

Performance (Mesure)
• Débit de sortie
▫ Nombre de tâches (quantité de travail) effectuées par unité de temps
▫ Nombre d’instructions par seconde (processeur)
MIPS (Million Instructions Per Second)
MFLOPS (Million FLoating point Operations Per Second)
▫ Nombre de requêtes traitées par heure (serveur)
11

Performance (Mesure)
• MIPS

MIPS  Nombre _ Instructions  Fréquence_ Hor log e


Temps _ Exécution106 CPI 106
CPI : Nombre de Cycles par Instruction

▫ Facile et simple à calculer


▫ Dépend du jeu d’instructions
▫ Ne permet donc pas de comparer des machines aux jeux d'instructions
différents
12

Performance (Mesure)
• MFLOPS

MFLOPS Nombre _ Instructions _ Réels


Temps _ Exécution106

▫ Métrique spécifique aux machines orientées calcul scientifique


▫ Applicable que sur des programmes avec opérations en virgules flottantes
▫ Dépend du jeu d’instructions en virgule flottante, qui varie beaucoup
▫ Ne permet donc pas de comparer des machines aux jeux d'instructions
différents
13

Performance (Mesure)
• Remarques
▫ Amélioration du temps d’exécution  amélioration du débit de sortie
▫ Le contraire n’est pas toujours vrai
▫ Ex. Augmentation du nombre de processeurs d’une machine augmente le
débit de sortie, sans améliorer nécessairement le temps d’exécution
▫ Le seul véritable critère pour mesurer et comparer les performances de
machines, est le temps
14

Performance (Mesure)
• Temps d’exécution d’un programme (point de vue externe)

Temps _UC Temps _UC _ Pgme Temps _UC _ SE

▫ Temps_UC_Pgme : Consacré à travailler sur le programme utilisateur


(exclut les accès mémoire, les E/S, les attentes, le temps du noyau du SE)
▫ Temps_UC_SE : Consacré par l’UC à l’exécution du code du SE (noyau)
provoqué par l’exécution du programme utilisateur
15

Performance (Mesure)
• Temps d’exécution d’un programme (point de vue externe)
Exemple
Commande ‘’time’’ sous Unix
123.5 u 37.6 s 4:05 65.75%

Temps_UC_Pgme = 123.5 s
Temps_UC_SE = 37.6 s
Temps_UC = 123.5 + 37.6 = 161.1 s
Temps total d'observation = 4mn et 5 s (245 s)

Pourcentage du temps utilisé à l'exécution = 161.1 / 245 = 65.75%


Le reste (34.25%) : utilisé à exécuter des E/S ou autres programmes.
16

Performance (Mesure)
• Temps d’exécution d’un programme (point de vue interne)

Temps _ Pgme  NI CPI Temps _ Cycle

Nombre
d’instructions

Nombre de cycles
par instruction
Période d’horloge
17

Performance (Mesure)
• Temps d’exécution d’un programme (point de vue interne)

Temps _ Pgme  NI CPI Temps _ Cycle

Exemple
Un programme P1 constitué de 20 instructions
Fréquence d’horloge = 500 MHz
Nombre de cycles par instruction = 4 cycles

Temps_Cycle = 1 / 500 = 0.002 µs = 2 ns

Temps_P1 = 20 x 4 x 2 = 160 ns
18

Performance (Mesure)
• Temps d’exécution d’un programme (point de vue interne)

Temps _ Pgme  NI CPI Temps _ Cycle

Dépend du
compilateur
et du jeu
d’instructions
Dépend du
chemin de
Dépend de la
données et du
technologie de
jeu d’instructions
fabrication
19

Performance (Mesure)
• Temps d’exécution d’un programme (point de vue interne)

Temps _ Pgme  NI CPI Temps _ Cycle

Peut changer d’une instruction à une autre

Dépend du jeu d’instructions et du chemin de


donnés

La moyenne de toutes les classes d’instructions


est considérée
20

Performance (Mesure)
• Exemple de CPI Processeur : Fréquence = 500 MHz, Temps d’accès mémoire = 50 ns
Addition en mode immédiat Chargement en mode direct
Etape Cycles Temps Etape Cycles Temps
RAM  (CO) 1 2 RAM  (CO) 1 2
Lecture 25 50 Lecture 25 50
CO  (CO) + 1 0 0 CO  (CO) + 1 0 0
RI  (RIM) 1 2 RI  (RIM) 1 2
UAL2  RI.op, Addition 1 2 RAM  RI.@ 1 2
Total 28 56 ns Lecture 25 50
UAL1  (RIM), Load 1 2
Total 54 108 ns
21

Performance (Mesure)
• Calcul du CPI
▫ Déterminer le nombre de cycles horloge requis pour chaque classe
d’instructions (arithmétique, transfert, branchement, … ) [CPIi]
▫ Déterminer la fréquence d’utilisation des instructions de chaque classe (par
simulation ou par expérimentation) [NIi / NI]
▫ Déterminer le CPI global par l’équation

n NI
CPI _ Global   CPI  i
i 1 i NI
22

Performance (Mesure)
• Calcul du CPI

Exemple
Processeur graphique
Fréquence des instructions (FP) = 25%
CPI moyen des instructions FP = 4 cycles
CPI moyen des autres instructions = 1.33 cycles
Quel est le CPI global de ce processeur ?

CPI_Global = 0.25 x 4 + 0.75 x 1.33 = 1.9975 ≈ 2 cycles


23

Performance (Comparaison)
• Comparaison entre deux machines X et Y
▫ Comparer les temps d’exécution
▫ X est n fois plus rapide que Y

Temps _ Exécution_Y  Performance _ X  n


Temps _ Exécution_ X Performance _Y
24

Performance (Comparaison)
• Comparaison entre deux machines X et Y
▫ Comparer les débits de sortie
▫ X est n fois plus rapide que Y

Débit _ X  n
Débit _Y

Le nombre de tâches effectuées par X en unité de temps, est n fois plus


grand sur X que sur Y
25

Performance (Comparaison)
• Comparaison entre deux machines X et Y
• Programmes de test (Benchmark)
▫ Ensemble de programmes reflétant le fonctionnement réel des machines
▫ Exécution sur différentes machines avec l’objectif d’évaluer les
performances
▫ La comparaison est plus significative
26

Performance (Comparaison)
• Types de benchmarks

▫ Programmes réels

▫ Programmes de noyaux

▫ Programmes de jouets

▫ Programmes synthétiques
27

Performance (Comparaison)
• Programmes réels
▫ Programmes très utilisés (compilateurs, traitement de texte, outils CAO, …)
▫ Evaluer la performance des différentes générations de la même machine
▫ Benchmarks les plus utilisés
▫ Exemple : SPEC benchmarks (Standard Performance Evaluation
Corporation)
28

Performance (Comparaison)

SPEC 2000 (Comparaison AMD Opteron vs Intel Itanium 2) - Patterson and Hennessy 2012
29

Performance (Comparaison)
• Votre compagnie veut choisir entre AMD Opteron et Intel Itanium 2
• 60% du temps  exécution d’applications similaires à (ammp)
• 20% du temps  exécution d’applications similaires à (wupwise)
• 20% du temps  exécution d’applications similaires à (apsi)
• Quel processeur choisir et pourquoi ?
Temps_Moyen _Opteron = 0.2 x 51.5 + 0.6 x 136 + 0.2 x 150 = 121.9 s
Temps_Moyen _Itanium 2 = 0.2 x 56.1 + 0.6 x 132 + 0.2 x 231= 136.6 s

Décision
Opteron est 1.12 fois plus rapide que l’Itanium
30

Performance (Comparaison)

SPEC 2000 (Comparaison AMD Opteron vs Intel Itanium 2) - Patterson and Hennessy 2012
31

Performance (Comparaison)
• Programmes noyaux
▫ Parties spécifiques extraites de programmes réels
▫ Ne sont pas exécutés habituellement mais utilisés seulement pour
déterminer la performance d’une machine
▫ Exemples : Boucles de Livermore et Linpack (Linpack destinée au domaine
scientifique et aux calculateurs scientifiques)
32

Performance (Comparaison)
• Programmes jouets
▫ Petits programmes (10 à 100 lignes)
▫ Faciles à exécuter sur des simulateurs lors de la conception de nouvelles
architectures
▫ Exemple : Tri rapide
33

Performance (Comparaison)
• Programmes synthétiques (Dhrystone)
▫ Evaluent les opérations entières
▫ Les opérations en virgule flottante, les E/S et les appels de fonctions
systèmes, ne sont pas considérés
▫ Mesure en Dhrystone/seconde
34

Performance (Comparaison)
• Programmes synthétiques (Whetstone)
▫ Evaluent les performances arithmétiques
▫ Utilisés pour évaluer les opérations en virgule flottante
35

Performance (Amélioration)
• Améliorer la performance d’une machine  Agir sur :
▫ Le processeur : Maximiser le parallélisme
▫ La mémoire : Hiérarchie mémoire
▫ Les E/S : Amélioration des dispositifs et protocoles de communication
▫ Les logiciels : Amélioration du compilateur
▫ Le cas courant ou fréquent : Rendre le cas courant plus rapide
36

Performance (Amélioration)
• Le cas courant (Exemple)
▫ Le débordement dans une opération arithmétique, est un cas rare
▫ Accélérer l’opération arithmétique sans tenir compte du débordement
▫ Peut ralentir le cas où il y a débordement
▫ Améliore la performance globale
▫ Ce principe peut être mis en relief en appliquant la loi d’Amdahl
37

Performance (Amélioration)
• La loi d’Amdahl
▫ Utilisée pour déterminer le gain de performance obtenu par l’amélioration
d’une partie de l’ordinateur
▫ Formulation : “le gain de performance obtenu à partir de l'utilisation d'un
mode d'exécution plus rapide, est limité par la fraction de temps pendant
laquelle ce mode peut être utilisé”
▫ Définit l'accélération pouvant être obtenue par l'utilisation d'un mode
d'accélération particulier
38

Performance (Amélioration)
• La loi d’Amdahl

Accélération  Temps _ Exécution_ sans accélération  1


Temps _ Exécution_ avec accélération [(1 Fa)  Fa ]
A
▫ Fraction améliorée (Fa) est toujours inférieure ou égale à 1
▫ Accélération obtenue (A) est toujours supérieure ou égale à 1
39

Performance (Amélioration)
• Fraction améliorée (Fa)
▫ Fraction du temps de calcul original qui peut être améliorée
▫ Ex. Si 20 secondes du temps d’exécution qui prend 60 secondes peut être
amélioré, alors la fraction améliorée = Fa = 20/60 = 1/3
40

Performance (Amélioration)
• Accélération obtenue (A)
▫ Accélération obtenue pour la fraction améliorée
▫ Ex. Temps original = 5 secondes, temps amélioré = 2 secondes
Accélération = 5/2
41

Performance (Amélioration)
• La loi d’Amdahl

Exemple 1
Le nouveau programme calcule 5 fois plus rapidement que
l’ancien. L’ancien programme est occupé à 45% sur les
calculs et 55% sur les E/S.
Déterminer l’accélération globale obtenue.

Fa = 45% = 0.45, A = 5

Accélération = 1/ [(1-0.45)+0.45/5] = 1/0.55+0.09 ≈ 1.56


42

Performance (Amélioration)
• La loi d’Amdahl

Exemple 2
Processeur graphique
Fraction des FPSQR = 25%
Fraction des FP = 60%
Proposition 1 : Accélérer les FPSQR d’un facteur de 10
Proposition 2 : Accélérer les FP d’un facteur de 1.5

Quelle proposition offre une meilleure accélération globale ?


43

Performance (Amélioration)
• La loi d’Amdahl

Proposition 1 Proposition 2
Fa-FPSQR = 25% = 0.25, A-FPSQR = 10 Fa-FP = 60% = 0.6, A-FPSQR = 1.5

Accélération = 1/ [(1-0.25)+0.25/10] Accélération = 1/ [(1-0.6)+0.6/1.5]


= 1/0.75+0.025 = 1/0.4+0.4
= 1.29 = 1.25

▫ La proposition 1 améliore mieux l’accélération globale


44

Performance (Amélioration)
• La loi d’Amdahl
▫ Sert de guide pour les concepteurs d’architectures
▫ Indique l’effet de l’amélioration du cas courant sur la performance globale
de la machine
45

Synthèse
• Performance des processeurs
• Equations de mesure de la performance
• Comparaison de la performance entre différentes machines
• Formuler l’amélioration de la performance (Loi d’Amdahl)
46

La suite…
• Techniques de conception pour l’amélioration de la performance
▫ Hiérarchie des mémoires
▫ Architectures pipeline/ Architectures superscalaires
▫ Processeurs multicores / Multiprocesseurs