ipyparallel并行函数调用Jupyter实验室中的示例



我发现很难弄清楚如何使用jupyter实验室的ipyparallel并行执行两个函数。有人能给我举一个应该如何做的例子吗?例如,同时运行这两个功能:

import time
def foo():
print('foo')
time.sleep(5)
def bar():
print('bar')
time.sleep(10)    

因此,首先需要确保ipyparallel已安装并且ipycluster正在运行-此处为说明。

一旦你完成了这项工作,下面是一些经过调整的代码,它将并行运行你的两个函数:

from ipyparallel import Client
rc = Client()
def foo():
import time
time.sleep(5)
return 'foo'
def bar():
import time
time.sleep(10) 
return 'bar'  
res1 = rc[0].apply(foo)
res2 = rc[1].apply(bar)
results = [res1, res2]
while not all(map(lambda ar: ar.ready(), results)):
pass
print(res1.get(), res2.get())

N。B.我删除了打印语句,因为你不能从子进程回调到父Jupyter会话中进行打印,但我们当然可以返回结果-我在这里阻止,直到两个结果都完成,但你可以在结果可用时打印

最新更新