在同一台机器上执行两个 GNU 并行命令

在同一台机器上执行两个 GNU 并行命令

我正在使用 GNU Parallel 自动启动大量作业并将它们分布在机器的核心上。每个核心一份工作。

parallel python3 program.py ::: inputs1*

当一组作业即将完成时,其余作业仅使用可用核心的子集。最好开始下一组输入,parallel以便它们仅使用未使用的核心。因此,一开始是所有核心的子集,但后来,一旦前面的作业全部完成,所有可用的核心(所以我不能使用--jobs)。

如果我只是启动第二个命令parallel,它也会为另一个命令已使用的核心启动作业。有没有一种好又简单的方法来避免这种情况?

答案1

尝试:

parallel --load 100% ...

它查看当前正在运行的进程数,并在有空闲核心时启动作业。

相关内容