我正在使用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
也无济于事。