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 に答える