我使用Multiprocessing.Pool进行并行处理。 当输入数据很大(超过1GB)时,我的代码会停止。 池大小正是核心数(12),每个子流程只处理一部分数据。 代码具有以下结构。
pool = multiprocessing.Pool(processes=pool_size, maxtasksperchild=2)
args = []
for j, module in enumerate(list_modules):
args.append((module, ..))
list_answer = pool.map(delegate_buildup, args)
pool.close()
pool.join()
我想知道每个进程都保留了整个数据副本吗? 我的目的是将一部分数据分发给每个子流程。 如果按预期工作,我认为内存使用率可能并不重要,因为我的计算机有128 GB RAM。
是否可以监控每个子进程的内存使用情况?