处理器与内核

Processors vs cores

查看我的 Linux 机器(更多 /proc/cpuinfo),我看到我有 4 个处理器,每个处理器有 4 个内核。以下是 cpuinfo 的完整内容:

  processor : 0
  vendor_id : GenuineIntel
  cpu family    : 6
  model     : 60
  model name    : Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz
  stepping  : 3
  microcode : 0x20
  cpu MHz       : 3464.984
  cache size    : 8192 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 sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts
  bugs      :
  bogomips  : 6185.83
  clflush size  : 64
  cache_alignment   : 64
  address sizes : 39 bits physical, 48 bits virtual
  power management:

  processor : 1
  vendor_id : GenuineIntel
  cpu family    : 6
  model     : 60
  model name    : Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz
  stepping  : 3
  microcode : 0x20
  cpu MHz       : 3462.335
  cache size    : 8192 KB
  physical id   : 0
  siblings  : 4
  core id       : 1
  cpu cores : 4
  apicid        : 2
  initial apicid    : 2
  fpu       : yes
  fpu_exception : yes
  cpuid level   : 13
  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 pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts
  bugs      :
  bogomips  : 6189.39
  clflush size  : 64
  cache_alignment   : 64
  address sizes : 39 bits physical, 48 bits virtual
  power management:

  processor : 2
  vendor_id : GenuineIntel
  cpu family    : 6
  model     : 60
  model name    : Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz
  stepping  : 3
  microcode : 0x20
  cpu MHz       : 3335.375
  cache size    : 8192 KB
  physical id   : 0
  siblings  : 4
  core id       : 2
  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 sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts
  bugs      :
  bogomips  : 6189.68
  clflush size  : 64
  cache_alignment   : 64
  address sizes : 39 bits physical, 48 bits virtual
  power management:

  processor : 3
  vendor_id : GenuineIntel
  cpu family    : 6
  model     : 60
  model name    : Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz
  stepping  : 3
  microcode : 0x20
  cpu MHz       : 3367.352
  cache size    : 8192 KB
  physical id   : 0
  siblings  : 4
  core id       : 3
  cpu cores : 4
  apicid        : 6
  initial apicid    : 6
  fpu       : yes
  fpu_exception : yes
  cpuid level   : 13
  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 pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts
  bugs      :
  bogomips  : 6189.74
  clflush size  : 64
  cache_alignment   : 64
  address sizes : 39 bits physical, 48 bits virtual
  power management:

我知道核心是一个处理单元,每个处理器包含 4 个这样的核心(例如,this 问题很好地解决了这个问题),但我对它们的实际情况感到非常困惑使用和访问。

在我使用过的所有并行处理工具中(主要是在 R 中),我最多可以访问 4 个 processors/cores(根据包的语言称为处理器或内核)。此外,在我的系统监视器中,我看到 4 个处理器,当其中一个处于活动状态时,它就完全处于活动状态。我从来没有看到部分 activity 表明我可以访问除一个完整处理器(即该处理器中的 4 个内核)之外的任何东西。但是,有 4 个处理器和 4 个内核会建议我实际上可以 运行 16 threads/processes 一次。

我错过了什么?我能否单独访问这些内核中的每一个,或者给定处理器的 4 个内核是否绑定到该处理器的活动?

编辑:我刚刚检查了我们服务器机房中的另一台机器,发现上面发布的片段重复了 40 次 (!!!),所以我有处理器 0 到 39。每个处理器都有 10 个内核。我不应该 运行 400 个并行作业而不是 40 个吗?

EDIT2:仔细调查服务器,我看到每个处理器有 40 个输出块。与其发布整个内容,不如发布一个简短的版本,对我所看到的内容进行一些解释:

processor:  0  (this ranges from 0 to 40)
physical id:  0:  (ranges from 0 to 1, with 20 of each - this is telling me 2 physical Xeon processors present)
siblings:  20  (same for all - a bit confused here as Xeon is a 10 core processor)
core id:  (ranges from 0 to 12, but missing 5,6,7 - a total of 10 ids, but where are 5,6, and 7?  Also, there are 4 of each core id - 4 0s, 4 1s, etc.)
cpu cores:  10  (all have the same here, which makes sense but seems inconsistent with siblings)

此服务器上处理器的型号名称是 Xeon CPU E5-2650 v3,如果有帮助的话。这是它的网页:https://ark.intel.com/products/81705/Intel-Xeon-Processor-E5-2650-v3-25M-Cache-2_30-GHz

您有 1 个 4 核处理器。

具有 1 个以上处理器的系统非常罕见,超级计算机等除外。

根据您拥有的内核,每个单独的内核都被标识为一个处理器。

这可能正是您正在寻找的问题,并且有详细的解释: https://unix.stackexchange.com/questions/146051/number-of-processors-in-proc-cpuinfo