是否可以从由gnu parallel产生的脚本的多次运行中调用gnu parallel?

我有一个python脚本,可以运行100个顺序顺序迭代,并且在每次迭代中的某处,并行计算4个值(使用gnu parallel)。现在,我想再次使用gnu parallel生成多个这样的脚本。这可能吗? gnu parallel是否会照顾好可用内核的利用率?

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

This问题表明可以嵌套并行调用,但是我不确定从脚本内部调用嵌套并行时这种情况是否会改变。

PS:不必担心速成问题,我可以使用大型集群中的很多核心。

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/邮件列表
  • 请求或撰写您喜欢的博客或杂志的评论
  • 邀请我参加下一次 session

  • 如果您使用GNU Parallel进行研究:
  • 请在您的出版物中引用GNU Parallel(使用--bibtex)

  • 如果GNU Parallel为您省钱:
  • (拥有您的公司)捐赠给FSF https://my.fsf.org/donate/
  • 关于parallel-processing - Gnu平行: nested parallelism,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25052454/

    10-14 04:42