Performances pratiques : single-thread et multi-thread

Mathematica est un logiciel puissant dont l’étendue va de la résolution d’équations et d’algorithmes mathématiques divers, au véritable langage de programmation. Le benchmark que nous avons finalement retenu a été écrit par Karl Unterkofler et utilise la fonctionnalité notebook.

Les trois paliers qui se distinguent ici s’établissent uniquement en fonction de la fréquence processeur. En bon représentant des applications scientifiques, Mathematica est parfaitement insensible à la gestion simultanée de multiples thread.

Winrar nous permet de faire exactement le même constat. Il s’agit pourtant a priori du type d’application qui pourrait potentiellement bénéficier de la disponibilité de plusieurs processeurs logiques ou physiques (peu de dépendances entre les données traitées), mais le fait que le débit du disque dur agisse comme un goulot d’étranglement rend peut-être ce portage peu utile. En effet, le gain lié au passage de 2.8 GHz à 3.8 GHz n’est pas orgasmique.
Passons à l’encodage vidéo.

Premier résultat intéressant. L’encodage WMV 9 profite de l’activation de l’Hyperthreading sur un CPU single-core, et plus largement encore des CPU dual-core. Notre Pentium D 820 parvient ainsi à effacer sans soucis le Pentium 4 570. Dans ce contexte, la surprise c’est la mauvaise performance du Pentium XE. Visiblement, Hyperthreading + dual-core ne font pas bon ménage ici.
Le coupable est en fait le même que celui qui faisait baisser les performances avec certaines applications, lors du lancement de l’Hyperthreading : le scheduler de Windows XP. Comme son nom l’indique, il s’agit d’un organisateur, dont le rôle est de prendre en charge les différentes requêtes provenant de tous les programmes exécutés simultanément, et de les répartir de la manière la plus optimisée en fonction des ressources processeur disponibles (temps CPU).
Dans la situation présente, ce scheduler est clairement en cause, car prises séparément, l’augmentation physique et logique du nombre de core améliorent les performances sous ce logiciel. Le Pentium XE est donc victime de ce qu’on peut considérer comme un bug du scheduler de Windows XP (et on le voit, le contre-coup est particulièrement important). Soit Windows Media Encoder prend en compte la gestion des 4 threads mais le scheduler est complètement dépassé par la tâche, soit WME ne sait gérer que deux threads et le scheduler les répartis sur un seul core, pendant que le second core se fait un expresso.
En l’attente de Longhorn qui devrait résoudre le problème, la solution passera ici par une mise à jour logicielle de Windows Media Encoder 9.

L’analyse sera exactement la même ici, preuve que ce problème touche déjà potentiellement un certain nombre d’applications optimisées multi-thread. Sinon, notez que sur ce type d’application un Pentium D 830 (cadencé à 3 GHz) aura a peu près le même niveau de performances que le Pentium 4 570 (3.8 GHz). En d’autres termes, la disponibilité de deux vrais cores physiques derrière les 2 cores logiques (également gérés par le P4 570) permet bien un gros gain de performances quand l’application est optimisée comme il faut, ce n’est donc pas (toujours) un gâchis de transistors.
Terminons au niveau encodage avec l’audio via l’Ogg Vorbis.

Classiquement, l’encodage audio tire rarement profit du multi-thread et l’on retrouve donc ici les trois paliers de fréquence. Il est d’ailleurs surprenant, par comparaison avec l’encodage vidéo, que la majorité des encodeurs audio ne tirent pas partit (ou d’avantage partit) de la disponibilité de plusieurs processeurs logiques ou physiques.
Prem's
Article très interessant; conclusion, je vais garder mon 'antique' p4C 3.2Ghz de 2 ans d'age encore un peu...il reste finalement très bien pour l'usage que j'en fais (jeux + surfe + programmation...)
Dommage qu'il y ait autant des fautes (genre 9255 au lieu de 955) à 5 heures du mat c'est chaud pour ratrapper l'erreur de tete!!!
Mais c'est quand meme une preview de la mort qui tue.
pas mal mais j'aurais aimé un petit peu plus de details sur les temperatures en idle et en charge des ces µp, histoires de se faire une tchite idée
"En bon représentant des applications scientifiques, Mathematica est parfaitement insensible à la gestion simultanée de multiples thread."
Moi ça me paraît étrange qu'une application comme Mathématica ne tire pas partie du Multithreading.
Bravo !
)
Et les tableaux ont tous des unités ! (
j'ai bien fait d'attendre et de prendre un A64...
on va l'aider un peu pour le 2 en trop
Ben, ou est l'erreur ?

ca existe un i9255X ?

ha tiens, ca a changé
Excellent article
Finalement (apres avoir bien dormi) je commence à le regretter un peu ce chipset de furieux (i9255X)