web-dev-qa-db-fra.com

Que sont les threads et que font-ils dans le processeur?

Je regardais les statistiques du processeur Intel Pentium e5700 .

Il a deux noyaux et deux fils. Que font les threads pour le processeur? Y at-il une relation entre le nombre de cœurs et le nombre de threads? A quoi servent les threads pour l'ensemble du système?

27
impossible3

Le nombre de cœurs est le nombre physique de cœurs sur la puce de la CPU, tandis que le nombre de threads est le nombre de threads d'application individuels pouvant être exécutés simultanément sur la CPU elle-même. Sans aucun matériel supplémentaire ou spécial, ceci est toujours égal au nombre de cœurs.

Certains processeurs Intel possèdent une fonctionnalité appelée hyperthreading , qui permet à un système d'exploitation pour voir le double de la quantité de cœurs logiques par noyau physique. Cela permet au système d’exploitation de programmer et d’exécuter deux fois plus de threads simultanément. Ainsi, dans le cas du processeur auquel je suis lié, il existe quatre cœurs physiques, mais huit logiques (vous pouvez donc exécuter simultanément huit threads).

Chaque application individuelle exécutée dans le système d'exploitation est mono-threadée ou multi-threadée (chaque thread est considéré comme une "sous-application"). Les applications à un seul thread ne requièrent qu'un seul thread pour s'exécuter sur le processeur, alors que les applications à plusieurs threads ont plusieurs sous-threads exécutés simultanément. Des cœurs supplémentaires, ou hyper-threading, permettent à plusieurs threads d'application de s'exécuter simultanément.

Cela permet aux applications multi-threadées ( non mono-threadées) de s'exécuter beaucoup plus rapidement, car plusieurs threads peuvent s'exécuter simultanément sur le processeur.


Juste une note finale, l’hyperthreading améliore les performances de certaines applications multithreads spécifiquement optimisées pour celui-ci (puisqu’il n’ya encore que la moitié du nombre de cœurs physiques car ils sont logiques). Dans certains cas, les applications peuvent s'exécuter plus rapidement avec l'hyperthreading désactivé (bien que de nombreuses applications en bénéficient ). Indépendamment de l'hyperthreading, une augmentation du nombre de cœurs physiques bénéficiera toujours aux applications multithread.

21
Breakthrough

Un "noyau" représente un sous-ensemble physique d'un processeur pouvant gérer lui-même le traitement, tandis qu'un "thread" correspond au nombre de processus que le processeur peut gérer à la fois. Intel a développé une technologie qu'ils appellent "hyper-threading". Cette technique permet à un noyau physique (qui ne serait normalement capable de gérer qu'un thread à la fois) de pouvoir désormais gérer deux threads simultanément.

Un thread est une tâche que le processeur doit gérer. Pour une explication simple, vous pouvez supposer que chaque application que vous ouvrez (telle que Paint, le bloc-notes, le lecteur multimédia) possède son propre thread. Cela ne signifie pas pour autant que vous puissiez uniquement ouvrir. Deux applications à la fois, tout simplement parce que le processeur et le système d'exploitation fonctionnent très rapidement pour "changer de threads" et gérer les besoins de chaque application ouverte. Vous obtiendrez simplement de meilleures performances avec plus de cœurs car vous pouvez désormais confier tout le travail à davantage de processeurs.

Par exemple, mon ordinateur de travail contient un i7. L'i7 a 4 cœurs physiques, mais chaque cœur peut faire de l'hyper-threading, ce qui permet à ce processeur de gérer 8 threads à la fois. Donc, si j'ouvre le gestionnaire de tâches, je verrai 8 cases pour l'échelle de performance du processeur.

Une règle générale est que plus de cœurs physiques sont meilleurs que plus de threads. Donc, si vous comparez un processeur qui a 4 cœurs et 4 threads, serait mieux que 2 cœurs 4 threads. Mais plus le nombre de threads que votre processeur peut gérer est performant, plus il fonctionnera en multitâche et pour certaines applications très intensives (montage vidéo, CAO, FAO, Compression, Cryptage, etc.) en soi, utiliseront plusieurs cœurs à la fois.

9
CenterOrbit