并行处理 – Gnu Parallel:嵌套并行

是否可以在脚本的多次运行中调用gnu parallel,而这些脚本又由gnu parallel生成?

我有一个运行100次连续迭代的python脚本,并且在每次迭代中的某个地方,并行计算4个值(使用gnu parallel).现在我想同时使用gnu parallel生成多个这样的脚本.这可能吗? gnu parallel会不会好好利用可用内核?

例如,如果在内部循环中,4个值中有2个已完成且2个正在运行,那么在计算所有4个值之前,单个脚本无法进行下一次迭代.这两个免费核心是否会用于自动计算不同脚本运行的结果?
如何指定可用的核心总数?在内部调用并行或外部调用?

This问题显示可以将调用嵌套到并行中,但是当我从脚本内部调用嵌套并行时,我不确定这是否会发生变化.

PS:Thrashing不是一个问题,我可以使用大量集群中的大量内核.

PS2:gnu-parallel是一款非常棒的工具……谢谢! 🙂

最佳答案
是. GNU Parallel经过设计(并经过大量测试),可以直接或通过脚本从GNU Parallel调用.

如果直接调用,您可能需要更改-I.第二个{}在这里意味着什么(它是指第一个还是第二个并行?):

seq 10 | parallel 'seq {} | parallel echo {}'

这里很清楚:

seq 10 | parallel 'seq {} | parallel -I // echo //'
seq 10 | parallel 'seq {} | parallel -I // echo {} //'

PS很高兴听到你发现GNU Parallel很棒.如果你喜欢GNU Parallel:

>浏览教程
(http://www.gnu.org/software/parallel/parallel_tutorial.html)
>在当地用户组/团队/同事处进行演示
>在Reddit / Diaspora * / forums / blogs /上发布介绍视频和教程
Identi.ca/Google / Twitter / Facebook / Linkedin /邮件列表
>为您喜爱的博客或杂志申请或撰写评论
>邀请我参加你的下一次会议

如果您使用GNU Parallel进行研究:

>请在您的出版物中引用GNU Parallel(使用–bibtex)

如果GNU Parallel为您省钱:

>(请贵公司)捐赠给FSF https://my.fsf.org/donate/

转载注明原文:并行处理 – Gnu Parallel:嵌套并行 - 代码日志