损坏的管道:使用来自多处理池的地图



我尝试使用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)

相关内容

  • 没有找到相关文章

最新更新