joblib是否需要多核来进行多处理?

2024-06-16 14:31:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用joblib并行处理4帧(从视频拍摄的图像)。为此使用并行for循环,其中每个循环为不同帧调用相同的函数。由于捕获帧只需要总处理时间的1%(通过使用行分析器的python脚本分析可以找到),所以我首先捕获4个帧并将其交给joblib进行多处理。在

我发现使用笔记本电脑,这个过程大约加快了5倍。在Rapberry pi-2(四核)上,观察到了几乎8倍的加速,在Beaglebone Black(不是多核)上,也观察到了几乎7倍的加速。那么,joblib究竟是如何分配任务的呢?在


Tags: 函数图像脚本分析器for视频过程时间
1条回答
网友
1楼 · 发布于 2024-06-16 14:31:51

默认情况下,joblib.parallel使用Python ^{}模块派生不同的Python工作进程,以便在不同的cpu上并发执行任务。在

multiprocessing模块可以利用多核/处理器(它通过透明地启动多个进程来绕过GIL)。它提供了一些与线程模块类似的原语。在

整体效率取决于内核如何共享对内存的访问。在

相关问题 更多 >