我尝试使用HPC中的多处理来加快我的代码。它运行正常,但是我添加了一些计算,突然它开始发布此错误。我在没有多处理的情况下运行它。
第一个〜20函数执行在多处理中均能很好,但是之后它开始滚雪球,并且此错误越来越频繁。
在日志中写的是"在某个点上超过步长内存限制"one_answers"原因:'runtimeerror('调用python对象时超过最大递归深度',)''
import os
from multiprocessing import Pool
def eigencen(filename):
--DO complicated stuff here--
for f in os.listdir(FOLDER):
list_fn.extend([f])
def evaluation(f_list):
return list(Pool(processes=28).map(eigencen, f_list))
evaluation(list_fn)
我可以以某种方式修复它吗?如果不进行多处理,它将永远运行。
尝试使用concurrent.futures
模块:
from concurrent import futures
def evaluation(f_list):
with futures.ProcessPoolExecutor() as pool:
return pool.map(eigencen, f_list)