作业系统:Cent-OS
我有一些30,000作业(或脚本)要运行。每个工作需要3-5分钟。我有48 CPUs(nproc = 48)。我可以40 CPUs to run 40 Jobs并行使用。请建议一些脚本或工具通过并行运行40个Jobs来处理30,000个Job。
30,000
48 CPUs(nproc = 48)
40 CPUs to run 40 Jobs
我做了什么:
我创建了40个不同的文件夹,并通过为每个目录创建一个Shell脚本来并行执行作业。
我想知道下一次处理此类工作的更好方法。
正如Mark Setchell所说:GNU并行。
find scripts/ -type f | parallel
如果您坚持要保持8个CPU空闲:
find scripts/ -type f | parallel -j-8
但是通常简单地使用它会更高效,nice因为在没有其他人需要它们的情况下,它将为您提供全部48个内核:
nice
find scripts/ -type f | nice -n 15 parallel