如何使python多处理代码对增加的数据量更加健壮? 我使用pool.apply\u async为每个染色体、模拟和分割提交作业。 每个拆分最多可以有100K行。通过这种方式,我使每一份工作的规模相等。 并累积来自pool.apply\u async的结果
numofProcesses = multiprocessing.cpu_count()
pool = multiprocessing.Pool(processes=numofProcesses,maxtasksperchild=10)
all_result1={}
all_result2={}
def accumulate(result):
result1=result[0]
result2=result[1]
accumulate(resulst1,all_result1)
accumulate(resulst2,all_result2)
for each chr:
for each sim:
for each chrbased_simbased_split:
pool.apply_async(func, args=(too,many,),callback=accumulate_result)
pool.close()
pool.join()
但是,似乎完成了太多的pool.apply\u异步调用。 e、 g:从(chr1,sim1)开始,已经完成了(chr1,sim97)的作业调用,而(chr1,sim3)的结果尚未返回。 因此,池中活动的作业太多,占用了大量内存
是否有一种方法可以以更可控的方式发送作业:当作业完成时,否则pool.apply\u async会消耗大量内存(~50 GB),并且很快会出现内存错误
希望我能得到一些帮助。 谢谢
目前没有回答
相关问题 更多 >
编程相关推荐