运行并行计算的iPython在结果处于一种奇怪的状态

时间:2015-07-24 18:30:10

标签: parallel-processing ipython ipython-parallel

我正在做一些并行计算,在许多回归中评估拟合的好坏。在这样做(运行~60K计算),我以某种方式设法让iPython进入一个奇怪的状态。

将对象推送到所有节点

%%px
model_analytics = ResultsAnalytics(rows,  store['data_model'])

派遣工作:

%%time 
ar = lview.map(lambda x: model_analytics.generate_prediction_heuristic(x), rows.index)

工作正常。事实上,大部分工作都已完成:

%%time 
completed = ar.progress
print completed
print "Remaining {0} min".format((ar.elapsed/completed) * (len(rows) - completed)/60)
  

66229

     

剩余0.0205939930854分钟

     

CPU时间:用户211毫秒,系统:163毫秒,总计:374毫秒

     

壁垒时间:364毫秒

但有一项工作没有完成!

for i, status in enumerate(ar.status): 
    if status != 'ok': print i, status 
  

35230无

msg = ar.msg_ids[35230]
lview.abort(msg)
print lview.get_result(msg)
print lview.wait(jobs=msg, timeout=5)
  

<AsyncResult: unknown>

     

编辑:我希望我能够获得所有结果,但已经不复存在,但没有快乐。

msgs = ar.msg_ids[0:35230]
res1 = [lview.get_result(msg) for msg in msgs]
print res1[0:10]
  

[<AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>, <AsyncResult: unknown>]

我还没有尝试重现这一点。什么可能导致此错误?有什么不对吗?是否有一种更优雅的方法可以从中恢复?

版本:

  • IPython:3.2.1
  • pyzmq:14.7.0
  • zeromq:dpkg -l | grep libzmq产量:
      

    ii libzmq-dev:amd64 2.2.0 + dfsg-5 amd64轻量级消息传递内核(开发文件)   ii libzmq1:amd64 2.2.0 + dfsg-5 amd64轻量级消息传递内核(共享库)

0 个答案:

没有答案