解釋 lstopo 的輸出
我有
lstopo --output-format txt -v --no-io > lstopo.txt
一個集群中 8 核節點的輸出,即https://dl.dropboxusercontent.com/u/13029929/lstopo.txt
- 該文件是節點的文本圖。它對於我的筆記型電腦的 Ubuntu 上的終端和 gedit 來說都太寬了,它的一些右側被我的筆記型電腦向左移動並與圖形的左側部分重疊。我想知道如何正確查看文件?( 補充:我發現上傳到dropbox並在Firefox中打開可以正常查看繪圖,可以正常縮小繪圖。但是在Firefox中打開本地文件會錯誤顯示虛線“-”,不知道為什麼? 除了火狐,還有什麼軟體可以用嗎?)
- 每個核心“Core P#”中的“PU P#”是什麼意思?為什麼他們的數字不一樣?
- “L1i”是指 L1 指令記憶體,“L1d”是指 L1 數據記憶體嗎?
- 為什麼 L2 和 L3 記憶體沒有指令記憶體和數據記憶體之分?這對電腦來說很常見嗎?
- “Socket P#”是什麼意思?“socket”是用來連接L3記憶體和主記憶體的嗎?
- “NUMANode P# (16GB)”是什麼意思?是主記憶體晶片嗎?
- 圖中是否顯示有四個核心共享一個主記憶體晶片,而其他四個核心共享另一個主記憶體晶片?
- 節點中不是所有 8 個核心都共享一個主記憶體嗎?那麼節點是否就像一個分佈式系統,有兩台 4 核電腦,它們之間沒有共享記憶體?兩個 4 核小組如何相互交流?
- “機器(32GB)”是指6中提到的兩個主記憶體晶片大小的總和嗎?
以下是您的問題的答案:
- 我會將其視為圖形圖像而不是 ASCII 圖像。
$ lstopo --output-format png -v --no-io > cpu.png
**注意:**可以查看生成的文件 cpu.png
2. “PU P#” = 處理單元處理器#。這些是 CPU 核心中的處理元素。在我的筆記型電腦(Intel i5)上,我有 2 個核心,每個核心有 2 個處理元素,總共 4 個。但實際上我只有 2 個物理核心。 3. L#i = 指令記憶體,L#d = 數據記憶體。L1 = 1 級記憶體。 4. 在英特爾架構中,當您從 L1 → L2 → L3 向下移動時,指令和數據會混合在一起。 5. “Socket P#”是指主機板上有 2 個物理插槽,此設置中有 2 個物理上獨立的 CPU。 6. 在多 CPU 架構中,RAM 通常被拆分,以便將其中的一部分分配給每個核心。如果 CPU0 需要 CPU1 的 RAM 中的數據,那麼它需要通過 CPU1 “請求”這些數據。這樣做的原因有很多,這裡就不多說了。如果您真的很好奇,請閱讀NUMA 風格的記憶體架構。
7. 該圖顯示了 2 個物理 CPU 包中的 4 個核心(每個核心有 1 個處理單元)。每個物理 CPU 都可以“隔離”訪問 16 GB RAM。 8. 不,所有 CPU 之間沒有共享記憶體。2 個 CPU 必須通過 CPU 與對方的 RAM 互動。再次查看NUMA Wikipage 以了解有關非統一記憶體架構的更多資訊。 9. 是的,系統共有 32 GB 的 RAM。但是任何一個物理 CPU 只能直接訪問 RAM 的 1/2。
什麼是插座?
插槽是用於描述包含 CPU 的實際封裝的術語,用於安裝在主機板上。有許多不同的樣式和配置;查看關於CPU Sockets的維基百科頁面。
這張圖片也說明了“核心”、CPU 和“插槽”之間的關係。