我在jupyter notebook上使用python中的多进程。我能够使用工作者池来并行化代码。我正面临着内存释放的问题。
import multiprocessing
def forSources(n):
temp_pairings = []
temp_pairings += dfs_edges2(digraph, flights[n[0]], n[1])
print(multiprocessing.current_process().name, len(temp_pairings))
return (temp_pairings)
for depth in range(0, 2):
pool = multiprocessing.Pool()
result = pool.map(forSources, [[i, depth] for i in range(0, 3000)])
for pairings in result:
final_result += pairings
if len(final_result) > 5000:
break
pool.terminate()
pool.join()解压final_result后,我想在进程终止时立即释放内存。例如:此运行占用大约3.5 GB的RAM,并且在运行完成后,系统监视器仍显示额外的3.5 GB。我已经尝试删除所有形成的变量,即使关闭jupyter笔记本也解决不了问题。
发布于 2017-12-12 01:03:05
尝试存储所有衍生进程的进程id,并在完成后杀死所有进程。
https://stackoverflow.com/questions/47732089
复制相似问题