嵌套GNU parallel调用的正确方式是什么?
愚蠢的例子:
seq 1 100 | parallel echo {} | parallel seq {} 1000我的理解是,在一个有8个CPU的机器上,每个并行将启动8个作业,总共64个作业。如果您调用的是比seq更重要的东西,这可能会使机器超载。有没有一种方法可以在限制作业数量的同时充分利用并行性?
发布于 2014-05-03 01:42:22
使用-j限制外部或内部平行:
seq 1 100 | parallel -j1 "echo {} | parallel -I // seq // 1000"通常,您可以使用mulitple :或:来表示嵌套命令,如下所示:
parallel seq {1} {3} {2} :::: <(seq 10) <(seq 20 30) ::: 1 2 3它更好,因为您将始终保持8个作业在运行,而如上所述,在8核计算机上运行的作业将少于8个。
https://stackoverflow.com/questions/23411266
复制相似问题