为每个分配一个处理器的批处理作业

我有四个bat文件和一个四核心机器。 是否有可能将每个运行分配给每个核心,即1个核心的工作。 有什么办法来控制这个命令?

在Windows 7及更高版本上,可以使用START /AFFINITY启动进程并将其限制为一个或多个特定的处理器。

对于较早版本的Windows(XP及更高版本),您可以下载免费的Microsoft实用程序PsExec v2.0 ,它不仅可以将进程分配给特定的处理器,还允许您在远程计算机上运行进程。

在你对Chopper3的回答的评论中,你说你有很多作业的队列,并且你想为每个处理器启动一个作业,然后让剩下的作业等待,直到处理器空闲。 在StackOverflow上并行执行shell进程时 ,我发布了一个样例batch file,它几乎可以完成你想要的任务。 正如所写,它设置了一个作业队列,然后限制并发进程的数量。 它假定操作系统将处理可用处理器的负载平衡。 更好的是,该脚本也被devise为支持PsExec,所以您应该能够将每个进程分配给远程机器和/或特定的处理器。 但是,我没有testingPsExecfunction。

如果你使用start /b whatever.bat它会在后台启动batch file,如果你一次执行这个操作,那么内核会相应地调度这个作业 – 你不能,也不想要分配一个内核每个batch file – 你只是希望他们asynchronous运行,并为操作系统来pipe理工作量。