在特定处理器上运行批处理文件

batch-file

460 观看

1回复

850 作者的声誉

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

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

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

我试过了:

start /affinity FF file.exe

但这只能在一个特定处理器的内核上运行。我相信我需要设置处理器组,但是如何使用“启动”命令来设置?

我可以看到您可以将十六进制掩码用于与“开始”的相似性,但这似乎只能在第一个处理器的内核上工作,而我似乎无法访问第二个处理器的内核。

由于我的问题引起很多混乱,请参阅下文。当您尝试设置亲和力时,它来自任务管理器,请注意我有多个处理器组吗?这就是我试图使用“开始”命令配置的内容。'/ affinity'仅使用第0组的内核。

多个处理器组

作者: ALM865 的来源 发布者: 2017 年 9 月 15 日

回应 1


3

8322 作者的声誉

决定

从“处理器组”组合来看,您似乎已将系统设置为显示NUMA个节点,并且每个物理CPU都分配给一个节点。这个问题讨论如何检查config,因此假设这是您的设置方式,命令行标志/node <NUMA index>将允许您选择哪个节点,因此我们得到:

start /node 1 file.exe

这应该在第二个NUMA节点上启动应用程序。请注意,您可以将其与该/affinity标志结合使用,因此要在第一个节点的两个内核上运行,可能需要执行以下操作:

start /node 0 /affinity 3 file.exe
作者: Ken Y-N 发布者: 2017 年 9 月 15 日
32x32