簡體   English   中英

python多處理模塊,共享多維數組

[英]python multiprocessing module, shared multidimensional array

我有一個給出兩個參數的代碼,(k,m)將返回一個4d numpy數組,我的要求是我需要計算這個數組的可能值為(k,m)k,m <N並加起來。 這是串行慢的,所以我試圖在python中學習多處理模塊來做到這一點。 https://docs.python.org/2/library/multiprocessing.html

基本上我想用我的8個內核並行計算這些4d陣列並將它們全部加起來。 現在的問題是如何設計這個。 每個陣列大約100 MB,N大約20,因此無法在隊列中存儲20 ** 2 * 100 MB。 解決方案是擁有一個共享內存對象,一個結果數組,每個進程將繼續添加結果。

多處理有兩種方法可以實現,使用共享內存或服務器進程。 他們似乎都不支持mutlidim數組。 任何人都可以建議實施我的計划嗎? Thx提前。

一種方法是在父進程中創建內存映射數組 ,並將它們傳遞給子進程以進行填充。 另外,對於每個映射的數組,您應該有一個multiprocessing.Event ,因此chld進程可以向父進程發信號通知數組已完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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