カスタム numba-fied 関数を使用してすばやく実行する IPython クラスターで計算を実行したいと考えています。オブジェクトのsync_imports
メソッドを使用してインポートを同期しようとしました。dview
問題は、エンジンが numba を正しくロードしていないように見えることですが、numpy は正常にインポートされます...問題を示す短い「最小限の」コードを次に示します。
from IPython.parallel import Client
rc = Client()
dview = rc[:]
print 'before import'
with dview.sync_imports():
import numpy
import numba
print 'no deadlock'
このコードを実行すると、numpy インポートの後に一種のデッドロックが発生し、しばらくすると次のエラーが発生します。
輸入前 エンジンに numpy をインポートする エンジンに numba をインポートしています トレースバック (最新の呼び出しが最後): ファイル「./ipcltest.py」の 12 行目 輸入ナンバー ファイル「/c5/shared/Python/2.7.4-shared/lib/python2.7/contextlib.py」、24 行目、__exit__ 内 self.gen.next() ファイル「/c5/shared/Python/2.7.4-shared/lib/python2.7/site-packages/IPython/parallel/client/view.py」、496 行目、sync_imports 内 r.get() ファイル "/c5/shared/Python/2.7.4-shared/lib/python2.7/site-packages/IPython/parallel/client/asyncresult.py"、119 行目、get self.wait(タイムアウト) ファイル "/c5/shared/Python/2.7.4-shared/lib/python2.7/site-packages/IPython/parallel/client/asyncresult.py"、142 行目、待機中 self._ready = self._client.wait(self.msg_ids, タイムアウト) ファイル "/c5/shared/Python/2.7.4-shared/lib/python2.7/site-packages/IPython/parallel/client/client.py"、1063 行目、待機中 self.spin() ファイル「/c5/shared/Python/2.7.4-shared/lib/python2.7/site-packages/IPython/parallel/client/client.py」、1013行目、スピン self._flush_results (self._mux_socket) ファイル "/c5/shared/Python/2.7.4-shared/lib/python2.7/site-packages/IPython/parallel/client/client.py"、821 行目、_flush_results 内 raise Exception("未処理のメッセージ タイプ: %s" % msg_type) 例外: 未処理のメッセージ タイプ: apply_request ./ipcltest.py 1.20s ユーザー 0.40s システム 0% cpu 25:29.11 合計
この動作の原因について何か考えがある人はいますか?