一尘不染

并行高效地运行多个作业

linux

作业系统:Cent-OS

我有一些30,000作业(或脚本)要运行。每个工作需要3-5分钟。我有48 CPUs(nproc = 48)。我可以40 CPUs to run 40 Jobs并行使用。请建议一些脚本或工具通过并行运行40个Jobs来处理30,000个Job。

我做了什么:

  • 我创建了40个不同的文件夹,并通过为每个目录创建一个Shell脚本来并行执行作业。

  • 我想知道下一次处理此类工作的更好方法。


阅读 384

收藏
2020-06-02

共1个答案

一尘不染

正如Mark Setchell所说:GNU并行。

find scripts/ -type f | parallel

如果您坚持要保持8个CPU空闲:

find scripts/ -type f | parallel -j-8

但是通常简单地使用它会更高效,nice因为在没有其他人需要它们的情况下,它将为您提供全部48个内核:

find scripts/ -type f | nice -n 15 parallel
2020-06-02