Jupyter Lab中的ipyparallel并行函数调用示例

时间:2018-12-14 03:03:50

标签: python-3.x jupyter jupyter-lab

我发现很难从jupyter实验室中找出如何使用ipyparallel来并行执行两个功能。有人可以给我一个例子,说明如何完成吗?例如,同时运行这两个功能:

import time

def foo():
    print('foo')
    time.sleep(5)

def bar():
    print('bar')
    time.sleep(10)    

1 个答案:

答案 0 :(得分:1)

因此,首先您需要确保已安装ipyparallelipycluster正在运行-instructions here

完成此操作后,下面是一些经过修改的代码,它们将并行运行两个函数:

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())

我删除了打印语句,因为您无法从子进程回调到父Jupyter会话中进行打印,但是我们当然可以返回结果-我在这里阻塞,直到两个结果都完成,但是您可以打印出结果可用时