如标题中所述,我想知道-k
选项(强烈)是否会影响GNU并行的速度。
在man parallel_tutorial
中讨论了--ungroup
和--line-buffer
,其中声称解除输出行的--linebuffer
比--ungroup
慢得多。因此,当作业数量很大时,-k
也可能导致重大减速?
(我在man parallel
或man parallel_tutorial
找不到这个主题;我也没有找到任何关于谷歌的内容。但我还没有完成man parallel
,所以如果我错过了少搜索的东西,请原谅。)
答案 0 :(得分:4)
-k
不会减慢任何速度,但每个作业需要4个文件句柄。如果GNU Parallel用完了文件句柄,它将等待其中一个正在运行的作业完成。
-g
与-u
相比,每个作业减慢约1-2毫秒(加上从磁盘写入和读回输出所需的时间),因此只有在减速时才会显着减慢你经营非常短的工作或有很多产出的工作。
--line-buffer
可以更快,速度可能比-g
慢。它不会在磁盘上缓冲,但需要更多的CPU时间才能运行 - 特别是如果您的作业输出数据的速度很慢。
我的建议是使用最容易使用的东西,只有当证明太慢时,请查看其他选项。