我正在使用 GNU Parallel 自动启动大量作业并将它们分布在机器的核心上。每个核心一份工作。
parallel python3 program.py ::: inputs1*
当一组作业即将完成时,其余作业仅使用可用核心的子集。最好开始下一组输入,parallel
以便它们仅使用未使用的核心。因此,一开始是所有核心的子集,但后来,一旦前面的作业全部完成,所有可用的核心(所以我不能使用--jobs
)。
如果我只是启动第二个命令parallel
,它也会为另一个命令已使用的核心启动作业。有没有一种好又简单的方法来避免这种情况?
答案1
尝试:
parallel --load 100% ...
它查看当前正在运行的进程数,并在有空闲核心时启动作业。