5 votes

TaskManager, HyperThreading : Quels processeurs sont réels et lesquels sont HT ?

Lorsque j'ouvre le Gestionnaire des tâches, je vois 8 processeurs dans le graphique des processeurs, car j'ai un Core i7 avec 4 cœurs + HyperThreading (fonctionnant sous Win7 x64).

Lorsque je définis l'affinité du processus, j'obtiens une liste de CPU 0 à CPU 7.

Comment puis-je savoir quels processeurs sont des cœurs réels et quels sont les cœurs HT ?

J'ai entendu dire que 0/2/4/6 sont les vrais cœurs et donc que le premier, troisième, cinquième et septième graphique du CPU sont les vrais.

C'est vrai ?

5voto

afrazier Points 22479

À l'origine, Intel voulait que les implémenteurs de BIOS énumèrent d'abord tous les processeurs physiques avant les processeurs logiques (HT). La raison en était que si un système d'exploitation prenait en charge moins de processeurs que ceux disponibles dans le système, il verrait d'abord les cœurs physiques avant de voir les cœurs logiques. Ce n'est plus un problème aujourd'hui, mais à l'époque où il était possible d'acheter un Pentium 4 double cœur avec HT, de le mettre dans un système Windows 2000 Pro et de ne voir que 2 CPU quoi qu'il arrive, c'était un vrai souci. Je doute que la mise en œuvre s'en écarte. Donc, dans votre cas, il est plus probable que les CPU 0-3 soient les cœurs physiques et que les CPU 4-7 soient les cœurs HT.

Si vous avez des problèmes avec votre propre logiciel multithread qui ne s'équilibre pas bien à cause de la HT, alors vous voudrez probablement limiter votre nombre de threads aux seuls cœurs physiques, ou travailler sur vos algorithmes/structures de données pour qu'ils soient plus favorables à la HT. GetLogicalProcessorInformation est l'appel API que vous devez consulter pour déterminer le nombre de noyaux physiques et logiques. Cette page a un exemple de code pour déterminer le nombre de CPUs physiques.

Rendre votre code plus convivial est une toute autre affaire et ne convient pas vraiment à SuperUser. :-)

0voto

AndrejaKo Points 16847

Le but des cœurs HT est de les faire apparaître au système comme s'ils étaient de vrais processeurs. Je ne suis pas sûr à 100%, mais je pense qu'il n'y a aucun moyen de savoir lesquels sont réels et lesquels sont HT.

De plus, si je comprends bien la HT, elle fonctionne en utilisant la puissance de traitement libre du cœur réel. Si le cœur HT exécute un processus exigeant et que le cœur réel ne le fait pas, la puissance de traitement sera utilisée par HT. Néanmoins, cela pourrait conduire à des problèmes où les processus les plus exigeants pourraient être confiés aux cœurs réels et à leurs cœurs HT et où certains cœurs réels exécuteraient des tâches de fond.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X