Linux OS下,你真的读懂了cat /proc/cpuinfo 吗?

们知道linux下查看cpu信息可以用 cat /proc/cpuinfo 指令。

最近需要给程序加速,开openmp。开openmp之前需要了解以下知识。
but,你真的读懂了 cat /proc/cpuinfo ?

第一件事:

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

查看物理CPU个数

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

查看每个物理CPU中core的个数

cat /proc/cpuinfo| grep "cpu cores"| uniq

查看逻辑CPU的个数

cat /proc/cpuinfo| grep "processor"| wc -l

所以不要认为 cat /proc/info Processor=32 (0~31),就真的有32个cpu哦。

实例

我么拿示例来说一下:

Linux OS下,你真的读懂了cat /proc/cpuinfo 吗?_第1张图片

这段的含义时:主机有2个物理cpu。每个物理cpu有8核。
诶? 那processor为啥是32呢? 

首先明白:processor 指的是什么?
是啥?
是逻辑cpu的个数。说白了就是你这个cpu给用户看来,他相当于多少个独立的运算单元。

逻辑cpu数=物理CPU个数 × 每颗核数 × 超线程数
32 = 2 × 8 × ?
? = 2 说明我的cpu支持超线程。

超线程

它可使处理器中的1 颗内核(core)如2 颗(core)内核那样在操作系统中发挥作用。这样一来,操作系统可使用的执行资源扩大了一倍,大幅提高了系统的整体性能。

你可能感兴趣的:(linux,openMP)