优化嵌套循环算法以获得最大效率

问题描述 投票:0回答:1

我正在开发一个涉及使用嵌套循环处理大型数据集的项目,并且我正在努力优化我的代码以获得最大效率。这是我目前的方法,我知道这种方法效率不高:

for i in range(N):
    for j in range(M):
        for k in range(L):
            # Perform some computations

在此代码中,N、M 和 L 是循环的大小,在最内层循环中,我正在执行一些需要大量时间的计算。

我已经尝试了各种技术,例如记忆化和并行化,但我仍然没有达到我需要的性能。是否有任何高级优化策略或库可以用来显着加快嵌套循环处理速度?我愿意接受 Python 或任何其他可以大幅提升性能的语言的建议。

python algorithm performance optimization nested-loops
1个回答
0
投票

在Linux系统中使用多处理

from multiprocessing import cpu_count, Pool, Array, Manager
import numpy as np
N = 20
M = 20
L = 20
ret = Array('f', N*M*L)
def calcul(i, j, k, num,):
    global ret
    ret._obj[num] = i+j+k
    kk = 0

def main():
    p = Pool(2)
    num = 0
    for i in range(N):
        for j in range(M):
            for k in range(L):
                # Perform some computations
                # calcul(i, j, k, num)
                p.apply_async(calcul, args=(i, j, k, num,))
                # p.apply(calcul, args=(i, j, k, num,))
                num += 1
    p.close()
    p.join()
    
if __name__=="__main__":
    main()
    kk = []
    for i in range(N*M*L):
        kk.append(ret._obj[i])
    k = 0

在win10下不行

© www.soinside.com 2019 - 2024. All rights reserved.