繁体   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