Boinc - Equipe de la Science

Site de la miniteam Equipe de la Science composante de L’Alliance Francophone sur la grille de calcul partagé et bénévole BOINC.
Accueil du site > 5-Tutoriaux > Comment sont calculés les benchmarks ?
  • Article

  Comment sont calculés les benchmarks ?

lundi 11 juin 2007, par pas93

C’est quoi un Benchmarks ? Et comment sont-ils calculés ?

Comment sont calculés les benchmarks ?

Whetstone’ est le nom des benchmarks qui apparaîssent sur la page [Show computers] en tant que ‘Measured floating point speed’. ‘Dhrystone’ est le nom des benchmarks utilisés pour déterminer ‘Measured integer speed’. Les flottants peuvent avoir des parties fractionnéess (tel 1,48283 ou 3,141592) ; les integers sont des nombres entiers tels 1, 2, 938283 ou 2004. Whetstone effectue 8 groupes différents de tests (répétés bien sûr), mesure le temps qu’il a fallu pour les effectuer, et produit un nombre : [opérations effectuées]/[temps]. Ces tests utilisent tous des opérations mathématiques en virgule flottante pour tester le CPU. Certaines d’entre elles sont des opérations simples (addition, multiplication, division) alors que d’autres calculent des fonctions trigonometriques et exponentielles (sinus, cosinus, tangente, exponentielle). Dhrystone vérifie les opérations répétées sur les nombres entiers et plusieurs opérations de manipulations de fichiers du système d’exploitation.

Aucun de ces tests ne vérifie réellement la rapidité et la qualité avec lesquelles un système peut accéder à la mémoire, et Seti@home, par exemple, y accède beaucoup.

Voici un exemple d’une mémoire entraînant un retard : Un processeur Pentium 4 de n’importe quelle vitesse peut calculer le sinus d’un angle en environ 170 moments de son horloge interne. Il pourrait avoir calculé 170 additions régulières de nombres premiers dans le même temps.

Mais si le processeur voulait faire une addition de nombres premiers ailleurs que dans la mémoire (say it was working on a table of numbers), il devrait attendre pas moins de 260 moments pour que ce nombre premier lui soit livré. Aisni une opération mal synchronisée de nombres premiers et de mémoire prendrait beaucoup plus de temps qu’un calcul de sinus.

C’est là que les processeur Celeron peuvent vraiment ralentir. Les Pentium ont beaucoup de dispositifs qui permettent de prédire quand le processeur obtiendra de la mémoire, et commence à l’obtenir longtemps avant que le processeur ne commence réellement à calculer avec. Ainsi il y a beaucoup moins de reard pour la plupart des opérations de mémoire.

Pourquoi le ’temps prévu’ peut être faux ?

Chaque WU envoyé à votre ordinateur inclut un nombre estimé de calculs en virgule flottante (FP). BOINC divise ce nombre par le benchmark en virgule flottantes (Whetstone) pour estimer la durée nécessaire pour terminer la WU. Les WU SETI@home estiment un nombre actuel aux environs de 27.9 trillion (10^12), néanmoins le nombre d’opérations en virgule flottante varie grandement ce qui explique pourquoi les WU prennent des temps différents pour être traitées. SETI@home utilise presque toutes les math de précision unique en virgule flottante, alors que Whetstone utilise toutes les maths en double précision. Sur les processeurs Intel x86 processors la différence de calcul entre les simple et les doubles n’est pas trés importante.

SETI@home utilise principalement des additions, des soustractions, des multiplications et des divisions. Environ 20% de son temps est utilisé pour des opérations de trigonométrie. Presque tout le temps de benchmarks Whetstone est utilisé pour de la trigonométrie.

La rapidité d’accès à la mémoire et la trigonométrie sont les deux principales causes de différences de concordances entre les résultats des benchmarks et la vitesse de traitement des WU seti@home sur de nombreux systèmes.

Merci à Ben Herndon pour ces explications. Source