首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >joblib是否需要多核来进行多处理?

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

Stack Overflow用户
提问于 2015-05-01 02:26:44
回答 1查看 922关注 0票数 1

我使用joblib并行处理4帧(从视频拍摄的图像)。为此使用了并行for循环,其中每个循环为不同的帧调用相同的函数。由于捕获帧只占用总处理时间的1%(通过使用line profiler的python脚本分析发现),因此我首先捕获4个帧,然后将其移交给joblib进行多处理。

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

EN

回答 1

Stack Overflow用户

发布于 2015-05-03 04:21:58

默认情况下,joblib.parallel使用Python multiprocessing模块派生单独的Python worker进程,以便在单独的CPU上并发执行任务。

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

整体效率取决于内核如何共享内存访问的细微之处。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29975082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档