2

我想在使用自定义 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 总计                                                                          

有谁知道导致这种行为的原因?

4

0 回答 0