加速GNU并行

时间:2013-10-02 00:19:42

标签: processing-efficiency gnu-parallel

以下需要24分钟才能在包含47,000个条目的文件上运行(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转换为文本文件并计算其中的单词。我有什么方法可以在处理中节省一些时间吗?

1 个答案:

答案 0 :(得分:2)

我在148个随机PDF文件上运行了你的脚本。这花费了41 cpu秒=每个文件0.27 cpuseconds。因此,对于8核机器上你应该期待的大概是1700秒的粗略猜测,这也是你所看到的。所以我假设你在24分钟内看到100%的CPU利用率。

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

- 编辑 -

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