1. Introduction
Le multi-processeurs sous BeOS, intéressant ou pas ? Cela fait
quelques mois que la carte-mère Abit BP6 est disponible, et beaucoup
d'encre virtuelle a coulée à son sujet. Peu onéreuse (environ 1000 F)
et capable de faire du SMP avec deux "petits" Intel Celeron, la BP6
est la première carte-mère à mettre le multi-processeurs à la portée
de (presque) toutes les bourses. Pour peu que l'on possède un système
d'exploitation qui gère le SMP. C'est heureusement le cas de BeOS.
Mais qu'en est-il des performances et du gain apporté par le second
processeur ?
A lire les divers commentaires par-ci par-là, certains sont
enthousiastes, d'autres carrément déçus. Je pense que cette déception
vient d'une méconnaissance générale du fonctionnement du SMP.
Heureux possesseur d'une configuration basée sur une BP6, je me suis
amusé à faire quelques tests pour mettre en évidence les gains de
performances obtenus en configuration bi-processeur et en augmentant
la vitesse du bus système (overclock). Cette page vous expose les
résultats obtenus.
2. Configuration testée
- Carte-mère Abit BP6
- 2 processeurs Intel Celeron 466
- RAM 196 Mo
- Carte vidéo Asus V3400 (nVidia Riva TNT 16 Mo)
- Disque dur SCSI HP + carte SCSI Tekram DC390F
- BeOS 4.5.2
- Le reste importe peu !
3. Blade Encoder
Ce test consiste à lancer le codage d'un fichier WAV de 7,68 Mo au
format Mpeg Layer III, bitrate de 128 kbit/s, avec Blade Encoder
0.82. Ce dernier n'est pas optimisé pour le SMP. Le premier test
consiste simplement à lancer une occurence de Blade. Les tests
suivants lancent simultanément 2, 4 puis 8 occurences du
programme. Les temps reportés sont donnés par la commande "time".
Durant ce test, la carte-mère est parametrée de la façon suivante :
- Fréquence du bus : 83 Mhz (C466 = multiplicateur 7x)
- Fréquence raportée pour les processeurs : 582 Mhz
- Voltage pour les deux CPUs : 2,10 V
Voici les résultats :
|
1xblade
|
2xblade
|
4xblade
|
8xblade
|
1 CPU @ 582
|
0 mn 43,297
|
1 mn 26,293
|
2 mn 53,886
|
5 mn 50,946
|
2 CPU @ 582
|
0 mn 41,005
|
0 mn 41,087
|
1 mn 26,962
|
2 mn 57,275
|
Lorsqu'on lance une seule occurence de blade, les gains sont quasiment
insignifiants. C'est tout à fait normal, blade étant un programme
"monolithique" qui n'est pas adapté au multi-processeurs. En revanche,
dès qu'on lance plusieurs instances du programme, la différence se
fait sentir plus que nettement ! Le plus édifiant étant sans doute
quand on lance 2 instances de blade, ce qui ne met quasiment pas plus
de temps que pour une seule. Finalement, et tout "connement", le test
met en évidence qu'en configuration SMP on va quasiment aussi vite
qu'avec deux fois moins d'instances en mono-processeur. Pas mal non ?!
4. Blade Encoder, CL-Amp et GL-teapot
Ici, j'ai voulu un peu varier les plaisirs en testant l'incidence de
l'overclocking sur cette configuration et en utilisant d'autres
programmes en même temps que le codage. Le test consiste à coder le
même fichier avec une instance de blade, mais tout en lisant un
fichier MP3 avec CL-Amp 3.2 (débit du fichier = 256 kbit/s) et avec la
démo "GL Teapot" tournant sur le même bureau. Les trois configurations
de la carte-mère sont les suivantes :
- 600 Mhz = bus à 86 Mhz, voltage = 2,10V (non stable)
- 590 Mhz = bus à 85 Mhz, voltage = 2,10V
- 582 Mhz = bus à 83 Mhz, voltage = 2,10V
- 525 Mhz = bus à 75 Mhz, voltage = 2,05V
- 466 Mhz = bus à 66 Mhz, voltage = 2,00V (config par défaut)
Passons aux résultats dans lesquels j'indique le temps de codage,
comme dans le test précédent, mais également une fourchette
approximative du nombre de frames par secondes rapporté par "GL
Teapot" :
Mode
|
600 @ 86
|
590 @ 85
|
582 @ 83
|
525 @ 75
|
466 @ 66
|
1 CPU : résultats
|
1 mn 31,463
15-18 fps
|
1 mn 40,076
14-18 fps
|
1 mn 45,270
14-18 fps
|
1 mn 59,510
12-16 fps
|
2 mn 21,482
11-15 fps
|
1 CPU : gain overclock
|
35,35%
|
28,8%
|
25,6%
|
15,5%
|
-
|
2 CPU : résultats
|
0 mn 44,322
30-36 fps
|
0 mn 48,839
30-35 fps
|
0 mn 51,245
29-34 fps
|
0 mn 58,563
27-31 fps
|
1 mn 04,946
25-29 fps
|
2 CPU : gain overclock
|
31,76%
|
24,8%
|
21,0%
|
9,8%
|
-
|
Gain SMP
|
51,54%
|
51,2%
|
51,3%
|
51,0%
|
54,1%
|
Les lignes "Gain overclock" indiquent pour les fréquences supérieures
à 466 Mhz le gain réalisé en changeant la vitesse du bus ; la ligne
"Gain SMP" indique le gain réalisé lorsqu'on utilise les deux
processeurs.
5. Compilation et GL-teapot
Ce test mesure le temps qu'il faut pour compiler cdrecord 1.8a39
pendant que deux occurences de GL-Teapot tournent simultanément. Voici
les résultats :
Mode
|
590 @ 85
|
582 @ 83
|
525 @ 75
|
466 @ 66
|
1 CPU : résultats
|
4 mn 53,772
|
-
|
5 mn 31,679
|
6 mn 12,770
|
1 CPU : gain overclock
|
21,19%
|
-
|
11,0%
|
-
|
2 CPU : résultats
|
2 mn 30,212
|
-
|
2 mn 59,508
|
3 mn 18,068
|
2 CPU : gain overclock
|
24,2%
|
-
|
9,4%
|
-
|
Gain SMP
|
48,9%
|
-
|
45,9%
|
46,9%
|
6. Gogo
Gogo est un encodeur Mpeg Layer III dont la particularité est d'être
optimisé pour les machines en SMP. Il permet donc directement de
bénéficier de l'apport du second processeur. Le test consiste à mesure
le temps de codage pour un morceau (stéréo, 44.1 Khz) de 6 mn 51. J'ai
fait le calcul dans deux modes : tout d'abord un bitrate fixe de 160
Kbps, puis en 128 Kbps avec le "variable bitrate" activé, en qualité
"0".
Par ailleurs, j'indique également les résultats obtenus sur mon
ancienne configuration : carte-mère Abit BH6 équipée d'un Celeron 300A
fonctionnant à 450 Mhz (bus = 100 Mhz)
Configuration
|
160 kpbs
|
128 + vbr
|
BH6 450 Mhz @ 100 |
1 mn 46 |
3 mn 28 |
BP6 1 x 466 Mhz @ 66 |
2 mn 01 |
3 mn 36 |
BP6 1 x 525 Mhz @ 75 |
1 mn 48 |
3 mn 15 |
BP6 1 x 582 Mhz @ 83 |
1 mn 39 |
2 mn 53 |
BP6 1 x 590 Mhz @ 85 |
1 mn 36 |
2 mn 52 |
BP6 2 x 466 Mhz @ 66 |
1 mn 11 |
2 mn 31 |
BP6 2 x 525 Mhz @ 75 |
1 mn 05 |
2 mn 15 |
BP6 2 x 582 Mhz @ 83 |
0 mn 59 |
2 mn 02 |
BP6 2 x 590 Mhz @ 85 |
0 mn 58 |
1 mn 59 |
7. Conclusion
 |
Les tests ci-dessus gagneraient sans doute à être étoffés et complétés. Il
mettent cependant en évidence que l'apport d'un second processeur est loin
d'être dénué d'intérêt sous BeOS. Même si la plupart des programmes ne sont pas
optimisés SMP, le gain de performance devient très net lorsque plusieurs
programmes tournent : dans la plupart des cas, la vitesse est doublée.
L'overclock n'apporte pas de gain de performance aussi spectaculaire, certes,
mais demeure un moyen simple et gratuit pour améliorer les performances de la
machine. Avec toutefois quelques réserves :
-
l'augmentation de la vitesse du bus s'accompagne d'une augmentation de
la chaleur dégagée par les processeurs. Ce phénomène est amplifié si
l'on augmente également le voltage. Il faut donc prévoir un bon
système de ventilation pour les deux processeurs.
-
le mode 590 Mhz (bus à 85 Mhz) fonctionne parfaitement sous BeOs mais
pas du tout sous Ouindauze : ce dernier refuse de booter dans ce
mode.
-
au delà de 85 Mhz pour le bus, ma machine devient instable et BeOS se
"gèle" au bout de quelques minutes. Je suppose qu'il faudrait un
système de refroidissement plus poussé pour atteindre de telles
vitesses. J'ai testé deux modes à plus de 600 Mhz dans ces
conditions : bus à 87 et 88 Mhz. Avec un bus à 90 Mhz (622 Mhz),
c'est le plantage général avant même que BeOS ne puisse booter !
-
attention aux pertes de données pendant les tests de vitesses
extrêmes ! Si les plantages CPU paraissent sans gravité, c'est une
toute autre affaire pour les systèmes de fichiersJ'ai eu un problème
de corruption sur un filesysteme Be, et j'ai perdu la majeure partie
d'une partition ext2 Linux.
Il faut donc être prudent, mais l'amélioration des performances vaut bien qu'on
se creuse un peu la tête ! L'association du SMP et de l'overclock permet
d'obtenir un gain de performances vraiment exceptionnel. Si l'on reprend le
test 3, par exemple, la configuration deux processeurs à 590 Mhz va quasiment
2,5 fois plus vite que la configuration monoprocesseur à 466 Mhz !!!
 |
Informations complémentaires : Si vous désirez plus d'informations à propos de la BP6 ou du matériel
PC en général, voici quelques suggestions :
|
|
|