Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Journal : Le dual core : faussement nouveau ?

Posté par farib () le 18 avril 2005
On commence à voir fleurir sur les sites d'info généralistes (clubic...) des tests des nouveaux pékat dual-core d'Intel.
Et nos joyeux drilles de constater que les gains sont pas terribles du tout, sur les applications grand public. (en gros, le FX55 bouffe toujours le P4EE toutes options)

On leur a expliqué que le SMP était quand même une technologie pas trop nouvelle ?

Sinon, question plus générale, pourrait-il y avoir une possibilité d'optimiser le SMP pour les processeurs dual core: par exemple, peut-on profiter d'une vitesse de communication accrue entre deux dies d'un même processeur ? Ou bien le scheduler d'un noyau est-il tellement complexe à écrire qu'il faudra des années pour en tirer avantage ?

> Lire le journal (5 commentaires, moyenne: 6,4).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

À la pointe de l'info

Posté par Jak () le 18/04/2005 à 11:30. (lien). Évalué à 8.

> On leur a expliqué que le SMP était quand même une technologie pas trop nouvelle ?

Pas sûr qu'ils aient les capacités de comprendre (moi, méchant ? Juste un peu :) ).

De plus, les processeurs multicores existent déjà depuis pas mal d'années chez IBM, par exemple. Il se trouve juste qu'aujourd'hui, les processeurs grand-public vont utiliser ce principe pour améliorer les performances en environnements multitâches/multithreadés afin de compenser les difficultés actuelles des fondeurs à faire monter leurs puces en fréquence.

Ensuite, il y a plusieurs façons de faire la liaison interprocesseur, qui ne dépend que de la technologie déjà utilisée sur les gammes modifiées. Par exemple, sur les P4 d'Intel, le gain par arpport à une solution avec 2 processeurs distincts est très faible, car les processeurs se partagent un bus externe (ou un truc du genre), alors que les Athlon 64 d'AMD sont reliés, comme sur une solution à 2 processeurs, par un bus HyperTransport(TM), mais interne, ce qui améliore un chouia plus les performances du bicore.
En ce qui concerne l'amélioration des performances, je doute qu'il y ait quoique ce soit de particulier à faire au niveau du gestionnaire de processus noyau, mais bon, je n'y connaît pas grand'chose en SMP.

--
« Le savoir, n'est-ce pas, est un bien précieux. Trop précieux pour ne pas être partagé. »
- Battologio d'Epanalepse, in De Cape et de Crocs, Acte VII (Ayroles & Masbou)
  • [^]Re: À la pointe de l'info

    Posté par Nicolas Boulay () le 19/04/2005 à 08:46. (lien). Évalué à 4.

    sisi il y a beaucoup à faire niveau du scheduler ! Notement pour éviter de pourrir les caches !

    Ainsi, Linux est Numa aware (bi-opteron, RAM séparé), Smt aware (Tous les niveaux de caches commun), Smp aware (RAM commune mais pas les caches)

Scheduler domains

Posté par Thomas Petazzoni (page perso, ) le 18/04/2005 à 12:03. (lien). Évalué à 10.

Salut,

D'après ce que j'ai compris, l'ordonnanceur du noyau dispose déjà d'un mécanisme appellé «scheduling domains», qui permet de prendre en compte la répartition des coeurs dans un systèmes : sur une même puce, sur deux puces différentes dans la même machine, sur des puces différentes dans des machines différentes (NUMA). Et en fonction de ça, l'ordonnanceur peut optimiser le placement des threads. Ainsi, au lieu de changer brutalement un thread d'un processeur à un autre, il peut essayer de le conserver dans le même processeur, pour bénéficier des effets de cache communs dans une architecture multi-coeur.

Voir paragraphe 5.7.2 de http://josh.trancesoftware.com/linux/linux_cpu_scheduler.pdf(...)

Thomas

  • [^]Re: Scheduler domains

    Posté par Lucas (page perso, ) le 18/04/2005 à 13:06. (lien). Évalué à 5.

    Selon les sources, ca s'appelle aussi "CPU affinity" (c'est la terminologie FreeBSD notamment). C'est utile dans le cadre du SMP (éviter de migrer un process d'un CPU à un autre pour conserver le cache), dans le cas du SMT (Symmetric Multi Threading, cad HyperThreading chez Intel), et dans le cas des procs multi-cores.

  • [^]Re: Scheduler domains

    Posté par Christophe Fergeau () le 19/04/2005 à 08:32. (lien). Évalué à 5.

    « Ainsi, au lieu de changer brutalement un thread d'un processeur à un autre, il peut essayer de le conserver dans le même processeur, pour bénéficier des effets de cache communs dans une architecture multi-coeur. »

    En ce qui concerne les procs dual-core d'intel, a priori ils n'ont rien du tout en commun, pas même le cache (c'est 1 Mo pour chaque coeur), l'article à ce sujet sur hardware.fr dit même :
    « lorsque les deux core ont besoin de communiquer, on a l’obligation de passer par le chipset de la carte mère, comme c’est le cas d’une véritable configuration bi-processeur chez Intel. »

    Le scheduler ne doit donc pas pouvoir faire grand chose de "rusé" sur ces procs là (hors hyperthreading).

Revenir en haut de page