Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
windows 7不允许在8核系统中创建超过2个组_Windows_Winapi_Multiprocessing - Fatal编程技术网

windows 7不允许在8核系统中创建超过2个组

windows 7不允许在8核系统中创建超过2个组,windows,winapi,multiprocessing,Windows,Winapi,Multiprocessing,我有一个intel r xeon r cpu w3565系统。我在上面运行64位Windows7 在没有组感知的情况下,任务管理器根据需要显示8个逻辑核心(4个核心和8个线程) 现在,如果我需要4个组,每个组有2个处理器,我会这样做: bcdedit/set groupsize 2并重新启动我的机器。我可以看到2个组,每个组有2个逻辑处理器。 我还运行了一个小测试程序: #include <windows.h> #include <stdio.h> int main(i

我有一个intel r xeon r cpu w3565系统。我在上面运行64位Windows7

在没有组感知的情况下,任务管理器根据需要显示8个逻辑核心(4个核心和8个线程)

现在,如果我需要4个组,每个组有2个处理器,我会这样做:

bcdedit/set 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; 
}
#包括
#包括
intmain(intargc,char*argv[]){
单词numProcs=0,i;
整数和=0;
numProcs=GetActiveProcessorGroupCount();

对于(i=0;i我认为您错过了以下部分:

默认情况下,具有64个或更少活动逻辑处理器的系统具有一个处理器组。必须设置处理器组大小,才能强制将此类系统配置为具有多个处理器组

如果系统配置的处理器组大小小于系统中逻辑处理器总数的四分之一,则不使用某些逻辑处理器

这就是为什么将groupsize设置为1时,每个组只能看到2个逻辑处理器的一个原因。这还不到可用逻辑处理器总数的1/4。我本来希望创建4个组,甚至中的示例也说明了这一点

我不知道为什么将groupsize设置为2时,您只看到4个逻辑处理器


是否说明处理器组影响系统的非统一内存访问(NUMA)节点,所以这可能是每个组分配多少处理器的一个因素?您的系统上一定还有其他因素限制每个组的处理器数量。

请修复代码格式。感谢您的编辑。我不确定需要哪些快捷键!另外,我使用任务管理器(我想它是组感知的)查看系统中的核心是的,这是有意义的。虽然我不确定为什么我不能获得4个组大小为1的组和4个组大小为2的组。但是,我错过了这条总数的1/4。谢谢!感谢