我有一个 intel r xeon r cpu w3565 系统。我在它上面运行一个 64 位的 windows 7。
在没有组意识的情况下,任务管理器根据需要显示 8 个逻辑核心(4 个核心和 8 个线程)。
现在,如果我需要 4 个组,每个组有 2 个处理器,我会这样做:
bcdedit/set groupize 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 个组,每个核心中都有一个逻辑核心。
我无法理解为什么 Windows 不能将组数扩展到 4,而实际上文档说它可以达到 4。
知道我在这里缺少什么吗?