2010-06-10 35 views
11

我很好奇CPU在Linux中的排序。假設我在超線程系統上將一個線程綁定到cpu0,將另一個線程綁定到cpu1,他們是否都將在同一個物理核心上。鑑於Core i7 920具有4個內核和超線程,/ proc/cpuinfo的輸出讓我認爲cpu0和cpu1是不同的物理內核,而cpu0和cpu4在同一個物理內核上。Linux中的CPU訂購(帶超線程)

謝謝。

回答

18

物理cpu/socket被列爲physical id
物理內核被列爲core id
由於超線程引起的處理器條目將獲得自己的processor,但與另一個共享core idphysical id

請注意,每個物理cpu(physical id)可以有多個核心(core id),它們可以通過超線程進一步分解爲額外的邏輯cpu。邏輯cpus整體排序爲processor id

有一個與此示例的詳細說明:archive.richweb.com/cpu_info via web.archive.org

+0

這是不正確的。 '身份證'是一個套接字。他擁有帶超線程技術的quadcore i7單路計算機。他所有的核心都應該有'物理ID'0.'核心ID'是指物理核心,他應該有0-3這些。邏輯核心被定義爲'處理器'並且應該被編號爲0-7。 ...在我的系統中,處理器0和4共享相同的核心ID,處理器1和5共享相同的核心ID等等。只要確保您不將兩個進程綁定到相同的「核心ID」,除非您真的想要至。所以處理器0和4是同一核心上的邏輯cpus(超線程)。 – bobpaul 2013-02-14 22:52:18

+0

@bobpaul,謝謝...修復它。 – Stephen 2013-02-17 05:54:45

+0

你可以使用'egrep'((id | processo)。*:|^* $)「/ proc/cpuinfo'來獲取'/ proc/cpuinfo'中的相關信息 – 2013-08-21 13:47:17

-1

this link提供的指針。有關物理處理器,內核和超線程的信息全部位於/ proc/cpuinfo中,但必須匹配該文件中多個條目的信息以確定哪些組合在一起。

1

您可以使用likwid-topology -g來獲取cpu的圖形拓撲。它顯示了每個cpu主核心以及同級核心。