2

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

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

原来,那个joblib有一个巨大的内存泄漏

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

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

是否还有其他用于大量迭代的框架?

4

1 回答 1

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)
于 2015-02-12T14:58:47.997 回答