![](/img/trans.png)
[英]Does process package from multiprocessing in python executes the processes on multiple cores?
[英]Does joblib require multiple cores for multiprocessing?
我正在使用joblib並行處理4幀(從視頻拍攝的圖像)。 為此使用了並行for循環,其中每個循環針對不同的幀調用相同的函數。 由於捕獲幀僅占總處理時間的1%(通過使用line profiler通過python腳本分析發現),因此我首先捕獲4幀並將其移交給joblib進行多處理。
我發現使用筆記本電腦,處理速度提高了大約5倍。 在Rapberry pi-2(四核)上,觀察到近8倍的加速,而在Beaglebone Black(非多核)上也觀察到近7倍的加速。 那么,joblib如何精確地分配任務?
默認情況下, joblib.parallel使用Python multiprocessing
模塊來分叉單獨的Python工作進程,以在單獨的CPU上同時執行任務。
multiprocessing
模塊可以利用多個內核/處理器(它通過透明地啟動多個進程來繞過GIL)。 它提供了一些類似於線程模塊的原語。
整體效率取決於內核如何共享對內存的訪問的微妙之處。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.