是否可以在脚本的多次运行中调用gnu parallel,而这些脚本又由gnu parallel生成?
我有一个运行100次顺序迭代的python脚本,并且在每次迭代中的某个位置,并行计算4个值(使用gnu parallel)。现在我想同时使用gnu parallel生成多个这样的脚本。这可能吗? gnu parallel会不会好好利用可用内核?
例如,如果在内部循环中,4个值中有2个已完成且2个正在运行,那么在计算所有4个值之前,单个脚本无法进行下一次迭代。这两个免费核心是否会用于自动计算不同脚本运行的结果? 如何指定可用的核心总数?在内部调用并行或外部调用?
This问题表明可以将调用嵌套到并行中,但是当我从脚本内部调用嵌套并行时,我不确定这是否会发生变化。
PS:颠簸不是问题,我可以使用大量集群中的大量内核。
PS2:gnu-parallel是一款非常棒的工具......谢谢! :)
答案 0 :(得分:11)
是。 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:
如果您使用GNU Parallel进行研究:
如果GNU Parallel为您省钱: