Pourquoi mon Intel i7-920 affiche-t-il 8 cœurs au lieu de 4 cœurs?

20

Quand je vais au gestionnaire de tâches, je vois 8 processeurs mais je sais que j'en ai 4. Pourquoi?

texte alternatif

Patrick Desjardins
la source

Réponses:

39

Hyperthreading .

L'hyper-threading supprime la commutation de tâches des systèmes d'exploitation. Normalement, un système d'exploitation doit gérer les processus de planification sur différents CPU et s'assurer que chaque tâche qui s'exécute sur le système a sa juste part, mais pas trop (si quelque chose d'autre le veut) du CPU.

L'hyper-threading est un moyen d'éloigner ce 2ème processus de partage de tâches du système d'exploitation, du moins pour un petit moment. La raison en est que le processeur peut basculer la tâche beaucoup plus rapidement que le système d'exploitation ne peut le lui dire. Ainsi, en présentant deux processeurs logiques alors qu'il n'y en a qu'un seul, le système d'exploitation ne doit effectuer que deux fois moins d'opérations de commutation de tâches, mais davantage d'ordonnancement CPU. Mais le résultat net est censé être une machine plus rapide dans les opérations multitâches.

Les avantages réels de cela varient considérablement en fonction de la charge de travail que vous effectuez. Pour la plupart des gens, il n'y a aucun mal à le laisser allumé ou à l'éteindre. 4 vs 8 threads, c'est comme choisir entre une ferrari ou une lamborghini pour les particuliers.

Cependant, dans les scénarios de serveur, cela peut faire une grande différence. Par exemple, les hyperviseurs peuvent souvent obtenir une augmentation importante de la vitesse grâce à l'utilisation de l'hyperthreading, car ils ont des exigences très strictes de planification du processeur.

Cependant, les serveurs SQL n'obtiennent souvent pas cette augmentation, car il est souvent préférable d'avoir quatre threads "grands" que 8 threads de taille "moyenne".

Mark Henderson
la source
3
En tant que super utilisateur très apprécié, je vous suggère de revoir cette réponse et d' ajouter plus de détails . Le lien n'aide pas à expliquer quoi que ce soit Hyperthreading ou ce qu'il fait.
James Mertz
11

Que mon ami est hyper-threading .

L'hyperthreading est une forme de multithreading simultané qui tire parti de l'architecture super scalaire. Plusieurs instructions fonctionnant en parallèle sur des données distinctes. Ils apparaissent à l'OS comme deux processeurs, ainsi l'OS peut planifier deux processus à la fois . De plus, deux processus ou plus peuvent utiliser les mêmes ressources. Si un processus échoue, les ressources peuvent être facilement réaffectées. Le système d'exploitation doit prendre en charge le multithreading simultané (SMT).

James Mertz
la source
1
La «beauté» est discutable. Dans certains cas, l'hyperthreading détruit les performances.
MDMarra
Tout dépend de ce que vous faites
prestomation
Vous êtes heureux maintenant? : D (n'essayait pas de provoquer une guerre des trolls ou quoi que ce soit)
1
"Ça, mon ami, c'est de l'hyper-filetage dans toute sa beauté!" :)
J'irai avec la version beauté. Bien que j'aie entendu des rapports d'impacts négatifs sur les performances dans certaines circonstances, je n'ai pas pu dupliquer. L'hyperthreading a toujours été plus rapide pour moi. Même sous ses formes anciennes.
Brian Knoblauch du
6

La famille i7 est un processeur quadricœur doté de 8 threads. Les quadricœurs normaux ont 4 threads, et comme l'hyper-threading est activé, votre ordinateur reconnaît ces 8 threads comme processeurs.

tcables
la source