Conservatoire national des arts et métiers
Architectures des systèmes informatiques
CHAPITRE 8
Complexité, Puissance et Variabilité
Année 2002-2003

Suite N°1...

8.3 QUELQUES TECHNIQUES POUR APPRÉCIER OU ÉVALUER LES PERFORMANCES

Les calculs précédents dépendent explicitement de plusieurs facteurs et ont des limites de validité très strictes. Il faut vraiment que toutes choses, et elles sont nombreuses, soient égales par ailleurs : caches, mémoire centrale, disques, entrées et sorties, compilateur, système.

D'autres techniques sont employées qui relèvent de deux catégories principales :

La première, celle qu'on rencontre le plus souvent est le MIPS pour million d'instructions (du processeur) par seconde. Elle dépend de la fréquence d'horloge de la machine physique et des modes d'exécution des instructions symboliques.
Elle ne vaut que pour des processeurs isolés qui ne diffèrent que par leur fréquence d'horloge.Mais les processeurs ne sont pas isolés et ils n'ont pas nécessairement le même jeu d'instructions. Dès que l'on veut extrapoler le MIPS à une machine même incomplète, on doit prendre en compte d'autres facteurs.

Pour le matériel :

le processeur, on l'a dit, sa fréquence d'horloge, son jeu d'instructions;
le bus pour son débit et son temps de latence;
la mémoire pour son temps d'accès (mémoires à un ou plusieurs temps d'attente), mais aussi par sa taille installée qui impose ou évite des recouvrements, etc. ;
les supports externes disques et disquettes, pour leurs caractéristiques propres, leurs contrôleurs et même leur formatage,
D'autres facteurs architecturaux comme la mémoire cache, les canaux d'accès direct, les coprocesseurs, etc.

Pour le logiciel :

le système d'exploitation;
le langage de programmation employé;
l'efficacité de son traducteur;
l'algorithme employé;
la plus ou moins grande habileté du programmeur;
les sécurités installées, etc.

Le schéma de C. Binot de l'Association Française des Utilisateurs d'Unix (AFUU) est :

Après cette énumération qui n'est même pas exhaustive, l'évidence est que le MIPS est parfaitement irréaliste pour évaluer la puissance d'un système. Une technique analytique est exclue, elle aussi. Un exemple simple :
Soit à exécuter l'instruction A = B + C dont les opérandes sont en mémoire. Cela sera fait :
 
en architecture CISC
mémoire à mémoire, 
en une instruction
en architecture RISC
registre à registre, 
en quatre instructions
ADD MEM(C),MEM(A),MEM(B) LOAD  REG1,MEM(A)
LOAD  REG2,MEM(B)
ADD   REG3,REG2,REG1
STORE MEM(C),REG3
Si le temps total d'exécution est le même, la machine RISC sera créditée de 4 fois plus de MIPS que la machine CISC. Ces MIPS peuvent avoir un intérêt pour le spécialiste mais n'en ont pas du tout pour un utilisateur. Disons à nouveau différemment ce qui était affirmé dans le § 8.2.3 :

 
Toute comparaison de deux machines différentes
qui ne compare pas les temps d'exécution du même programme
est au mieux sans signification, au pire trompeuse.

 Puisque l'on ne peut pas prédéterminer cette puissance, on va mesurer des temps sur des exemples. On peut le faire de deux façons :

On mesure ici le plus souvent le temps passé, temps entre la soumission du travail et son achèvement, sous la forme du temps d'unité centrale : temps UC, consommé pour un programme donné. Les temps d'entrées est sorties ne sont pas comptés. Comme de plus le système d'exploitation est sollicité, on doit séparer le temps d'UC en deux parts :
.le temps d'UC du programme utilisateur lui-même;
.le temps d'UC du système,Exemple de relevé de temps sur système unix nommé XX pour le programme Linpack

XX% time linpackd.exe
8.5u 0.3s 0:13 66% 0+804k 4+1io 6pf+0w

Interprétation :
. 8.5 secondes de temps utilisateur (u)
. 0,3 seconde de temps système (s)
. 13 secondes de temps consommé
. 66 % du temps consommé pour le programme et donc 34% pour d'autres travaux
. utilisation de la mémoire : 0 k de mémoire non partagée, 804 k de mémoire partagée
. entrées et sorties : 4 blocs en entrée, 1 bloc en sortie (io)
. 6 défauts de page (pf) et 0 échange ou swap (w).

8.3.1 Les différents MIPS

Voici quelques-unes des significations convenues :

À titre d'exemple d'errements possibles, le même programme de test Dhrystone a été écrit en Pascal pour UNIX Berkeley 4.2, et en Pascal pour DEC VMS 2.4. Cela a donné les résultats suivants sur le même VAX 11/780 :
 
 
NOMBRE D'INSTRUCTIONS
TEMPS D'EXÉCUTION
MIPS BRUTS
Pascal UNIX
483
700 µs
0,69
Pascal VMS
226
543 µs
0,42

Le temps le plus court correspond au nombre de MIPS le plus petit !L'utilisateur peut conclure que si l'on s'astreint à établir et à exécuter un programme représentatif pour un essai de mesure de MIPS, mieux vaut garder seulement le temps d'exécution et abandonner ce MIPS qui a été l'objet d'une polémique en 1982 entre CDC et T. Henkel de la revue Computerworld. Les MIPS annoncés par les deux parties différaient comme suit :
 
ordinateur
MIPS de CDC
MIPS de Computerworld
170/720
1,4
0,8
170/730
2,3
1,1
170/835
3,5
1,2
170/855
8,0
1,5
170/865
11,0
2,3
170/875
19,0
2,4
176
15,0
17,7

Enfin signalons que MIPS a été compris comme l'acronyme de :
«Meaningless indication of processor speed» indication sans signification sur la vitesse des processeurs.
«Meaningless indoctrination by pushy salespersons» endoctrinement sans signification par vendeurs pressés.
Si l'acronyme avait contenu un D, on aurait pu penser à désinformation.

En résumé, le MIPS, quel qu'il soit est :

Et pourtant, la règle empirique d'Amdahl :
il faut prévoir
1 Mégaoctets de mémoire centrale
1 Mégabits/s d'entrées et sorties
par Mips de processeur
est utilisable. Cette règle se trouve dans la littérature anglo-saxonne sous l'expression «rule of thumb», ou règle du pouce, autre nom du doigt mouillé. Elle fait référence aux Mips, car faute de grives...Résumé sur les comptages

On connaît :

les IPS instructions par seconde;
les OPS opérations par seconde;
les FLOPS opérations flottantes par seconde;
les LIPS inférences logiques par seconde;
les CPS connexions par seconde ou COPS opérations de connexion par seconde.
Le lecteur les fera précéder de :
K pour kilo 1003
M pour méga 1006
G pour giga 1009
T pour téra 1012
E pour exa  1018
Y pour yota 1021
Z pour zéta 1024

8.3.2 Les bancs d'essais

Il faut tout d'abord distinguer ceux qui concernent une famille de machines plus ou moins compatibles de ceux qui sont voulus d'usage général. Cet usage est résumé sous la forme d'un problème typique d'une classe d'applications. On distingue également ceux qui sont du domaine public, ceux qui sont la propriété d'un constructeur et ceux qui sont des produits commerciaux.

a) Des produits commerciaux :

AIM teste les systèmes d'exploitation,
Neal Nelson est utilisé en bureautique,
Workstation est applicable à des problèmes industriels.

b) Des outils de tests propres à une classe de matériels, et qui ne testent que le matériel ou une partie de celui-ci. À titre d'exemple, on connaît pour les PC et compatibles :

SPEED ou LM2 de Landmark Software pour la fréquence de fonctionnement,
CORETEST de Core International pour le disque et son contrôleur,
SYSINFO de Peter Norton,
HDTEST de Jim Bracking etc.

Un test d'IBM connu sous le nom de VITESSE détaille en référence à l'IBM PC les performances des machines qui lui ont succédé sous la forme de classes d'opérations : registre à registre, registre à mémoire, mémoire à mémoire etc.

c) Plus complets sont les tests construits ou utilisés par des publications, MS Bench de l'ancienne revue Micro-Systèmes fonctionnait sous MS-Dos, il détaillait pour des PC et compatibles le temps d'accès à la vidéo, des tris, des accès au disque, des calculs. Il a plusieurs successeurs sous Windows.

d) Les outils des constructeurs : IBM, HP, OLIVETTI, NCR, DEC simulent des charges de travail et donnent en général pour une application donnée les taux d'utilisation des ressources des machines. Par exemple Ramp-C d'IBM est un ensemble de programmes écrits en Cobol. Il simule le travail d'utilisateurs de terminaux sur différents types de tâches. Ce test comprend des transactions de complexité croissante qui vont de la simple mise à jour d'un fichier à une modification complexe de stock. Son résultat est exprimé en nombre de transactions par seconde. Il est utilisé notamment pour les machines de types RS/6000, AS/400 et ES/9221. Connaissant le prix de la configuration, on en déduit le coût de la transaction par seconde.

e) Les produits standard, en général du domaine public. Ils sont dits standards mais simplement de fait, car il n'y a aucune normalisation les concernant. Ils sont publiés dans des revues ou fournis par de grands utilisateurs qui ont trouvé avantageux d'investir dans leur réalisation. Chacun a un profil bien ciblé, ils ne traitent donc pas des mêmes aspects. Certains se cantonnent à un aspect particulier, d'autres prétendent donner une évaluation globale.

Une autre catégorie est celle des MIX. Ils sont de deux types :

MIX instructions : composés de sommes ou de moyennes de temps d'instructions pondérés. La pondération reflète une ventilation statistique de la fréquence d'utilisation des instructions.

MIX problèmes : composés de la moyenne ou de la somme pondérée des temps d'exécution par type de problème.

L'un des plus anciens est GIBSON MIX, créé dans les années soixante par J.C. Gibson d'IBM.

Il donne pour une application déterminée, la ventilation des utilisations de chaque type d'instruction et, connaissant sa durée d'exécution, une évaluation globale. Cette voie n'est plus utilisée, car elle nécessite des statistiques considérables et des évaluations de moyennes, le test demanderait presque autant de travail que la réalisation de l'application. Des architectures différentes ne sont bien sûr pas comparables de cette façon.

Quelques autres MIX :
scientifiques : GIBSON, GIBSON SCIENTIFIQUE, GAMM*, FORTRAN,
gestion : GIBSON COMMERCIAL, DORRANCE, MIX COBOL,
général : COMPOSITE MIX.

*GAMM (Gesellschaft für Angewante Mathematik und Mechanik).
 
Composition des deux Gibson
Scientifique                           Commercial
Instruction Poids Instruction Poids
addition entière
multiplication entière
division entière
addition flottante
multiplication flottante
division flottante
branchement conditionnel
comparaison
chargement de registre
décalage simple
comparaison logique
incrémentation de registre
33,0
0,6
0,2
7,3
4,0
1,6
6,5
4,0
17,5
4,6
1,7
19,0
déplacement en mémoire
édition
addition/soustraction
lancement d'entrée/sortie
multiplication
division
branchement conditionnel
comparaison
25,0
4,0
8,2
7,0
0,6
0,2
31,0
24,0

Les programmes nommés KERNELS (cœurs ou noyaux), généralisent ces procédés pour des fonctions d'usage fréquent : tris, inversions de matrices, conversions de codes etc.

Pour rendre les évaluations plus comparables entre machines très différentes d'un même constructeur ou de constructeurs différents, des auteurs ont écrit des bancs d'essai dits synthétiques. Les deux plus connus sont WHETSTONE et DHRYSTONE.

8.3.3 Whetstone

Il a été écrit en 1975 par Curnow et Wichmann du Laboratoire national de physique de Grande-Bretagne. Il tient son nom d'un langage intermédiaire. Il a été publié en 1976 dans Computing journal sous la forme d'un programme en Algol.

Whetstone est basé sur une étude statistique de la fréquence d'apparition de quarante instructions élémentaires (celles du langage Whetstone) dans 49 programmes de calcul utilisés dans le laboratoire. Ces modules sont spécialisés chacun dans un type d'instructions, arithmétique entière, arithmétique flottante, structure IF etc. Le programme se termine par un module d'édition des résultats. Il est devenu la référence pour Fortran et les calculs en virgule flottante.

Il est composé de 10 modules qui font exécuter ces opérations, ces modules sont pondérés par des boucles de répétition de façon à obtenir dans le test une distribution des instructions comparable à celle des programmes initiaux.

Présentation du Whetstone par composants
Nature du module
poids
arithmétique flottante sur variables
arithmétique flottante sur tableaux
passage de matrices en arguments
branchements conditionnels
arithmétique entière
fonctions trigonométriques
appels de procédures
adressage d'éléments de tableaux
deux modules de fonctions standards
(ex : SQR(EXP(LOG(x)))
10
12
14
345
210
32
899
616
93

Présentation des poids du Whetstone, en pourcentages
Nature des traitements
poids
Programme principal
Arithmétique fixe 
Indexations 
Arithmétique fixe 
18,8
14,4
11,6
1,9
Code utilisateur sous total
46,7
Fonctions trigonométriques
Autres fonctions mathématiques
21,6
31,7
Fonctions de bibliothèque sous total
53,3
Total général
100,0

Pour chaque module, on connaît le nombre d'instructions exécutées, on mesure le temps et on en déduit par pondération le Kilo instructions Whetstone ou KIPS WHETSTONE ou KWIPS, ou encore le MWIPS, méga instruction Whetstone par seconde. Il en existe une version officielle, issue de British Standards Institution - Quality Insurance. Elle est rédigée en Pascal. Certaines versions privées éliminent la partie relative à l'édition des résultats, apparemment pour obtenir un temps meilleur. Ceci est contraire aux intentions de l'auteur pour qui cette partie n'est pas dissociable du reste.

Whetstone traduit la puissance de calcul numérique incluant une grande part d'instructions en virgule flottante. Il est significatif du processeur pour son ALU, du ou des coprocesseurs, du compilateur et de la présence de mémoires cache. De plus il existe en deux versions simple et double précision.

COMPARAISON DE QUELQUES MACHINES EN kiloWhetstone
Machines
KWhetstone
HP 3000/930
2841
DEC VAX 11/780
1152
MicroVAX II
877
IBM PC XT sans coprocesseur (8088)
10
Intel 80436 à 25 MHz
6100
Intel 80486 à 33 MHz
8200

Deux variantes du Whetstone existent pour évaluer les performances des unités de calcul en virgule flottante seules :

WHETSCALE ne contient que des opérations sur des données isolées en virgule flottante (SCALE est pour opérations scalaires)
WHETMAT opère sur des tableaux (MAT pour matrices)
Les résultats sont convertis en Mflops. Le rapport Whetscale/Whetmat est représentatif de la seule aptitude à réaliser les adressages de tableaux.À titre d'exemple, ils étaient utilisés pour comparer les coprocesseurs 80287, 80387 d'Intel et leurs concurrents compatibles 3167 et 4187 de Weitek.

8.3.4 Dhrystone

Suite à un article de Knuth publié en 1971, des études statistiques ont été faites sur les fréquences d'apparition de différents types d'instructions : affectations, boucle, appels de procédures, c'est-à-dire plus que les classiques répartitions en arithmétique entière ou flottante, etc. Une statistique globale a été faite sur 1051 programmes de 18000 à 39000 lignes chacun.

Le test Dhrystone a été écrit en Ada et publié en 1984 par Reinhold Weicker. Il n'utilisait alors que le sous ensemble Pascal de ce langage pour pouvoir être traduit facilement en Pascal et en C. Sa traduction en C est la plus souvent utilisée. Grâce à cela, il est devenu une référence quasi obligée pour les machines sous le système d'exploitation Unix.

Il ne fait pas de calculs flottants ni d'entrées ou sorties.
Un pourcentage important du temps d'exécution est consacré aux traitements de chaînes de caractères, cela peut aller jusqu'à 40 % pour un compilateur C.
Il ne manipule qu'un petit nombre de variables globales.

Le banc d'essai exécute 100 instructions, 103 dans la version en langage C, répaties en :
53 affectations;
32 commandes;
15 appels de procédures et de fonctions.

Ces 100 instructions sont exécutées 50000 ou 100000 fois. Cent instructions par seconde valent UN Dhrystone.

Ce programme évalue l'architecture de la machine hors périphériques (les disques sont ici des périphériques), et l'efficacité du code produit par le compilateur. Il est très sensible à l'existence et à la taille d'une mémoire cache. Dans la version langage C, l'utilisateur peut déclarer des variables registres ou non. Ceci donne deux valeurs du Dhrystone.

Comparaison de quelques machines en Drystones



MACHINE SYSTÈME COMPILATEUR DRYSTONES 
SANS REGISTRE
DRYSTONE 
AVEC REGISTRES
CRAY 1S UNIX 4.3 CC
14820
1662
DEC VAX 11/780 UNIX 4.3 CC
1646
2136
DEC VAX 11/785 VMS VAX 11 C.2
2135
2083
PC XT 8088 MS-DOS 2.1 Microsoft 3.0
390
427
PC XT 8086 MS-DOS 3.1 Microsoft 3.0
833
909
PC AT 80286 XENIX 3.0 CC
704
714
PC AT 80286 MS-DOS 3.0 Microsoft 3.0
1250
1388

8.3.5 Linpack

Il a été conçu et est toujours diffusé par Jack Dongarra de l'Argonne national laboratory, aujourd'hui à l'université du Tennessee. C'était au départ un catalogue de sous programmes d'algèbre linéaire écrits en Fortran et donc un exemple de vie vécue et non d'un programme bâti pour les besoins de la cause. Aujourd'hui Linpack :

2n3/3 + 2n2
Les deux matrices standard sont 100x100 et 1000x1000. Linpack était la référence pour les Cray et crayettes. Ses résultats sont exprimés en million d'instructions flottantes par seconde (Mflops).Pour apprécier ses résultats, il faut connaître précisément les conditions suivantes : Il fournit des informations sur l'unité centrale, les coprocesseurs vectoriels et le compilateur Fortran. Il n'est pas normalisé.8.3.6 Boucles de Livermore

Les boucles de Livermore (Lawrence Livermore loops) ou noyaux fortran de Livermore (Livermore Fortran kernels) sont faits de 24 boucles de calcul numérique issues de différents domaines de la physique. Leur auteur est F.H. McMahon, du Lawrence Livermore national laboratory (É.U.). Il les a collectées et y a intégré les outils de mesure du temps. Ces boucles sont de longueurs diverses, de quelques lignes à une page de code source. Les résultats sont obtenus en Mflops pour chaque boucle et pour trois longueurs de vecteurs.

8.3.7 SSPBS Stanford Small Programs Benchmark Set

Pendant le développement des premiers systèmes RISC dans les universités de Stanford et de Berkeley, John Hennessy et Peter Nye ont collecté de petits programmes d'une page ou moins. Ils ont servi aux premières mesures comparées de CISC et de RISC. Depuis ils ont été réunis en un programme composite écrit en C qui contient huit programmes qui traitent des tours d'Hanoï, les huit reines, une multiplication de matrices d'entiers, un puzzle, un tri rapide, un tri bulle, un tri arborescent, une multiplication de matrices de nombres en virgule flottante et une transformation de Fourier rapide. Il n'y a pas de méthode d'agrégation de ces résultats.

8.3.8 Le crible d'Ératosthène

Il s'agit d'un de premiers bancs d'essais pour les PC. Il détermine les nombres premiers par la technique du crible, en général jusqu'à 8192. Il a quelques caractéristiques inhabituelles : 33 pour cent des adressages sont immédiats, il n'a pas de boucle TANT QUE, 50 pour cent des instructions sont des contrôles de boucles et tous les opérandes sont entiers. Il ne peut pas être considéré comme un bon test mais comme cela a été écrit : «La performance du crible a plus vendu de compilateurs de certaines entreprises qu'aucun autre banc d'essai».

8.3.9 Doduc

Il est l'œuvre de Nhuan Doduc alors chez Framentec. C'est un programme de 5300 lignes écrit en Fortran, extrait d'une application de simulation par la méthode de Monte Carlo. Il fournit des informations sur le processeur, sur l'unité de calcul en virgule flottante, sur le compilateur Fortran et son optimalité, sur la précision de calcul et la gestion des mémoires caches. Il ne touche pas aux coprocesseurs vectoriels. Le Doduc a été repris dans les jeux SPEC ci-dessous. Nhuan Doduc continue à avoir une activité importante en matière de bancs d'essais

8.3.10 SPEC Systems Performance Evaluation Cooperative effort et aussi
    Standard Performance Evaluation Corporation

C'est une tentative de grande ampleur. Les fondateurs de SPEC sont Apollo, Hewlett-Packard, MIPS et Sun, rejoints plus tard par AT&T, Bull, CDC, Compaq, Data General, DEC, Dupont, Fujitsu, IBM, Intel, Intergraph, Motorola, NCR, Siemens Nixdorf, Silicon Graphics, Solbourne, Stardent, Unisys etc.

Cette association est née de la perception des insuffisances de la plupart des bancs d'essais dont la petite taille ne peut pas représenter des programmes réels. Cela est d'autant plus vrai que les mémoires cache ont une influence très différente selon que les boucles des programme sont courtes ou longues. Par ailleurs on avait constaté que la diffusion de certains bancs d'essais avait un effet pervers. Les fournisseurs de compilateurs adaptaient leurs produits aux bancs d'essais qui devaient être utilisés. C'était particulièrement le cas pour la manipulation de chaînes en vue du Dhrystone.

L'objectif de SPEC est de collecter, standardiser et distribuer un grand nombre de programmes qui pourront être utilisés comme bancs d'essais. C'est un travail important dans la mesure où plusieurs programmes utilisés pour cela comme yacc et nroff d'Unix sont sous licence.
SPEC publie la revue SPEC Newsletter.

La première livraison payante de SPEC a été faite en octobre 1989, sous la forme de dix programmes dont la liste suit. À partir de leurs résultats individuels, une évaluation globale était obtenue par moyenne géométrique des résultats partiels sous le nom de SPECmark. Plus le nombre de specmarks est élevé, plus grandes sont les performances de la machine.

LES DIX PROGRAMMES DE SPEC 89
NOM OBJET LANGAGE DONNÉES
gcc 
espresso 
spice 2g6 
doduc 
nasa7 
li 
eqntott 
matrix300 
fpppp 
tomcatv
générateur de compilateur C 
simulateur de PLA 
simulateur de circuits analogiques 
Monte Carlo
noyaux numériques
interpréteur Lisp 
fonctions de commutation 
multiplications de matrices 
équations de Maxwell 
calcul vectoriel parallélisable
C

Fortran 
Fortran 
Fortran


Fortran 
Fortran 
Fortran
entiers 
entiers 
flottants 
flottants 
flottants 
entiers 
entiers 
flottants 
flottants 
flottants
(note : PLA veut dire Programmable logic array)

En janvier 1992, le Specmark n'était déjà plus d'actualité. On avait constaté comme ç'avait été le cas pour d'autres bancs que des fournisseurs optimisaient les codes produits par leurs compilateurs en fonction des éléments constitutifs de Specmark. C'était d'autant plus facile que, contrairement à des bancs divers, le SPEC est standardisé. L'adaptateur joue sur du velours. On dit que l'un d'eux a réussi à multiplier par dix ses résultats pour le module Matrix300.

Pour éviter en partie au moins ces effets fâcheux, l'association Spec a mis sur le marché les SPEC92 sous la forme de SPECInt (Int pour integer) constitué de 6 programmes et de SPECFP (FP pour floating point) constitué de 14 programmes.

Comparaison entre Specs :
Exemples
SPECMARKS
SPECINTS
SPECFPS
RS 6000/560
90
43
143
HP 750
78
51
100
Le HP750, moins bien noté en specmarks, serait mieux adapté aux travaux de gestion menés en entiers.

Le microprocesseur Intel 80486DX4 cadencé à 100MHz était crédité de 51,4 Specint. Toutefois, l'Afuu, cohérente dans son raisonnement, relève qu'il ne s'agit toujours que des performances des unités centrales, hors entrées sorties.

De nouvelles versions sont sorties en 1995 sous des formes plus détaillées : SPECint_base95, SPECint95, SPECfp_base95, SPECfp95. Spec estime que ses bancs d'essais ont une durée de vie de l'ordre de 3 ans.
Quelques détails sur SPEC95. Il fournit les performances en rapidité et en débit. En rapidité pour une tâche ou combien de tâches peuvent être exécutées par unité de temps. Il est donné pour un processeur unique, pour des multiprocesseurs symétriques et pour des grappes (cf. chapitre 11).

Le «CINT95 suite», écrit en C, est formé de huit bancs de manipulation d'entiers :
099.go       intelligence artificielle, jeu de go;
124.m88ksim  simulateur de circuit intégré, exécute le programme de test;
126.gcc      nouvelle version de gcc, construit du code SPARC;
129.compress compresse et décompresse un fichier en mémoire;
130.li       interpréteur de LISP;
132.ijpeg    compression et décompression graphique;
134.perl     manipule des chaînes (construction d'anagrammes) et des nombres premiers en Perl;
147.vortex   programme de base de données.

On en déduit :

SPECint95            moyenne géométrique des temps des huit bancs compilés le plus efficacement possible;
SPECint_base95       moyenne géométrique des temps des huit bancs compilés normalement;
SPECint_rate95       moyenne géométrique des débits des huit bancs compilés le plus efficacement possible;
SPECint_rate_base95  moyenne géométrique des débits des huit bancs compilés normalement.

Le «CFP95 suite», écrit en FORTRAN est formée de dix bancs de calcul en virgule flottante :
101.tomcatv  programme de construction de mailles;
102.swim     modèle d'eau peu profonde avec une grille 1024 x 1024;
103.su2cor   physique quantique, simulation de Monte Carlo;
104.hydro2d  astrophysique, équation de Navier Stokes;
107.mgrid    résolution multigrille dans un champ de potentiel 3D;
110.applu    équations aux dérivées partielles paraboliques et elliptiques;
125.turb3d   simulation d'une turbulence isotrope et homogène dans un cube;
141.apsi     diffusion de polluants atmosphériques selon la température et le vent;
145.fpppp    chimie quantique;
146.wave5    physique des plasmas, simulation d'une particule électromagnétique.On en déduit :
SPECfp95,
SPECfp_base95
SPECfp_rate95
SPECfp_rate_base95respectivement dans les mêmes conditions que les précédents.

Intel utilise Specint95 pour comparer ses processeurs.
  Pentium II 233MHz Pentium II
266MHz
Pentium II 300MHz Pentium II 333MHz Pentium II 350MHz Pentium II 400MHz Pentium II 450MHz
SPECint95
9,38
10,7
11,9
13,0
13,9
15,8
17,2
Tous les Pentium II ont un cache L2 de 512 Ko.

Exemple de résultats obtenus avec Spec95.

Le banc SPECint95 fournit un élément de comparaison pour les performances du processeur, de la mémoire et du compilateur pour le calcul intensif sur 32 bits. Ces résultats sont obtenus pour les processeurs ci-dessus en utilisant des systèmes bien conçus. En conséquence, le test n'est garanti que pour le processeur seul. L'acheteur d'un système complet trouvera toujours un résultat différent.

Le lecteur intéressé par les productions de SPEC se reportera utilement à
http://www.specbench.org/
Il y trouvera les dernières nouvelles sur ces bancs d'essais (par exemple SPEC CPU95 a été retiré en avril 2000, remplacé par SPEC CPU2000).

Quelques bancs d'essais :

Pour les processeurs :
SPEC95 entier + virgule flottante;
CINT92 entier;
CFP92  virgule flottante;
CPUMark32;
CINT CPU entiers intensif;
Norton SI32;
«Byte benchmark» de la revue Byte.

Pour les opérations en virgule flottante :
SPECfp*95;
3D graphique, partie du banc de Norton Multimedia;
3D WinBench* 98;
FPUmark WinMark Test.

Pour les superordinateurs :
Le jeu de programmes scientifiques du «Perfect Club».

Pour les systèmes :
SYSmark*32 pour Windows95;
SYSmarkNT;
Winstone* 98 Business Scores Winstone 98 High End Scores;
MacBench pour les MacIntosh.

Venant de Spec :
SDM UNIX Software Development Workloads;
SFS System level file server (NFS) workload;

Pour le multimédia :
Intel Media Benchmark;
Norton* Multimedia Benchmark pour Windows95.

Des évaluateurs de charge de travail (workload) :
SDM UNIX Software Development Workloads;
SFS System level file server (NFS) workload;
SPEChpc96 High-performance computing benchmarks.

Plus spécialisés encore :
les bancs d'essais pour transactions TPC-A, TPC-B et TPC-C du Transaction Processing Council;
les bancs d'essai pour le traitement d'images et la vision, Abingdon Cross, CMU IP Suite, DARPA IU Benchmark.

On rencontre aussi :
MATMULT arithmétique entière sur des tableaux multidimensionnels;
PUZZLE calculs récursifs et indexation de tableaux;
SIEVE qui est le crible d'Ératosthène.

Le logiciel CPUID n'est pas un banc d'essai, il donne nombre de renseignements sur le provesseur et les cacges.

Note sur l'arithmétique employée dans les bancs d'essais

Selon les bancs d'essais, le lecteur constate que l'agrégation des résultats partiels est faite par moyenne arithmétique ou moyenne géométrique des valeurs.

La moyenne arithmétique convient si la machine doit être utilisée dans les mêmes proportions que les programmes du banc d'essai. Ce n'est jamais le cas.

La moyenne géométrique convient pour comparer deux machines quand on utilise un rapport de durées pour chaque élément du banc.

.

Questionnaire

Conservatoire national des arts et métiers
Architectures des systèmes informatiques
CHAPITRE 8
Complexité, Puissance et Variabilité
Année 2002-2003