【问题标题】:Speeding up GNU parallel加速 GNU 并行
【发布时间】:2013-10-02 00:19:42
【问题描述】:

在具有 47,000 个条目的文件上运行以下命令需要 24 分钟(8 核 windows 7,运行 Cygwin):

cat File_Path.txt | parallel --progress --tag -j +0 'pdftotext {} 2>/dev/null - | wc -w;' > results.txt

我正在将File_Path.txt 中的每一行从 pdf 转换为文本文件并计算其中的单词。有什么办法可以缩短处理时间?

【问题讨论】:

    标签: processing-efficiency gnu-parallel


    【解决方案1】:

    我在 148 个随机 PDF 文件上运行了您的脚本。这需要 41 cpu 秒 = 每个文件 0.27 cpu 秒。因此,在 8 核机器上,您应该预期的粗略估计大约为 1700 秒,这也是您所看到的。因此,我假设您在 24 分钟内看到 100% 的 CPU 利用率。

    GNU Parallel 每个作业花费的时间不到 0.01 秒,因此大部分时间都花在了运行 pdftotext 上。因此,您将通过使用比 pdftotext 更快的工具获得最大收益。不幸的是,我不知道有这样的工具。

    --编辑--

    如果您可以通过 ssh 访问其他服务器,您也可以使用它们的 CPU。请参阅教程http://www.gnu.org/software/parallel/parallel_tutorial.html#remote_execution 了解如何执行此操作。

    【讨论】:

    • 我错过了非常重要的一点,而我发布的真正原因是 CPU 平均只有 60% 左右。所以我假设可以调整代码以使 CPU 达到 100%。
    • 如果您的 CPU 平均值低于 100%,则生成更多作业:-j200%
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 2021-12-04
    • 2012-08-31
    • 2018-06-09
    • 2019-09-23
    • 2014-05-05
    相关资源
    最近更新 更多