complexité, puissance et variabilité introduction

24
Complexité, Puissance et Variabilité INTRODUCTION · Complexité d'une chose qui a un nombre de composants ou d'états tels que l'on ne peut pas l'appréhender clairement dans sa totalité ou dans tous ses aspects. Complexe : "Qui contient, qui réunit plusieurs éléments différents. Couramment: difficile à cause de sa complication" (Littré). · Puissance d'un appareil, capable de fournir un travail. Puissance : "Caract₩re de ce qui peut beaucoup, de ce qui produit de grands effets. Virtualité, possibilité" (Littré). · Variabilité d'un phénoméne ou d'une situation qui présente simultanément des aspects distincts à des observateurs différemment placés ou, en for₤ant le trait, autant d'aspects que de lieux d'observation. Variabilité : "Caract₩re de ce qui est variable" (Littré). Variable : "Qui est susceptible de se modifier, de changer souvent au cours d'une durée. Qui prend, peut prendre plusieurs valeurs distinctes. Qui prend plusieurs valeurs, plusieurs aspects, selon les cas individuels, ou selon les circonstances" (Littré).

Upload: joylyn

Post on 21-Jan-2016

43 views

Category:

Documents


2 download

DESCRIPTION

Complexité, Puissance et Variabilité INTRODUCTION · Complexité d'une chose qui a un nombre de composants ou d'états tels que l'on ne peut pas l'appréhender clairement dans sa totalité ou dans tous ses aspects. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Complexité, Puissance et Variabilité  INTRODUCTION

Complexité, Puissance et Variabilité

INTRODUCTION

· Complexité d'une chose qui a un nombre de composants ou d'états tels que l'on ne peut pas l'appréhender clairement dans sa totalité ou dans tous ses aspects. Complexe : "Qui contient, qui réunit plusieurs éléments différents. Couramment: difficile à cause de sa complication" (Littré).

· Puissance d'un appareil, capable de fournir un travail. Puissance : "Caract₩re de ce qui peut beaucoup, de ce qui produit de grands effets. Virtualité, possibilité" (Littré).

· Variabilité d'un phénoméne ou d'une situation qui présente simultanément des aspects distincts à des observateurs différemment placés ou, en for₤ant le trait, autant d'aspects que de lieux d'observation.

Variabilité : "Caract₩re de ce qui est variable" (Littré). Variable : "Qui est susceptible de se modifier, de changer souvent au cours d'une durée. Qui prend, peut prendre plusieurs valeurs distinctes. Qui prend plusieurs valeurs, plusieurs aspects, selon les cas individuels, ou selon les circonstances" (Littré).

Page 2: Complexité, Puissance et Variabilité  INTRODUCTION

Ce chapitre contient :

Un aper₤u sur la complexité d'un syst₩me informatique.

Un examen de ce que l'on peut nommer puissance d'un syst₩me informatique et les évaluations que l'on fait des unités centrales.

Quelques techniques d'évaluation des performances.

Un aperéu de l'influence du logiciel sur les performances.

LA COMPLEXITE D'UN SYSTEME INFORMATIQUE

Cette complexité tient autant au nombre de composants qu'à la difficulté induite par leur organisation et par leur fonctionnement en l'absence de lois générales et de r₩gles de construction ou d'agrégation.

Cette complexité a pour origine le nombre de composants et le nombre d'états distincts que le tout peut avoir.

· Le nombre de composants est grand : de quelques dizaines à des milliers de circuits intégrés et chacun d'entre eux contient de mille à quelques millions de composants dans des structures microscopiques.

Page 3: Complexité, Puissance et Variabilité  INTRODUCTION

· Le nombre d'états distincts est considérablement plus important puisqu'il proc₩de de la combinatoire.

Un banc de mémoire de 1 Mo a 223 points de mémoire ou bits (220 octets x 23 bits/octet). A raison de 2 états pour chacun, il a 2^(223) états distincts, soit exactement 2 8*1000*1024 ou encore plus de 108000000 d'états.

Ces nombres sont à comparer au nombre d'atomes de l'univers inférieur à 1080 en l'état de nos connaissances; au temps écoulé depuis le "Big Bang" est d'environ 14 ou 15 milliards d'années.

A raison de 365 jours par an, et 24 heures de 3600 secondes par jour, le nombre de secondes est de moins de 15*10^9*(1/3)*24*3600 ou encore moins de 1020 microsecondes ou encore 1023 nanosecondes.

Nous n'avons que quelques 109 neurones dans notre cerveau.

De telles possibilités ne sont pas directement maîtrisables en raison de nos limites perceptives et intellectuelles et de l'absence déjà citée d'une ou de quelques lois qui en régiraient l'organisation

La complexité des algorithmes fait l'objet de trés nombreuses études.

La complexité d'un programme est abordée trés briévement plus loin.

Page 4: Complexité, Puissance et Variabilité  INTRODUCTION

LA PUISSANCE D'UN SYSTEME INFORMATIQUE

Puissance intrins₩que et puissance effective

Cette puissance n'a aucun rapport avec la puissance définie en mécanique, en électricité et dans les autres domaines de la physique où l'on dispose de lois de conservation sous la forme d'équations de bilan avec leurs dimensions, leurs r₩gles de composition et de calcul.

Alors qu'il existe en mécanique des seuils minimaux pour vaincre un frottement ou la composante due à la pesanteur pour mouvoir une charge, il n'y a pas de tels seuils en informatique (sauf à avoir une alimentation électrique insuffisante).

Tout ordinateur, pourvu qu'il poss₩de des caractéristiques minimales (n'importe quelle machine existante les a en surabondance) peut résoudre tout probl₩me relevant de la classe des fonctions calculables.

Mais la théorie, non seulement ne dit pas le temps nécessaire à leur exécution, mais n'aborde aucune considération de temps hors le fait de distinguer s'il est fini ou infini.

Page 5: Complexité, Puissance et Variabilité  INTRODUCTION

La PUISSANCE INTRINSEQUE, c'est-à-dire la capacitéé à exécuter un algorithme. Elle est infinie au sens où tout algorithme bien conéu résolvant un probléme calculable et bien exprimé dans un langage adéquat, sera exécuté sur n'importe quel ordinateur en un temps fini.

Les PUISSANCES EFFECTIVES, que l'on doit nommer PERFORMANCES relévent des : · temps de réponse(latency), ou temps d'exécution ou encore temps de latence. C'est le temps qui s'écoule entre le début et la fin d'un travail. Les deux premiers sont utilisés pour l'exécution d'un programme ou d'une tâche. Le temps de latence est appliqué à la mémoire et aux entrées et sorties.

· débit (throughput) ou bande passante (bandwith). C'est la quantité de travail faite par unité de temps. Le débit est appliqué à l'exécution des programmes ou des tâches. La bande passante s'applique à la mémoire et parfois aux entrées et sorties.

· utilisation ou plutôt temps d'utilisation ou temps d'occupation ou taux d'occupation. C'est le temps ou la fraction de temps pendant lequel un composant ou un systéme est occupé. Il n'intéresse plus grand monde.

· volume disponible que l'on oublie le plus souvent, c'est la capacité à enregistrer le volume des données.

Page 6: Complexité, Puissance et Variabilité  INTRODUCTION

On distinguera en plus, comme dans un pipeline:

· l'aptitude à traiter un seul probléme posé ou encore rapidité d'un traitement. Elle sera grossiérement inverse du temps d'exécution, dépendra de la mémoire installée, de son utilisation, du processeur, du langage, de l'algorithme utilisé etc. Elle intéresse l'utilisateur qui attend le résultat,

· l'aptitude à traiter plusieurs problémes en séquence ou en quasi simultanéité. Il s'agit ici d'un débit global. Il intéresse le gestionnaire d'une machine mise à disposition de plusieurs utilisateurs.

En ce domaine, tout va étre accumulation d'inventions, d'expériences, de recettes et de tours de main avec deux conséquences ici aussi :

· un foisonnement des solutions architecturales sans qu'aucune ne s'impose réellement comme supérieure aux autres dans tous ses aspects,

· la nécessité de recourir, pour organiser la réflexion et l'étude, à des instruments extérieurs à la théorie. Le premier est le temps physique. Les autres sont de simples outils de classement comme des relations d'ordre, des grilles ou des repéres.

Page 7: Complexité, Puissance et Variabilité  INTRODUCTION

Commenéons par les mesures de temps qui ne supposent rien sur la nature ou la qualité de ce qui sera mesuré.

· Le temps de réponse ou temps d'exécution ou temps de latence. C'est le temps écoulé entre le début et l'achévement d'une tâche quelconque. On en a vu un exemple dans la caractérisation des mémoires.

· Le débit ou largeur de bande ou bande passante. C'est la nombre d'opérations (ou quantité de travail) faites par unité de temps. On en a vu un exemple dans la caractérisation des pipelines.

Rapidité relative. On dit qu'une machine X est n% plus rapide qu'une machine Y. Cette rapidité relative est définie en termes de temps d'exécution Tx et Ty. On peut utiliser les performances Px et Py définies comme les inverses des temps d'exécution. Une machine X est n% plus rapide qu'une machine Y quand :

Si Y est plus rapide que X, n est négatif. On doit dire alors en toute rigueur que Y est -n% plus rapide que X.

Page 8: Complexité, Puissance et Variabilité  INTRODUCTION

De l'augmentation des performances ou la loi d'Amdahl

Pour augmenter la performance globale d'un systéme, il faut augmenter la performance d'un ou de plusieurs de ses composants.

Certains composants sont plus fréquemment utilisés que d'autres. Il paraît donc raisonnable de consacrer la dépense possible à améliorer les composants les plus utilisés plutôt que ceux qui le sont moins.

La loi d'Amdahl définit l'augmentation de la performance que l'on peut attendre d'une amélioration du systéme.

Utilisons les conventions suivantes :

.T est le temps d'exécution d'un programme sur le systéme d'origine.

.Ta est le temps d'exécution du méme programme sur le systéme amélioré.

.f est la fraction du temps T concernée par l'amélioration.

.Ac est l'accélération obtenue par l'amélioration.

L'accélération obtenue est alors :

La loi d'Amdahl dit que la limite de l'accélération est :

Page 9: Complexité, Puissance et Variabilité  INTRODUCTION

La loi d'Amdahl dit que la limite de l'accélération est :

Exemple d'application : Supposons que pour un programme rédigé en langage donné, le pourcentage du temps passé à faire du calcul vectoriel soit de 70%. Supposons de plus que la rédaction de cette partie en assembleur rende son exécution deux fois plus rapide, les calculs seraient les mémes pour un câblage qui rendrait l'exécution deux fois plus rapide.

Introduction du coût Considérons des systémes Si dont les coûts respectifs sont Ci. Considérons des programmes Pj. Considérons le temps d'exécution Tji du programme Pj sur la machine Si. Le rapport coût à performance du programme Pj sur la machine Si est

Page 10: Complexité, Puissance et Variabilité  INTRODUCTION

Une valeur plus grande de CiTji signifie · une moins grande performance à coût donné, · un coût plus élevé à performance donnée. Exemple de deux systémes C1 de coût 6000 F et C2 de coût 14000 F et deux programmes P1 s'exécutant en 25 s sur C1 et 10 s sur C2, P2 s'exécutant en 40 s sur P1 et 12 s sur P2 :

Systéme Coût T1i (s) CiTj1 Tj2 CiT2i

S1 6000 2,5 15000 4,0 24000S2 14000 1,0 14000 1,2 16800

Les évaluations des unités centrales Les nombres de base sont relatifs :

· à l'unité centrale,

.le temps de cycle de l'horloge Th, c'est-à-dire le nombre de secondes par cycle. Il est l'inverse de la fréquence d'horloge Fh, nombre de cycles par seconde.

.le nombre de cycles par instruction CPI, nombre moyen de cycles d'horloge de l'UC, nécessaire pour exécuter une instruction. Si l'on réalise une partition dans le jeu d'instructions, on pourra noter CPIi le nombre moyen de cycles de l'UC nécessaires pour exécuter une instruction de type i.

Page 11: Complexité, Puissance et Variabilité  INTRODUCTION

· au programme,

.le nombre de cycles pour un programme C, nombre de cycles d'horloge consommés en UC par le programme.

.le nombre d'instructions du programme I, nombre d'instructions exécutées par le programme. Si l'on réalise une partition dans le jeu d'instructions, on pourra noter Ii le nombre d'instructions de type i exécutées par le programme.

CPI = C/I et s'il y a partition : CPI = {S(CPIixIi)}/I = S (CPIi x Ii/I), les sommes sont de i = 1 à n.

Le nombre de cycles pour le programme est alors : C = S CPIixIi

CPI dépend d'autres composants du systéme, tels que la mémoire et les caches, il ne peut pas étre calculé à partir des tables de cycles par instruction. Le faire aboutit à des évaluations optimistes. Il faut le faire à partir de mesures.

Le temps total d'UC peut étre calculé par : · l'utilisation des cycles par programme et du temps de cycle T = CxTh = C/Fh. · en utilisant le nombre total d'instructions, le nombre de cycles par instruction et le temps de cycle, on écrit : T = IxCPIxTh = IxCPI/Fh

Avec la partition du jeu d'instructions, on écrit : T = S (CPIixIi)xTh

Page 12: Complexité, Puissance et Variabilité  INTRODUCTION

Exemple d'évaluation : Dans une UC nommée A, le branchement se fait par le positionnement d'une condition en une instruction, le test et le branchement lui-méme sont faits en une autre instruction. Le branchement demande ainsi deux cycles. Toutes les autres instructions demandent un cycle. Dans un programme 20% des instructions sont de tels branchements et 20% sont des placements de conditions. Le temps de cycle de A est 25% plus rapide que le temps de cycle d'une autre unité centrale nommée B qui fait le positionnement de la condition et le branchement en une seule instruction. Cette instruction demande deux cycles, toutes les autres se font en un cycle. Quelle est l'UC la plus rapide é

Calculons : CPI(A) = S CPIixIi/I = 0,2x2 + 0,2x1 + 0,6x1 = 1,20 T(A) = 1,2xI(A)xTh(A)

Comme l'unité centrale B ne demande pas de positionnement de condition, il y a 20 % d'instructions en moins, 25% (20/80) sont des branchements qui demandent 2 cycles.

CPI(B) = S CPIixIi/I = 0,25x2 +0,75x1 = 1,25

T(B) = (0,8xI(A))x1,25x(1,25xTh(A))

T(B)/T(A) = (1,25x1,25x0,8)/1,2 = 1,04

A est donc 4% plus rapide que B.

Page 13: Complexité, Puissance et Variabilité  INTRODUCTION

QUELQUES TECHNIQUES D'EVALUATION DES 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.

· celles qui sont attachées à la machine en tant que telle avec le MIPS,

· celles qui se fondent sur un probléme à traiter unique ou multiple plus ou moins représentatif de celui des utilisations avec les BANCS D'ESSAIS.

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, le bus par son débit et son temps de latence, la mémoire,les supports externes disques et disquettes

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.

Page 14: Complexité, Puissance et Variabilité  INTRODUCTION

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 prend une machine unique de référence, par exemple un Vax de DEC pour le MIPS-VAX. que l'on verra plus loin, et on lui comparera les autres machines.

· On construit des bancs d'essais qui doivent étre neutres vis-à-vis des fournisseurs tout en étant significatifs pour les utilisateurs. L'AFUU en a recensé environ 200. Les différents Mips Voici quelques-unes des significations convenues :

· Le MIPS de base ; donné sans autre indication, il n'a aucune signification pratique.

· Le MIPS originel ou d'origine (native MIPS) ; il faut, pour l'apprécier, connaître le programme sur lequel il a été établi et le nombre moyen d'instructions produites par ligne de langage de haut niveau, puisqu'on exclut le cas de la programmation en assembleur.

· Le MIPS créte (peak MIPS) ; cette expression est utilisée pour des processeurs et non pour des systémes complets. Le MIPS créte sera le nombre d'instructions les plus courtes dans le meilleur cas d'utilisation des autres ressources. Cet idéal n'est jamais atteint.

· Le MIPS-Vax a été beaucoup employé. C'était un facteur relatif au Vax 11/780, qui n'avait de sens que si l'on précisait le langage, le systéme du Vax (Unix ou VMS), son compilateur et le type de programme.

Page 15: Complexité, Puissance et Variabilité  INTRODUCTION

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. A 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, etc

Page 16: Complexité, Puissance et Variabilité  INTRODUCTION

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.

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.

Page 17: Complexité, Puissance et Variabilité  INTRODUCTION

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.

IBM PC XT sans coprocesseur (8088) 10Intel 80486 à 25 MHz 6100 Intel 80486 à 33 MHz 8200

Page 18: Complexité, Puissance et Variabilité  INTRODUCTION

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.

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 : · construit une matrice carrée, A et un vecteur b, les remplissant de valeurs aléatoires. · résoud le systéme d'équations Ax = b au moyen de l'algorithme d'élimination de Gauss. · le calcul des temps est fait à l'intérieur de Linpack. · pour une matrice nxn, le nombre d'opérations en virgule flottante est

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).

Page 19: Complexité, Puissance et Variabilité  INTRODUCTION

Boucles de Livermore Les Boucles de Livermore (Lawrence Livermore Loops) ou Noyaux Fortran de Livermore (Livermore Fortran Kernels), sont constitués 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 (E.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.

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 d'arbre, 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.

Le crible d'Eratosthé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'y a pas de boucle TANT QUE, 50 pour cent des instructions sont des contrôles de boucles, tous les opérandes sont entiers bien sûr. 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".

Page 20: Complexité, Puissance et Variabilité  INTRODUCTION

Doduc Il est l'œuvre de Nhuan Doduc alors chez Framentec. C'est un programme de 5300 lignes, écrit en Fortran. Il a été 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 le jeu SPEC ci-dessous. Nhuan Doduc continue à avoir une activité importante en matiére de bancs d'essais

PEC Systems Performance Evaluation Cooperative effort

C'est une tentative de grande ampleur. Les fondateurs de SPEC sont Apollo, Hewlett-Packard, MIPS et Sun, plus tard arrivérent AT&T, Bull, CDC, Compaq, Data General, DEC, Dupont, Fujitsu, IBM, Intel, Intergraph, Motorola, NCR, Siemens Nixdorf, Silicon Graphics, Solbourne, Stardent et Unisys entre autres. Cette association est née de la perception des insuffisances de la plupart des bancs d'essais, dont la petite taille fait qu'ils ne peuvent 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 le programme est court ou long. 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.

Page 21: Complexité, Puissance et Variabilité  INTRODUCTION

L'INFLUENCE DU LANGAGE DE PROGRAMMATION ET DES COMPILATEURS

On a rédigé avec le méme soin quelques programmes et observé leurs temps d'exécution sur le méme Vax. Au plus la note est élevée, meilleure est la performance. La performance en C a été prise pour base.

Programme en Bliss en C en Pascal Recherche 1,24 1,0 0,70 Crible 0,63 1,0 0,80 Puzzle 0,77 1,0 0,73 Ackermann 1,20 1,0 0,80

Bliss est le langage de base de la série VAX. La seule relation d'ordre observable est que Pascal est toujours moins efficace que C. Les dispersions de performances sont importantes. On en déduit que la part des compilateurs dans les temps d'exécution est importante.

CONCLUSION SUR LES BANCS D'ESSAIS

· Les fabricants continueront à les utiliser parcequ'ils fournissent un outil neutre en apparence, et dont la capacité de comparaison trés forte. · Méme la version du banc est l'objet d'attentions. Il a suffit qu'IBM choisisse la version 1.1 du Dhrystone pour évaluer son modéle RISC RS6000 pour que Motorola et DEC s'alignent sur la méme version.

Page 22: Complexité, Puissance et Variabilité  INTRODUCTION

DEUX MOYENS DE COMPARAISON

Premiére méthode, Electre. Elle date des années 1960. Elle a été inventée par Bernard Roy et appliquée à ses débuts par la société d'électronique et de mathématiques appliquées (SEMA) pour évaluer conjointement des projets de recherche. Des logiciels de mise en œuvre sont disponibles à l'université Dauphine.

En usage manuel, la liste des caractéres est portée sur un axe horizontal. Chaque point de l'axe porte une verticale graduée selon les appréciations possibles du caractére. Ensuite chaque projet est repéré par la ligne brisée qui joint ses points représentatifs.

Si l'on doit choisir entre 1 et chacun des deux autres, on procédera en relevant séparément les caractéres pour lesquels 1 surclasse un autre projet et les caractéres où 1 est surclassé par le méme. La nature des caractéres sera alors prise en compte pour chacun de ces deux relevés. Exemple : si 1 surclasse 2 en termes de délai d'attente et si la politique choisie est le court terme, 2 sera éliminé par rapport à 1.

Page 23: Complexité, Puissance et Variabilité  INTRODUCTION

Deuxiéme méthode, le graphe de Phil Kiviat. Elle date des années 1970. Ses prémisses sont les mémes que ceux de la précédente. La présentation est différente. Au lieu d'aligner les caractéres sur un axe, ils sont portés par des rayons issus d'un point. Le reste de la démarche est libre.

Page 24: Complexité, Puissance et Variabilité  INTRODUCTION

LA VARIABILITE

Elle ne vise pas la diversité des architectures d'ordinateurs différents mais les caractéres propres à chacun d'eux.