Next: Résumé #3: Les instructions:
Up: Résumés de Organisation et
Previous: Résumé #1: Abstractions et
À lire: pp. 48 à 66 3/4, 67 3/4 à 79 1/2,
80 1/4 à 85
- Il est important de comprendre les différents facteurs influençant les performances de façon à motiver/expliquer les choix de conception.
- La notion de performance dépend du contexte, de
l'application, des objectifs poursuivis:
- Pour le processeur: Temps de réponse (d'exécution) = durée
s'écoulant entre le début et la terminaison d'une tâche.
- Pour les E/S: Débit = Quantité totale de travail effectuée
en un temps donné.
- Performances = 1
Temps exécution:
Plus le temps d'exécution est court, plus les performances sont grandes.
- Performances
> Performances
Temps
< Temps
-
est n fois plus rapide que
-
-
Performances
/ Performances
= n
-
-
1
Temps
/ 1
Temps
= n
-
-
Temps
/ Temps
= n
- Deux points de vue pour mesurer le temps:
- A)
- Externe (usager): durée en secondes.
- B)
- Interne (concepteur): durée en cycles d'horloge.
A) Point de vue externe:
Différents temps mesurables:
- Temps écoulé = Temps UC + Temps d'attente (E/S, autres
usagers, etc.).
- Temps UC = Temps UC usager + Temps UC système.
- Temps UC usager = Temps consacré par l'UC à travailler sur
notre tâche (en excluant le temps pour les E/S, les attentes, le
temps du noyau du S.E., etc.).
- Temps UC système: Temps consacré par l'UC à l'exécution
de code du système d'exploitation (noyau) lié à l'exécution de
notre programme.
- Performances UC: Définies en fonction du temps UC usager
seulement.
B) Point de vue interne:
- Rôle de l'horloge = Fonctionne à un rythme constant et
détermine à quels moments les divers événements du niveau
matériel se produisent.
- Deux façons de présenter la vitesse de l'horloge:
- Période = Durée d'un cycle complet. Ex.: 10 ns.
- Fréquence = Nombre de cycles par seconde. Ex.: 100 MHz.
(1 Hz = 1 cycle/sec.)
-
- Remarque: Fréquence = 1
Période. Période = 1
Fréquence.
- Temps UC = Nombre de cycles UC
Durée d'un cycle
(période).
- Nombre de cycles UC = Nombre d'instructions exécutées
Nombre de cycles par instruction.
- Nombre de cycles par instruction: Pour une architecture
donnée, ce nombre peut varier parce qu'il dépend de la mise en
oeuvre du processeur. De plus, des instructions différentes peuvent
nécessiter, dans certaines mises en oeuvre, un nombre différent de
cycles pour leur exécution.
- CPI = Nombre moyen de cycles par instruction.
(Moyenne pondérée: pour chaque classe d'instructions, on
détermine le nombre de cycles machines requis pour l'exécution des
instructions ainsi que la fréquence moyenne -- via simulations
et/ou expérimentations -- d'utilisation de ces instructions.)
- Formules liant les 3 facteurs:
- Temps UC
-
- = Nombre d'instructions exécutées
CPI
Période de l'horloge
-
-
- Temps UC
-
- = Nombre d'instructions exécutées
CPI
Fréquence horloge
-
-
- MIPS:
- Millions d'Instructions Par Seconde.
- Avantages: Facile à comprendre et simple: machine plus rapide
MIPS + élevé. - Désavantages: Ne permet pas de comparer des machines avec des
jeux d'instructions différents. Ne tient pas compte de tous les
facteurs influençant la performance (nombre d'instructions
exécutées)
peut varier à l'inverse de la performance,
i.e., MIPS plus élevé mais temps plus long (sic). - MIPS = Meaningless Indication of Processor Speed.
- MFLOPS:
- Millions of FLoating-point Operations Per Second (megaflops).
- Mesure motivée par le développpement des super-ordinateurs:
calcul scientifique
opérations sur matrices de nombres
point-flottants dominent. - Désavantages: Applicable seulement pour programmes avec
opérations point-flottantes. Très variable d'une machine à
l'autre pcq. les jeux d'instructions point-flottantes varient beaucoup
(e.g., émulation de certaines instructions en logiciel). De plus,
toutes les instructions n'ont pas la même durée (une division est
beaucoup plus longue qu'une addition).
- Programmes ``benchmarks'' = Programmes qui vont permettre
de prédire les performances d'une machine pour une charge de travail
typique.
- Différents types de programmes ``benchmarks'':
- A)
- Programmes jouets: Petits programmes (10 à 100 lignes).
- B)
- Noyaux = Petites parties clés de programmes réels. Ex.: Boucles Livermore, Linpack.
- C)
- Programmes synthétiques: Code créé artificiellement
(bidon) pour correspondre à un profil d'exécution moyen. Ex.:
Whetstone, Dhrystone.
- D)
- Programmes réels. Ex.: SPEC (System Performance
Evaluation Cooperative) = Ensemble de programmes et de données
définis par un groupe de constructeurs. Comprend un ensemble de
programmes sans opérations point-flottantes (SPECint) et un autre
avec (SPECfp). (Cf. TP#1.)
- Les différents types de programme en ordre décroissant de
fiabilité de prédiction (du + fiable au moins fiable):
- D)
- Programmes réels.
- B)
- Noyaux.
- A)
- Programmes jouets.
- C)
- Programmes synthétiques.
- De nos jours:
- Généralement accepté que les programmes choisis pour
comparer les performances doivent être des applications
réelles. L'utilisation des programmes SPECs (SPEC rating)
est donc devenue courante.
- Interprétation des indices SPEC: indice SPEC = n
\
Pour les programmes SPEC, la machine est n fois plus rapide, en
moyenne, qu'un VAX-11/780 (SPEC-1992) ou qu'un Sun SPARCstation 10/40
(SPEC-1995).
- Rapport de performances pour une machine: Tous les paramètres
(matériel, logiciel, compilateur, système d'exploitation) doivent
être indiqués, de façon à ce que les résultats puissent
être reproduits.
- Différentes mesures valables pour établir les performances
d'une machine sur un ensemble de programmes:
- temps total d'exécution;
- moyenne pondérée des temps d'exécution;
- moyenne géométrique des quotients de performances à la
SPEC (cf. énoncé du TP#1).
- Utilisation de la moyenne pondérée: Les coefficients de
pondération (0
p
1) doivent refléter l'importance
des divers programmes dans la charge de travail typique.
Next: Résumé #3: Les instructions:
Up: Résumés de Organisation et
Previous: Résumé #1: Abstractions et
Guy Tremblay
Tue Aug 27 14:04:33 EDT 1996