是否可以从由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)
Identi.ca/Google+/Twitter/Facebook/Linkedin/邮件列表
如果您使用GNU Parallel进行研究:
如果GNU Parallel为您省钱:
关于parallel-processing - Gnu平行: nested parallelism,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25052454/