multiprocessing模块和GNU并行有什么区别?另外,如果使用不同,哪种情况下是最理想的。
我试图对tesseract进行并行化,并发现有人建议在tesseract问题上使用GNU并行 这里。
我想了解,在使用一个用例之前,哪一个是理想的用例。
而且,我无法从gnu并行中获得所需的结果,我可以看到4个进程在top中运行,但它们比python花费的时间要长得多。
1)用于gnu-并行:
如这里所见,所需时间为8分40分
我使用以下命令:
ls image*.jpg | time parallel tesseract {} stdout -l hin顶部输出是这里
2)使用多页特性的普通Tesseract .
$ time tesseract imagelist.txt stdout -l hin速度可以看到这里
3)基于多处理的
使速度增加到大约4-5秒。
我的pdf可以找到这里
我使用convert_from_path from pdf2image或convert from imagemagick将pdf转换为image或png或jpeg。
发布于 2019-09-18 13:03:46
在python多处理中,您可以在进程之间进行通信。但是你有同步的成本。gnu pararell使用不同的参数多次运行命令。然后,在其他过程中需要聚合结果。
发布于 2022-04-09 22:45:51
本文分析了这个问题:https://github.com/tesseract-ocr/tesseract/issues/3109
解决方案:
export OMP_THREAD_LIMIT=1在并行运行tesseract之前。
https://stackoverflow.com/questions/57993330
复制相似问题