Alors, quels sont les cœurs de processeur logique (par opposition aux cœurs de processeur physique)?

49

Je googler sur la façon dont je pourrais trouver le nombre de processeurs dans une machine et j'ai trouvé quelques messages mais je suis confus que certains ont mentionné que vous obtenez les cœurs logiques vs noyaux physiques , etc.
Alors , quelle est la différence entre les cœurs logiques et physiques et est y a-t-il moyen de ne récupérer que les cœurs physiques? Ou est-il judicieux d'inclure des cœurs logiques dans notre décompte?

Jim
la source

Réponses:

63

Les cœurs physiques ne sont que des cœurs physiques au sein de la CPU. Les noyaux logiques sont les capacités d'un seul noyau à faire 2 choses ou plus simultanément. Cela découle de la capacité des premiers processeurs Pentium 4 à effectuer ce que l’on appelle Hyper Threading (HTT) .

C'était un peu un jeu qui se jouait, où les sous-composants du noyau n'étaient pas utilisés pour certains types d'instructions, alors qu'une autre instruction longue aurait pu être exécutée. Ainsi, le processeur pourrait en fait fonctionner simultanément sur 2 choses.

Les nouveaux cœurs sont des processeurs à part entière, ils travaillent donc sur plusieurs choses simultanément, mais ils ne sont pas de véritables CPU, contrairement aux cœurs physiques. Dans cet article intitulé: Intel Core i5 et Core i7: le Mainstream Magnum Opus d’Intel, vous en saurez plus sur les limitations de la fonctionnalité hyperthreading par rapport aux capacités physiques du noyau sur tomshardware .

Vous pouvez voir le détail de votre boîte en utilisant la lscpucommande:

$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                4
Thread(s) per core:    2
Core(s) per socket:    2
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 37
Stepping:              5
CPU MHz:               2667.000
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3

Dans ce qui précède, mon ordinateur portable Intel i5 dispose de 4 "processeurs" au total

CPU (s): 4

dont il y a 2 noyaux physiques

Noyau par prise: 2

dont chacun peut exécuter jusqu'à 2 threads

Fil (s) par âme: 2

en même temps. Ces threads sont les capacités logiques du noyau.

slm
la source
Je n'ai pas lscpu. Y at-il un outil alternatif?
Jim
1
Les informations brutes qui lscpuutilise est exposée ici: cat /proc/cpuinfo. Quel est ton OS?
slm
1
@ThomasWeller - voyez mon autre A'er ici - unix.stackexchange.com/questions/113544/… .
slm
1
Core(s) per socketfois Thread(s) per core: 2= CPU(s): 4? Correct?
user3019105
1
@ user3019105 - correct
slm
13

Les cœurs physiques sont le nombre de cœurs physiques, les composants matériels réels.

Les cœurs logiques sont le nombre de cœurs physiques multiplié par le nombre de threads pouvant s'exécuter sur chaque cœur grâce à l'utilisation de l'hyperthreading.

Par exemple, mon processeur à 4 cœurs exécute deux threads par cœur. J'ai donc 8 processeurs logiques.

cendre
la source
Ce nombre n’a donc de sens que si vous utilisez un processeur prenant en charge l’hyperthreading? Et qu'est-ce que cela signifie? Un seul thread occupera chaque unité centrale à la fois, alors? Que signifie ce nombre?
Jim
Alors, quel numéro devrais-je viser?
Jim
pas nécessairement, le multithreading simultané , par exemple, permet à deux threads d'être exécutés simultanément sur un même cœur. Il existe également de nombreux autres avantages.
cendres
Je regarde le nombre de cœurs physiques.
cendres
1

La technologie Hyperthreading permet à un seul cœur de processeur physique de se comporter comme deux processeurs logiques.

Ainsi, un seul cœur de processeur peut exécuter simultanément deux threads indépendants .

Intel fait référence à un processeur physique en tant que socket.

L'hyperthreading fait en sorte qu'un processeur physique se comporte comme s'il avait deux processeurs physiques, appelés processeurs logiques. Pourquoi?

Bien que l'hyperthreading ne double pas les performances d'un système, il peut augmenter ces performances en utilisant mieux les ressources inactives, ce qui permet d'augmenter le débit de certains types de charges de travail importants. Une application qui s'exécute sur un processeur logique d'un cœur occupé peut attendre un peu plus de la moitié du débit qu'elle obtient en s'exécutant seule sur un processeur non hyperthread.


Sommaire


Processeur physique sont que nous pouvons voir et est tombé.

Le processeur logique est comme un noyau physique agissant comme deux noyaux physiques

Johnny Blaze
la source
Lien busted à vmware doc.
slm
0
$ sudo dmidecode |egrep "Socket Designation: Proc|((Thread|Core) Count)"
Socket Designation: Proc 1
        Core Count: 14
        Thread Count: 28
Socket Designation: Proc 2
        Core Count: 14
        Thread Count: 28

Deux prises. Chaque socket a 14 cœurs physiques. Chaque noyau a deux fils (28/14). Le nombre total d'unités de traitement "cpus" logiques ou logiques est de 56 (c'est ce que "top" et certaines autres commandes indiqueraient sous forme de nombre de "cpus").

Tagar
la source
Ce qui me dérange, c’est que sur mon i3-3220 avec votre approche, j’obtiens le nombre de cœurs 2 et le nombre de threads 2 (= 4), mais lscpu shows CPUs 4 and threads per 2 (=8) but lshw -C cpu` affiche 16 cpu logiques numérotés 0 - 15
Elder Geek le
dmidecode interprète ce qui se trouve dans le BIOS. Vous ne savez pas exactement ce qui ne va pas dans votre cas. Par exemple, l'hyperthreading peut être désactivé dans le BIOS ou quelque chose du genre. lscpu et lshw sont des commandes de système d'exploitation. Indiquez donc ce que le noyau de système d'exploitation a reconnu. Les spécifications Intel pour votre processeur indiquent 2 cœurs 4 threads.
Tagar
Le fait d’avoir désactivé l’hyperthreading n’aurait-il pas pour résultat moins de cœurs logiques que plus?
Elder Geek
J'ai compris que vous aviez 2 cœurs 2 threads rapportés par dmidecode au lieu de 2 cœurs 4 threads, nombre réel de threads / cœurs i3-3220. Donc c'est plus petit. Et ce n'était qu'une hypothèse, je ne sais pas si l'hyperthreading est désactivé dans le BIOS ou non.
Tagar
Il semble que la lscpusortie soit mal interprétée et que le nombre total de threads est en réalité de 4, mais "lshw -C cpu` affiche les 16 processeurs logiques" Je ne sais pas trop quoi en penser.
Elder Geek