【问题标题】:GNU parallel: does -k (keep output order) affect speed?GNU并行:-k(保持输出顺序)会影响速度吗?
【发布时间】:2018-07-04 06:17:06
【问题描述】:

正如标题中所说,我想知道 -k 选项是否(强烈)影响 GNU 并行的速度。

man parallel_tutorial 中有一个关于--ungroup--line-buffer 的讨论,声称--linebuffer 将输出行解开,比--ungroup 慢得多。那么,-k 是否也会在作业数量很大时导致严重放缓?

(我在man parallelman parallel_tutorial 中没有找到这个主题;我也没有在一些谷歌上找到任何东西。不过我还没有完成man parallel,所以如果我错过了一些搜索较少的东西,请原谅我。)

【问题讨论】:

    标签: parallel-processing gnu-parallel


    【解决方案1】:

    -k 不会减慢任何速度,但每个作业需要 4 个文件句柄。如果 GNU Parallel 用完文件句柄,它会等到其中一个正在运行的作业完成。

    -g-u 相比,每个作业减慢了大约 1-2 毫秒(加上从磁盘写入和读回输出所需的时间),因此只有在运行时间很短时才会注意到减慢工作或有大量产出的工作。

    --line-buffer 可以比-g 更快也可以更慢。它不在磁盘上缓冲,但运行需要更多 CPU 时间 - 尤其是当您的作业输出数据缓慢时。

    我的建议是使用对您来说最容易使用的东西,并且仅当证明太慢时,请查看其他选项。

    【讨论】:

    • 谢谢!拥有一个反应迅速的维护者真是太棒了。
    猜你喜欢
    • 1970-01-01
    • 2011-11-14
    • 2014-06-05
    • 1970-01-01
    • 2020-07-03
    • 2016-03-20
    • 2015-05-31
    • 1970-01-01
    • 2015-04-07
    相关资源
    最近更新 更多