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

Batch file 在特定处理器上运行批处理文件,batch-file,Batch File,我有一个双处理器的服务器,即每个处理器有多个内核和两个物理氙气处理器 每个进程只在一个处理器上运行,这很好。如果启动多线程应用程序,它只能在一个物理处理器上使用最大数量的内核,而不能同时在两个处理器上使用(Windows 10限制?)。我想启动同一程序的两个实例,这样我就可以使用两个处理器上的所有内核 如何从批处理文件启动进程,使其在指定的处理器组上运行?即处理器1的核心0-16,或处理器2的核心0-16 我试过: start /affinity FF file.exe 但它只在一个特定处理器

我有一个双处理器的服务器,即每个处理器有多个内核和两个物理氙气处理器

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

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

我试过:

start /affinity FF file.exe
但它只在一个特定处理器的内核上运行。我相信我需要设置处理器组,但是如何使用“start”命令来设置呢

我可以看出,您可以使用十六进制掩码来表示与“start”的关联,但这似乎只适用于第一个处理器的内核,我似乎无法访问第二个处理器的内核

由于对我的问题有很多困惑,请参见下文。它来自任务管理器当您尝试设置关联时,请注意我是如何拥有多个处理器组的?这就是我试图使用“start”命令配置的内容/“关联”仅使用组0中的核心

根据您的“处理器组”组合判断,似乎您已将系统设置为显示每个物理CPU分配给单个节点,因此,假设您就是这样设置的,命令行标志
/node
将允许您选择哪个节点,因此我们得到:

start /node 1 file.exe
这将在第二个NUMA节点上启动应用程序。请注意,您可能可以将其与
/affinity
标志相结合,以便仅在第一个节点的两个核心上运行,以下操作可能有效:

start /node 0 /affinity 3 file.exe

MSDOS不是多任务操作系统。你是否考虑切换到Linux?你不应该关心那些正在运行的CPU,这是OS的业务,可以经常改变。但是搜索“CPU亲和性”@GerhardBarnard抱歉,谢谢你的建议,但这并不能解决我的问题。好吧,另一个“处理器组”组合框可能表明你有NUMA节点,因此,您可以说
start/node 1
来使用第二个CPU。此外,我想您可以将
/node
/affinity
组合起来,在每个物理CPU中的选定内核上运行。@KenY-N谢谢您的帮助。节点1访问第二个处理器。用一个快速的答案写下来,我会投票表决。