IPython 並列を使用して、SGE クラスターで並列ジョブを実行しています。ジョブを送信し、後ですべてのジョブが終了したときに、ジョブ メッセージ ID を使用してハブ データベース (SQlite) から結果を取得します。これは、コントローラーがクラッシュするまで問題なく機能しました。コントローラーを再起動すると、古いコントローラーに送信されたジョブを取得できませんでした。このエラーが発生しました:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/IPython/parallel/controller/hub.py", line 1281, in get_results
raise KeyError('No such message: '+msg_id)
KeyError: u'No such message: 7f1996c0-deb0-4d7c-8782-619c86d2d064'
データベース ファイル (tasks.db) はまだ存在し、ハブがクラッシュする前と同じサイズです。だから、結果はデータベースにあると確信しています。新しいコントローラーを使用してそれらを取得できますか? また、bd_query コマンドを使用すると、次のようになります。
rc.db_query({'msg_id' : '7f1996c0-deb0-4d7c-8782-619c86d2d064'})
空の結果が得られます。