如何调试和修复iPython并行';s";内核重启";ipython笔记本上的信息
每次我使用如何调试和修复iPython并行';s";内核重启";ipython笔记本上的信息,python,ipython,jupyter,ipython-parallel,Python,Ipython,Jupyter,Ipython Parallel,每次我使用iPython parallel(ipyparallel)运行非常耗时的任务时,我都会收到一条弹出消息“内核重启内核似乎已死机。它将自动重启。” 调试这种情况的好方法是什么?我会在我的程序上打印每行代码,可能在完成所有进程之后,完成内核模块并重新启动 i、 例如,在下面的代码中,在执行几次(通常是10次)后,内核在打印“finishparallel”消息之前死亡。然后,在死亡之前,每次都会打印“FinishRun99” 因此,我猜内核在完成所有并行过程后从并行引擎返回时会死亡。但我不
iPython parallel(ipyparallel)
运行非常耗时的任务时,我都会收到一条弹出消息“内核重启内核似乎已死机。它将自动重启。”
调试这种情况的好方法是什么?我会在我的程序上打印每行代码,可能在完成所有进程之后,完成内核模块并重新启动
i、 例如,在下面的代码中,在执行几次(通常是10次)后,内核在打印“finishparallel”消息之前死亡。然后,在死亡之前,每次都会打印“FinishRun99”
因此,我猜内核在完成所有并行过程后从并行引擎返回时会死亡。但我不知道如何调试和修复它
from IPython.parallel import Client
from IPython import parallel
from IPython.parallel import require
def run(x):
# run process once for x
...
print "finish run %d" % x
return result
def run_parallel(num):
print("run_parallel: %d times" % num)
rc = parallel.Client()
dview = rc[:]
try:
res = dview.map_async(run, range(100))
wait_watching_stdout() # Real-time output from engines in IPython parallel (http://stackoverflow.com/questions/18086299/real-time-output-from-engines-in-ipython-parallel)
print ("finish parallel")
result = res.get()
finally:
rc.close()
return result
all_result = []
for num in range(500):
r = run_parallel(num)
all_result.append(r)
我的环境
- Ubuntu 14.04
- 蟒蛇2.4.0上的python 2.7.10
- iPython 4.0.0
- ipyparallel 5.0.1