并行 for 循环 python

parallel for loop python

我想在 python 中并行化一个 for 循环。

循环由生成器提供,我预计有 10 亿个项目。

事实证明,joblib 存在巨大的内存泄漏

Parallel(n_jobs=num_cores)(delayed(testtm)(tm) for tm in powerset(all_turns))

我不想在这个循环中存储数据,有时只是打印一些东西,但主线程在几秒钟内增长到 1 GB 大小。

有没有其他框架可以做大量迭代的?

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)