多处理嵌套python循环

2024-10-04 01:25:39 发布

您现在位置:Python中文网/ 问答频道 /正文

为了改进我的代码有一个沉重的循环,我需要一个加速。我如何为这样的代码实现多处理?(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)

Tags: 代码inforoutputrangex1x2典型
1条回答
网友
1楼 · 发布于 2024-10-04 01:25:39

如果HeavyComputationThatIsThreadSafe1函数只使用数组而不使用python对象,我将使用一个concurrent futures(或python2 backportThreadPoolExecutor和{a3}(或cython)来发布GIL。否则使用ProcessPoolExecutor。在

参见:

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

您需要在最外层的循环级别并行计算,然后从每个线程/进程产生的块填充output。这假设这样做的成本比计算要便宜得多,这应该是事实。在

相关问题 更多 >