Python多处理,池中仅运行2000个作业,并停止运行

问题描述 投票:0回答:1

我想在2000个单独的数据上运行代码模块。为此,我使用了以下python代码

num_workers = multiprocessing.cpu_count() 
pool = multiprocessing.Pool(processes=num_workers)
print 
results = [pool.apply_async(run_Nested_Cage, args=(bodyid,)) for bodyid in body_IDs]
output = [p.get() for p in results]

它运行良好的body_IDs中的50个数据但是当我给2000个机构它的开始运行正常但在生成424个机构的结果后,程序停止没有任何错误。

我在AWS EC2 linux ubuntu服务器上运行它,具有8核32 GB RAM和100GB存储。

任何人都可以帮我确定解决方案吗?

python python-multiprocessing pool
1个回答
0
投票

听起来像内存问题,未捕获的异常或代码复杂性问题。

  1. 添加一些您可以稍后禁用的“调试”日志
  2. 尝试在游泳池中旋转,而不是一个巨大的游泳池
  3. 偶尔终止池实例以释放内存
  4. 运行一些分析器

剖析:

© www.soinside.com 2019 - 2024. All rights reserved.