在特定处理器

时间:2017-09-15 05:53:51

标签: batch-file

我有一台带双处理器的服务器,即每个处理器多个内核和两个物理Xenon处理​​器。

每个进程只能在一个处理器上运行,这很好。如果你启动一个多线程应用程序,它只能在一个物理处理器上使用最大数量的核心,而不是两者(Windows 10限制?)。我想启动同一程序的两个实例,以便我可以在两个处理器上使用所有内核。

如何从批处理文件启动进程以使其在指定的处理器组上运行?即处理器1的核0-16,或处理器2的核0-16?

我试过了:

start /affinity FF file.exe

但是只能在一个特定处理器的内核上运行它。我相信我需要设置处理器组,但是如何使用'start'命令呢?

我可以看到你可以使用十六进制掩码与'start'建立关联,但这似乎只能在第一个处理器的核心上运行,我似乎无法访问第二个处理器的核心。

由于我的问题存在很多混淆,请参阅下文。当您尝试设置关联时,它来自任务管理器,请注意我有多个处理器组?这就是我尝试使用'start'命令配置的内容。 '/ affinity'仅使用组0中的核心。

Multiple processor groups

1 个答案:

答案 0 :(得分:3)

根据“处理器组”组合判断,系统设置为将NUMA nodes与每个物理CPU分配给单个节点。 This question talks about how to check the config,假设这就是你设置的方式,命令行标志/node <NUMA index>将允许你选择哪个节点,所以我们得到:

start /node 1 file.exe

这应该在第二个NUMA节点上启动应用程序。请注意,您可以将其与/affinity标志组合在一起,以便仅在第一个节点的两个核心上运行,以下内容可能有效:

start /node 0 /affinity 3 file.exe
相关问题