簡體   English   中英

Joblib是否需要多個內核進行多處理?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM