GNU 并行与多处理



GNU-parallel和 python多处理模块有什么区别?以及哪一个是哪种情况的理想选择,如果它们的用法不同。

我正在尝试并行化 tesseract,并发现有人在这里推荐GNU 并行处理 tesseract问题。

我想了解,在选择其中一个之前,哪一个是哪个用例的理想选择。

另外,我没有从gnu-parallel中获得预期的结果,我可以看到 4 个进程在top运行,但它们比 python 多处理花费更多的时间。

1(对于 GNU 并行:

所需时间为 8 分 40 秒

,如下所示我正在使用以下命令:

ls image*.jpg | time parallel tesseract {} stdout -l hin

顶部输出在这里

2(使用多页功能的普通镶嵌。

$ time tesseract imagelist.txt stdout -l hin

速度可以在这里看到

3( 基于多处理的 pytesseract

将更大的速度提高到大约 4-5 秒。

可以找到我的pdf这里

我正在使用convert_from_path from pdf2imageconvert from imagemagickpdf转换为image作为pngjpeg

在python多处理中,你可以在进程之间进行通信。但是,您就有了同步的成本。GNU Pararell 使用不同的参数多次运行命令。然后,您需要在其他过程中聚合结果。

这里分析了这个问题: https://github.com/tesseract-ocr/tesseract/issues/3109

溶液:

export OMP_THREAD_LIMIT=1

在并行运行tesseract之前。

相关内容

  • 没有找到相关文章

最新更新