1. 程式人生 > >物理CPU CPU核數 邏輯CPU 幾核幾線程的概念詳解

物理CPU CPU核數 邏輯CPU 幾核幾線程的概念詳解

物理CPU
物理CPU就是計算機上實際配置的CPU個數。在linux上可以開啟cat /proc/cpuinfo 來檢視,其中的physical id就是每個物理CPU的ID,你能找到幾個physical id就代表你的計算機實際有幾個CPU。在linux下可以通過指令 grep ‘physical id’ /proc/cpuinfo | sort -u | wc -l 來檢視你的物理CPU個數

cpu核數
核數就是指CPU上集中的處理資料的cpu核心個數,單核指cpu核心數一個,雙核則指的是兩個。通常每個CPU下的核數都是固定的,比如你的計算機有兩個物理CPU,每個CPU是雙核,那麼計算機就是四核的。linux的cpu核心總數也可以在/proc/cpuinfo裡面通過指令cat /proc/cpuinfo檢視的到,其中的core id指的是每個物理CPU下的cpu核的id,能找到幾個core id就代表你的計算機有幾個核心。也可以使用指令cat /proc/cpuinfo | grep “cpu cores” | wc -l來統計cpu的核心總數。

邏輯CPU
作業系統可以使用邏輯CPU來模擬出真實CPU的效果。在之前沒有多核處理器的時候,一個CPU只有一個核,而現在有了多核技術,其效果就好像把多個CPU集中在一個CPU上。當計算機沒有開啟超執行緒時,邏輯CPU的個數就是計算機的核數。而當超執行緒開啟後,邏輯CPU的個數是核數的兩倍。實際上邏輯CPU的數量就是平時稱呼的幾核幾線程中的執行緒數量,在linux的cpuinfo中邏輯CPU數就是processor的數量。可以使用指令cat /proc/cpuinfo | grep “processor” | wc -l來檢視邏輯CPU數。

知道上面這些,常說的幾核幾線程就好理解了。假設計算機有一個物理CPU,是雙核的,支援超執行緒。那麼這臺計算機就是雙核四執行緒的。
所以兩路(兩路指的是有兩個物理CPU)四核超執行緒就有2*4*2=16個邏輯CPU。有人也把它稱之為16核,實際上在linux的/proc/cpuinfo中檢視只有8核。

既然計算機多核與超執行緒模擬相關,所以實際上計算機的核數翻倍並不意味著效能的翻倍,也不意味著核數越多計算機效能會越來越好,因為超執行緒只是充分利用了CPU的空閒資源,實際上在應用中基於很多原因,CPU的執行單元都沒有被充分使用。

以上純粹個人在網上查詢資源總結所得,可能存在不專業或者錯誤的地方,敬請指出。