私はいくつかの並列計算を行っており、多くの回帰にわたって適合の良さを評価しています。そうすることで(〜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 ミリ秒
しかし、完了しないジョブが 1 つあります。
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 軽量メッセージング カーネル (共有ライブラリ)