Re: Hyperthread

Top Page

Reply to this message
Author: J-Ph.H
Date:  
To: Patrice Karatchentzeff
CC: Guilde
Subject: Re: Hyperthread
Le Mercredi 22 Octobre 2003 07:02, Patrice Karatchentzeff a écrit :

pour faire bref :
http://www.hardware.fr/articles/445/page6.html

> 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