J'ai l'impression que l'hyperthreading n'est pas activé sur mon pc. J'ai jeté un coup d'oeil dans /proc/cpuinfo
et il est décrit que la fratrie a le même nombre que les cœurs de processeur. Cela signifie que l'hyperthreading n'est pas activé. Comment puis-je l'activer?
Entrées partielles de /proc/cpuinfo
:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
stepping : 6
cpu MHz : 2997.000
cache size : 6144 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
/ sys/bus/cpu/devices/cpu */topology/thread_siblings_list montre la disposition des cœurs et des hyperthreads. Pour faciliter la visualisation, je vous recommande d'utiliser la commande lstopo, à installer avec:
Sudo apt-get install hwloc
et courir avec:
lstopo
Mon bureau ivybridge dispose de 4 processeurs; chacun a un hyperthread, nous obtenons donc un diagramme avec les cœurs P # 0..3 et chacun a deux PU (l'un d'entre eux étant l'hyperthread):
Si vous voulez juste une version texte de cette sortie, utilisez:
lstopo -
Exécutez top
dans un terminal, appuyez sur le numéro 1
de votre clavier pour afficher la charge par cpu dans l’en-tête. Combien de cpus y sont décrits?
Si elles sont le double des cœurs réels de votre CPU, l’hyperthreading fonctionne comme il se doit.
Pour détecter si vous utilisez l'hyperthreading (autrement dit la technologie Intel Hyperthreading), vous pouvez utiliser dmidecode .
Dans un terminal:
Sudo dmidecode > /tmp/dmidecode.txt
gksudo gedit /tmp/dmidecode.txt
Recherchez une valeur de statut remplie, activée (indiquée ci-dessous entre * ... *), c'est-à-dire "activée" signifie que l'hyperthreading est actif.
Physical CPU
Handle 0x000C, DMI type 4, 32 bytes
Processor Information
Socket Designation: Socket 1 CPU 1
Type: Central Processor
Family: Xeon
Manufacturer: GenuineIntel
ID: 43 0F 00 00 01 03 00 00
Signature: Type 0, Family 15, Model 4, Stepping 3
Flags:
FPU (Floating-point unit on-chip)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
Version: Intel Xeon
Voltage: 1.5 V
External Clock: 200 MHz
Max Speed: 4000 MHz
Current Speed: 3800 MHz
Status: *Populated, Enabled*
Upgrade: ZIF Socket
L1 Cache Handle: 0x0004
L2 Cache Handle: 0x0005
L3 Cache Handle: Not Provided
Dans une CPU logique hyperthreaded, vous verrez une valeur Status de non peuplée (indiquée ci-dessous entre * ... *):
Handle 0x000D, DMI type 4, 32 bytes
Processor Information
Socket Designation: Socket 2 CPU 2
Type: Unknown
Family: Unknown
Manufacturer: Not Specified
ID: 00 00 00 00 00 00 00 00
Version: Not Specified
Voltage: 1.5 V
External Clock: 200 MHz
Max Speed: 4000 MHz
Current Speed: 3800 MHz
Status: *Unpopulated*
Upgrade: ZIF Socket
L1 Cache Handle: 0x0006
L2 Cache Handle: 0x0007
L3 Cache Handle: Not Provided
dans le résultat de dmidecode, vous pouvez obtenir quelque chose comme
Core Count: 6
Core Enabled: 6
Thread Count: 12
sur les serveurs avec hyper thread défini sur ON
ou
Core Count: 6
Core Enabled: 6
Thread Count: 6
sur ceux réglés sur OFF