多重处理:将“ pool.starmap”与大型词典结合使用

时间:2018-12-17 00:42:02

标签: python dictionary multiprocessing

我正在使用starmap中的multiprocessing做一些计算。看起来像这样:

with Pool(processes=15) as pool: results = pool.starmap(fun, [(arg2, arg1, i, dict1, dict2) for i in alist]) 但是,从htop开始,计算一直在使用单核运行。请注意,dict1和dict2是两个大字典,每个字典在装入内存时各自大约5Gb。但是,我还观察到内存占用已经停止增长,而程序仍在单核中运行。与字典并行化时是否有任何限制。我对大型pandas.DataFrame使用了类似的方法,效果很好。

更新:我已经做过一些实验,这使我相信这不是字典问题(我尝试用DataFrame替换它们,仍然是相同的行为),而是并行化的数据大小。使用部分函数和map也无济于事。

0 个答案:

没有答案