我正在开发一个涉及使用嵌套循环处理大型数据集的项目,并且我正在努力优化我的代码以获得最大效率。这是我目前的方法,我知道这种方法效率不高:
for i in range(N):
for j in range(M):
for k in range(L):
# Perform some computations
在此代码中,N、M 和 L 是循环的大小,在最内层循环中,我正在执行一些需要大量时间的计算。
我已经尝试了各种技术,例如记忆化和并行化,但我仍然没有达到我需要的性能。是否有任何高级优化策略或库可以用来显着加快嵌套循环处理速度?我愿意接受 Python 或任何其他可以大幅提升性能的语言的建议。
在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下不行