2012-08-13 53 views
0

我有一個intel r xeon r cpu w3565系統。我正在運行一個64位Windows 7的頂部。Windows 7不允許在8核心系統中創建2個以上的組

沒有組感知任務管理器根據需要顯示8個邏輯內核(4個內核和8個線程)。

現在,如果我需要4組,2個prcessors每個我這樣做:

BCDEDIT /套GROUPSIZE 2並重新啓動我的機器。我可以看到2個組和2個邏輯處理器。 我也跑一個小的測試程序:

#include <windows.h> 
#include <stdio.h> 

int main(int argc, char *argv[]) { 
    WORD numProcs = 0,i;  
    int sum=0; 
    numProcs = GetActiveProcessorGroupCount(); 

    for(i=0;i<numProcs;i++) 
    { 
     int procs; 
     procs =GetActiveProcessorCount(i);   
     printf("\ngroup %d count :%d\n",i,procs);  
     sum += procs; 
    } 
    printf("numProcs: %d\n", sum); char abc; scanf("\n%c",&abc); 
    return 0; 
} 

這也給了核心數量爲4早些時候把它作爲8(無羣體意識上)

現在,如果我設置組大小4,我得到2組,每組4個核心。這次我的測試程序輸出是8。

然後,我將groupsize設置爲1,這次我再次獲得了2個組,每個核心中有一個邏輯核心。

我無法理解爲什麼在實際的文件說,它可以去最大uptil 4.

任何想法,我在這裏失蹤的窗戶無法展開組的數量到4?

+0

請修復您的代碼格式。 – SLaks 2012-08-13 21:51:41

+0

感謝您的編輯。我不確定需要哪些快捷鍵! – 2012-08-13 21:58:03

+0

此外,我使用任務管理器(這是組意識到我認爲)看到系統中的核心 – 2012-08-13 22:01:06

回答

0

我想你錯過的the documentation該部分:

默認情況下,具有64個或更少活性邏輯處理器具有一個處理器組的系統。必須設置處理器組的大小來強制配置這樣一個系統,使其具有多個處理器組。

如果系統配置的處理器組大小小於系統中邏輯處理器總數的四分之一,則不使用某些邏輯處理器。

這是導致您爲什麼在將組大小設置爲1時只能看到2個邏輯處理器的因素。這比可用的邏輯處理器總數少了1/4。我預計會創建4個組,甚至在the documentation中的例子也是如此。

我不知道爲什麼你只看到4個邏輯處理器GROUPSIZE設置爲2

The documentation什麼時候狀態處理器羣體影響系統的非一致性內存訪問(NUMA)節點,所以也許這是每個組分配多少個處理器的因素?系統上必須有其他因素影響每個組的處理器數量。

+0

是的,這是有道理的。雖然我不確定爲什麼我不能得到4組1組和4組2組,而2組2組。然而,我錯過了總條款的1/4。謝謝!欣賞它 – 2012-08-13 22:54:47

相關問題