簡體   English   中英

多處理嵌套python循環

[英]Multiprocessing nested python loops

為了改善有一個沉重循環的代碼,我需要加快速度。 如何為這樣的代碼實現多重處理? (a通常為2號,l為10)

for x1 in range(a**l):
    for x2 in range(a**l):
        for x3 in range(a**l):
            output[x1,x2,x3] = HeavyComputationThatIsThreadSafe1(x1,x2,x3)

如果HeavyComputationThatIsThreadSafe1函數僅使用數組而不是python對象,則我將在發布GIL的同時使用並發的 Future (或python2 backportThreadPoolExecutor以及Numba (或cython )。 否則,請使用ProcessPoolExecutor

看到:

http://numba.pydata.org/numba-doc/latest/user/examples.html#multi-threading

您需要在最外面的循環級別並行化計算,然后填充每個線程/進程產生的塊的output 假設這樣做的成本比計算便宜得多,應該是這種情況。

暫無
暫無

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

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