我正在使用 joblib 并行处理 4 帧(从视频中获取的图像)。为此使用了并行 for 循环,其中每个循环为不同的帧调用相同的函数。由于捕获帧只占用总处理时间的 1%(通过使用 line profiler 的 python 脚本分析发现),我首先捕获 4 个帧并交给 joblib 进行多处理。
我发现使用笔记本电脑,这个过程大约加快了 5 倍。在 Rapberry pi-2(四核)上,观察到几乎 8 倍的加速,在 Beaglebone Black(非多核)上,也观察到几乎 7 倍的加速。那么,joblib 究竟是如何分配任务的呢?