![]()
|
|
![]() Un vent de panique souffle sur les benchmarks depuis qu'Apple a sorti ses G4 bi-processeurs. Cette sortie est-elle une manoeuvre marketing ou permet-elle aux applications de délivrer une puissance réellement supérieure ? À mon avis, beaucoup de commentateurs ont perdu leur sang froid et leur bon sens en voulant à tout prix donner des chiffres sur le sujet. Alors STOP ! Reprenons tout depuis de début... Avant C'est pourquoi tous les résultats publiés sur ce site sont le fruit de programmes développés personnellement (de manière à pouvoir contrôler exactement comment ils sont fabriqués et ce qu'ils mesurent), dans des secteurs proches (calcul scientifique, traitement d'images, etc.), et le plus souvent sur des calculs scalaires (ie n'utilisant ni MMX, ni SSE, ni 3DNow! ni Altivec) sauf mention contraire. De plus, des commentaires indiquant la portée des tests réalisés sont souvent donnés, afin d'éviter d'extrapoler trop loin les chiffres. Ainsi le portage et la comparaison des résultats sont facilités, et les conclusions tirées ont une réelle signification. Maintenant, offusquons nous un
peu. Offusquons nous que certains disent
préférer un processeur à 1000 MHz
par rapport à deux processeurs à 500 MHz
parce que tous les programmes n'en tireront pas parti.
Certes il est vrai en général qu'un processeur
à 1000 MHz fait tourner les anciens programmes
plus vite qu'un processeur à 500 MHz, et que
pour tirer parti de deux processeurs il faut
réécrire le programme, à condition que
cela soit possible et de savoir comment le faire. ![]() ![]() Pour un processeur à 1000 MHz, nous supposerons que le calcul s'exécute exactement deux fois plus vite, soit en 1/3T au lieu de 2/3T. Par contre l'accès mémoire pose problème. Seul le premier, voire le second niveau de mémoire cache peut monter à la même fréquence. Mais souvent, si le cache de niveau 2 est lui aussi à 1000 MHz, il est deux fois plus petit, ce qui induit des accès à la mémoire RAM, beaucoup plus lente... Nous supposerons par simplification que les lectures et écritures en mémoire prennent le même temps sur le processeur à 1000 MHz que sur le 500 MHz. La figure suivante illustre ce fait : ![]() ![]() Résultat : le processeur deux fois plus rapide, payé à prix d'or, ne permet de gagner qu'un tiers du temps de calcul total. Un bi-processeur comme le nouveau G4 d'Apple, solidement équipé d'1 Mo de mémoire cache de niveau 2 par processeur, se comporte dans notre cas (données indépendantes) comme deux unités de calcul indépendantes. On peut assigner la moitié des calculs à un processeur, l'autre moitié à l'autre, ce qui est illustré comme suit : ![]() ![]() Résultat : le traitement de la totalité des données a effectivement pris deux fois moins de temps. Bien sûr, avec des tailles de cache différentes, des tailles de données différentes, etc. on peut faire varier les rapports de performance à loisir, mais la 'loi d'Amdahl' reste la même : améliorer seulement une partie de l'architecture conduit asymptotiquement à une impasse. Quand on sait trouver facilement le parallélisme, autant l'utiliser, même avec une architecture moins performante : on peut y gagner beaucoup (facteur 2) ou y perdre un peu moins (1/3T dans notre exemple). Maintenant Après |
|