10

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

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

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

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

PS:抖动不是问题,我可以使用大型集群中的大量内核。

PS2:gnu-parallel 是一个很棒的工具......谢谢!:)

4

1 回答 1

13

是的。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 并行:

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

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

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

如果 GNU Parallel 为您省钱:

于 2014-07-31T11:56:14.390 回答