Re: Hyperthread

Page principale

Répondre à ce message
Auteur: Patrice Karatchentzeff
Date:  
À: guilde
Sujet: Re: Hyperthread
Le Tue, 21 Oct 2003 17:09:54 +0200
Patrick.Begou@??? écrivait :

[...]

> Je suis en train de construire un (petit) cluster basé sur du P4
> 2.8Ghz sur carte mère ASUS P4P800. Il n'est pas encore en production.
> Le kernel est un kernel SMP de RedHat que je n'ai pas encore touché
> (Kernel 2.4.20-20.7bigmem) pour une Redhat 7.3. Le P4 est vu comme un
> bi-processeur (cpu0 et cpu1). J'ai fait quelques tests avec le
> compilateur Intel.
>
> Avec un processus par noeud de calcul, j'ai un cpu à 80-90% et le
> second qui reste autour de 10 à 20 % en moyenne. Mais c'est du PVM
> avec communications en éthernet gigabit.
>
> Si je place deux processus par noeud, je monte à 90-100% sur cpu0 et
> cpu1 et le temps elapsed augmente de 40% (j'utilise donc mieux la
> machine car les noeuds sont dédiés a ce calcul).
>
> MAIS:
> - Il n'y a aucune directive openMP dans le code
> - Je suis loin d'avoir testé les différentes options du compilo
> - j'utilise une version beta 8.0 du compilo.
>
> Voila pour un début d'expérience avec les P4s. Par rapport aux anciens
> AMD 1500+ j'ai déjà un speedup supérieur à 2 avec un processus/noeud,
> encore supérieur avec 2 processus/noeud (temps elapsed/nb processus).
> Reste à affiner la configuration rapidement pour le mettre en service.


Là, tu manques un peu d'information...

L'hyperthreading, cela correspond, pour ceux qui ne connaissent pas, à
pouvoir parallèliser les parties d'un processus dans un pipeline qui ne
sont pas utilisés par le processeur. Grosso modo, c'est du threading
« du pauvre », puisque l'on ne peut pas vraiment parallèliser deux
processus, mais seulement les parties du ou des processus qui ne sont
pas communes (on utilise donc à fond un cpu).

Par contre, cela n'est efficace que pour les processus qui ne sont pas
redondant : typiquement, si on lance deux processus identiques (cas
classique de calcul), on reste dans la cas du pipeline puisque la place
dans le cpu est déjà occupé...

Donc, dans ton cas, si tu y gagnes, c'est que tu es dans le cas où les
processus sont suffisamment variés pour ne pas pas être trop redondant
de façon à pouvoir utiliser l'hyper-threading...

Perso, tous les tests que j'ai pu faire dessus étaient non concluant :
j'avais un cpu et les résultats étaient ceux d'un seul cpu : un bi-pro
est largement supérieur...

PK


-- 
Patrice KARATCHENTZEFF
STMicroelectronics           Tel:  04-76-92-67-96
850, rue Jean Monnet
38926 CROLLES Cedex,  Courriel: patrice.karatchentzeff-alplog@???