我想在python中并行化一个for循环。
循环由发电机供电,我预计有10亿个项目。
事实证明,该joblib存在巨大的内存泄漏
Parallel(n_jobs=num_cores)(delayed(testtm)(tm) for tm in powerset(all_turns))
我不想在这个循环中存储数据,只是打印一些东西,但主线程在几秒钟内增长到1 GB大小。
是否存在大量迭代的其他框架?
答案 0 :(得分:2)
from multiprocessing import Pool
if __name__ == "__main__":
pool = Pool() # use all available CPUs
for result in pool.imap_unordered(delayed(testtm), powerset(all_turns),
chunksize=1000):
print(result)