Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

At the end of this post is my /proc/cpuinfo.

I know the Physical cpu number is 2

grep 'physical id' /proc/cpuinfo|sort|uniq|wc -l
2 

But how many cores does each cpu have?

The 'cpu cores' shows it has 16 cores.

But use this command it shows there are only 8 cores totally.

grep 'core id' /proc/cpuinfo    
core id         : 16
core id         : 0
core id         : 17
core id         : 1
core id         : 25
core id         : 9
core id         : 26
core id         : 10

Displays the number of sibling CPUs on the same physical CPU for architectures which use hyper-threading. It's 16 on my machine. But there are 4 for physical 0 cpu, and 4 on physical 1 cpu. I really confused.

Can anybody help me?

Below is my /proc/cpuinfo

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 1
siblings    : 16
core id     : 16
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4803.77
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 0
siblings    : 16
core id     : 0
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4800.22
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor   : 2
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 1
siblings    : 16
core id     : 17
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4800.13
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 0
siblings    : 16
core id     : 1
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4800.21
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor   : 4
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 1
siblings    : 16
core id     : 25
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4800.14
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor   : 5
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 0
siblings    : 16
core id     : 9
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4800.19
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor   : 6
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 1
siblings    : 16
core id     : 26
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4800.13
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor   : 7
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 0
siblings    : 16
core id     : 10
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4800.20
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:
share|improve this question

migrated from stackoverflow.com Jan 14 '12 at 8:02

This question came from our site for professional and enthusiast programmers.

3 Answers 3

As per Intels' specs for the processor, it's a quad-core CPU (4 distinct cores), each of which is hyperthreading enabled, which makes it appear as an octo-core.

Given that it's a Xeon, you could quite easily have a dual-socket motherboard, which means there's 2 separate chips, each of which has 4 cores, each of which can run two threads, so effectively appears to the OS as a 16-core machine.

share|improve this answer
    
Yep this would do it. 2 CPUs, 4 cores each. Hyperthreading makes it as if each core counts as two, so 2 * 4 * 2 = 16 processors. –  aqua Jan 14 '12 at 7:33
    
@auqa What does the 'cpu cores' mean? Is it the physical cores or logical cores? I think the cpu cores mean how many physical cores on a single cpu socket? And what does the 'siblings' means? –  xiaoming Jan 14 '12 at 7:55
    
@xiaoming: that's been blurred these days by hyperthreading and whatnot. Depends on which marketing people you talk to, and as well which licensing people. Someone like oracle would count your machine as a 16core device and force you buy 16 licenses for oracle. Others might require only 2 licenses because that's how many sockets your machine has. –  Marc B Jan 14 '12 at 7:56
    
@Marc B how could I know each cpu is 4 cores? Which parameters should i use? In lots of documents they say hte 'cpu cores' is the cores on the physical cpu –  xiaoming Jan 14 '12 at 8:00

It seems to me like /proc/cpuinfo is only showing part of your real physical CPU configuration.

Some fields may indicate that your system has 2 CPU sockets, each of which has 16 physical cores :

  • physical id goes from 0 to 1, so there would be 2 CPU sockets
  • siblings states that you have 16 logical cores per CPU socket
  • cpu cores is also 16, which I interpret as the number of physical cores for the CPU specified in physical id. As to this point, I would say that the CPU does not support HyperThreading, but...

According to the spec of Intel E5620 chip, each chip has 4 physical cores, each of which have 2 logical cores thanks to HyperThreading.

That leads me to the conclusion that, from the point of view of your operating system, you only have partial access to the CPU ressources. I would suggest that you are running from a virtualized environment.

Let's see below my /proc/cpuinfo on a virtual machine hosted on a two-CPU Intel E5430-based server (2 CPU sockets, 4 physical cores, no hyperthreading). The operating system only sees core#0 from CPU#0 and core#0 from CPU#1.

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 23
model name  : Intel(R) Xeon(R) CPU           E5430  @ 2.66GHz
stepping    : 10
cpu MHz     : 2659.998
cache size  : 6144 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 4
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts     acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 xsave lahf_lm tpr_shadow vnmi flexpriority
bogomips    : 5319.99
clflush size    : 64
cache_alignment : 64
address sizes   : 38 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 23
model name  : Intel(R) Xeon(R) CPU           E5430  @ 2.66GHz
stepping    : 10
cpu MHz     : 2659.998
cache size  : 6144 KB
physical id : 1
siblings    : 4
core id     : 0
cpu cores   : 4
apicid      : 4
initial apicid  : 4
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 xsave lahf_lm tpr_shadow vnmi flexpriority
bogomips    : 5319.78
clflush size    : 64
cache_alignment : 64
address sizes   : 38 bits physical, 48 bits virtual
power management:
share|improve this answer

That's Hyperthreading, which allows a single core to run two threads more-or-less in parallel. More-or-less depends on what instructions each thread is using.

share|improve this answer
    
How could I know the how many cores on a physical cpu? –  xiaoming Jan 14 '12 at 7:59
    
Google the model name which is this case is E5620. –  Brian Jul 29 '12 at 11:22

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.