我有一个批处理脚本,可以运行一段时间的程序。该程序是单线程的。我想并行运行该程序的多个实例,并确保它们不使用相同的核心/线程运行。
原因是我正在测量运行该程序所需的时间,并且我想尽量避免由于某些实例使用并发 CPU 资源运行时出现偏差的结果。
有没有办法在我的批处理脚本中指定给定的核心/线程号并避免上述偏差?
答案1
您可以尝试使用taskset
带有 -c 选项的实用程序来运行它,例如taskset -c 0 batch.job
。为了找到您的 CPU 数量,您可以使用该nproc
工具。
编辑:在 Windows 上,您可能可以使用start
带有该/affinity
选项的类似实用程序。
Windows/Linux 中的处理器亲和性