我想在使用自定义 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, timeout) 文件“/c5/shared/Python/2.7.4-shared/lib/python2.7/site-packages/IPython/parallel/client/client.py”,第 1063 行,等待中 自旋() 文件“/c5/shared/Python/2.7.4-shared/lib/python2.7/site-packages/IPython/parallel/client/client.py”,第 1013 行,旋转 self._flush_results(self._mux_socket) _flush_results 中的文件“/c5/shared/Python/2.7.4-shared/lib/python2.7/site-packages/IPython/parallel/client/client.py”,第 821 行 raise Exception("未处理的消息类型:%s" % msg_type) 例外:未处理的消息类型:apply_request ./ipcltest.py 1.20s 用户 0.40s 系统 0% cpu 25:29.11 总计
有谁知道导致这种行为的原因?