您能指定批处理脚本应在哪个核心上运行吗?

您能指定批处理脚本应在哪个核心上运行吗?

我有一个批处理脚本,可以运行一段时间的程序。该程序是单线程的。我想并行运行该程序的多个实例,并确保它们不使用相同的核心/线程运行。

原因是我正在测量运行该程序所需的时间,并且我想尽量避免由于某些实例使用并发 CPU 资源运行时出现偏差的结果。

有没有办法在我的批处理脚本中指定给定的核心/线程号并避免上述偏差?

答案1

您可以尝试使用taskset带有 -c 选项的实用程序来运行它,例如taskset -c 0 batch.job。为了找到您的 CPU 数量,您可以使用该nproc工具。

有关进程亲和性的文章 - linux

任务集手册页

编辑:在 Windows 上,您可能可以使用start带有该/affinity选项的类似实用程序。 Windows/Linux 中的处理器亲和性

相关内容