Performances mauvaises avec un BI-Xeon Core-duo
Le
octane
Bonjour,
j'ai une machine Bi-CPU, core duo:
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 2.80GHz
stepping : 8
cpu MHz : 2800.125
cache size : 2048 KB
Donc 4 CPU visibles du systeme.
J'ai des performances absolument decevantes des que je met en jeu le
multipro.
Je teste un calcul monoprocesseur, ca prend 20mn.
Je lance le meme calcul deux fois. Je vois bien 2 CPU sur les quatres
qui travaillent, mais le temps de calcul dure 35mn!! Les deux calculs
sont independants, ils travaillent chacun sur un CPU (sur deux core du
meme CPU ou sur deux CPU different, c'est pareil). Si je lance 4 fois
le calcul, chaque calcul dure 50mn!
Qu'est ce qui peut expliquer ca?
J'ai aussi des questions sur l'archi de ces Xeon core duo.
Le cache size est il partage entre chaque core, ou est il distinct?
L'acces a la RAM est il partage ou est il dedie?
Merci
j'ai une machine Bi-CPU, core duo:
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 2.80GHz
stepping : 8
cpu MHz : 2800.125
cache size : 2048 KB
Donc 4 CPU visibles du systeme.
J'ai des performances absolument decevantes des que je met en jeu le
multipro.
Je teste un calcul monoprocesseur, ca prend 20mn.
Je lance le meme calcul deux fois. Je vois bien 2 CPU sur les quatres
qui travaillent, mais le temps de calcul dure 35mn!! Les deux calculs
sont independants, ils travaillent chacun sur un CPU (sur deux core du
meme CPU ou sur deux CPU different, c'est pareil). Si je lance 4 fois
le calcul, chaque calcul dure 50mn!
Qu'est ce qui peut expliquer ca?
J'ai aussi des questions sur l'archi de ces Xeon core duo.
Le cache size est il partage entre chaque core, ou est il distinct?
L'acces a la RAM est il partage ou est il dedie?
Merci

Poser une question


Salut,
Je me rappelle quand je bossais dans une boite de développement que les
ingés avaient beaucoup de difficultés à adapter un logiciel écrit pour
monoprocesseur à du multi. Il leur fallait reécrire des bouts de softs,
utiliser des librairies différentes et recompiler le tout. Comme je n'étais
pas développeur mais électronicien, je n'en sais pas plus.
Toujours est-il qu'il arrivait fréquement qu'un soft tourne moins bien en
multi qu'en mono.
Tout cela me semblait être une mauvaise gestion du partage des calculs
entre les procs et bien d'autres raisons ( mise en commun des ressources)
qui m'échappent maintenant.
Il y des softs qui utilisent correctement le multi, c'est généralement
expliqué dans les docs.
Je me rappelle qu'avec des machines comme les silicon graphics par exemple,
quand le soft n'était pas adapté, on préférait lancer des bouts de calcul
sur chaque proc et reconstituer le tout à la fin, plutôt que de balancer
tout en multi.
Ce n'est pas une explication, mais cela confirme tes tests.
Philippe camus
monopro.
Si j'ai 4 CPU, le temps de chaque calcul doit etre identique que je
lance un, deux, trois ou quatre calculs. Si j'en lance 5, la, ca doit
commencer a decroitre.
Mais comment expliquer que lancer deux calculs monopro sur une machine
multipro augmente a ce point le temps de chaque calcul?
Le programme utilise-t-il des fichiers? Ca peut être une source de
contention si plusieurs instances du programme accèdent aux mêmes disques et
aux mêmes données.
La mémoire est elle suffisante? Y a-t-il du paging?
As tu observé ce qui se passe, avec un outil comme Process Explorer
(www.sysinternals.com)?
Mmmh, 2,8GHz avec 2Mo de cache (par CPU?) en F-4-8, c'est plutôt un Xeon
DP, stepping A0. Microarchitecture NetBurst comme les Pentium 4 et rien
a voire avec le Core Duo.
(quelle idée d'avoir choisi un nom pareil pour un processeur aussi...)
L'hyperthreading n'est pas activé? Ça devrait faire 8 processeurs sinon...
Bah ça me parait déjà pas mal, ça met moins de 40mn en tout cas.
Si le calcul est déjà limité par le débit mémoire (ou disque ou
réseau...), rajouter plus de processeurs n'avancera pas à grand-chose.
Quelle sorte de calcul est-ce?
Comme ce n'est pas un Xeon Core Duo, le cache est distinct à chaque
core. En fait c'est simplement deux processeurs juxtaposés dans la même
puce et reliés au même bus. Ça a des inconvénients par rapport à une
archi comme l'Opteron ou le Core 2 Duo, mais ça revient nettement moins
cher à fabriquer...
Partagé, c'est du SMP (symmetric multiprocessing).
Avec les Opteron c'est du NUMA (non-uniform memory access) où chaque
processeur possède une partie de la mémoire, qu'il peut partager avec
les autres processeurs. Les deux approches ont leurs avantages et leurs
inconvénients.
--
Sylvain
monopro.
Si j'ai 4 CPU, le temps de chaque calcul doit etre identique que je
lance un, deux, trois ou quatre calculs. Si j'en lance 5, la, ca doit
commencer a decroitre.
Mais comment expliquer que lancer deux calculs monopro sur une machine
multipro augmente a ce point le temps de chaque calcul?
------------------------
S'cuse, j'avais pas compris.
Philippe Camus