2012-06-26 38 views
2

我想知道是否有任何方法可以找到當前進程正在運行的實際物理處理器/套接字編號,或者映射爲此提供了一個邏輯處理器編號。我如何找到正在運行進程的物理套接字標識號?

我有一個8插座系統,總共有128(0-127)個邏輯處理器。 從我在msdn中讀到的內容可以看出,它們將被分成兩個64個邏輯處理器的處理器組。 http://msdn.microsoft.com/en-us/library/dd405503

我試圖尋找從CPUID CPUID和GetNumaProcessorNodeEx ,APIC ID幫助識別邏輯處理器ID,並從GetNumaProcessorNodeEx,我得到的NUMA節點(這個我發現,如果有64個或更少的數量是有益的邏輯處理器) 如果一個邏輯處理器是超線程,它也是可能的嗎?

我想創建一個像這樣的工具。

處理器無 - 插座/芯ID/HT

處理器0 - 0/0/0

處理器1 - 0/1/1

處理器2 - 0/2/0

...

處理器8 - 1/0/0

處理器9 - 1/1/1

...

任何幫助或鏈接,弄清楚這將是偉大的。

謝謝

+0

本網站是**不** **鏈接收割機。 – Neal

+0

@Neal我不只是想收穫鏈接。即使在重新指引我看其他選項的方式中,我也只尋求幫助。我絕不期待有人回答我。即使引導我走向解決方案也會很有幫助。 – Uday

+0

請問我可以知道倒票的原因嗎?我可以重新提出/改進問題。 – Uday

回答

2

套接字/核心/線程層次結構位於APIC ID的位中。
N低位是線程,M低是核心,其餘的高位是套接字。
要找到N和M,需要使用一些CPUID代碼:
代碼1爲您提供了每個套接字(EBX中的某處)的線程數。
代碼4爲您提供了每個套接字的內核數(在EAX中)。
例如,如果每個套接字有12個線程和6個內核,則最低位是線程ID,接下來的3個是核心,其餘的是套接字。

+0

謝謝。它確實有幫助。 – Uday

+0

如果其他人需要一些文檔幫助,我可以在這裏提供鏈接。 http://software.intel.com/en-us/articles/intel-64-architecture-processor-topology-enumeration/ – Uday

相關問題