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