2017-04-19 53 views
2

当与后端multiprocessing一起使用时,进度条的运行非常漂亮,但使用distributed调度程序作为后端时看起来完全不起作用。Dask ProgressBar不适用于分布式后端

有没有办法解决这个问题?还是另一种解决方案distributed包本身有一些进度条,但它们都需要一个未来的工作列表。

回答

1

关键的区别在于,使用多线程/处理时,结果将传送回控制线程,但是使用分布式,它们将在群集上异步计算(即使它位于本地计算机上)。 如果你以前有类似的代码

with ProgressBar(): 
    out = collection.compute() 

现在你可以做

from dask.distributed import progress 
out = c.compute(collection) # c is the client 
progress(out) 

,并收集你的结果:out.result()c.gather(out)

注意,分布式调度也使得图形仪表盘可在http://yourhost:8787,例如,参见status /。在那里你可以看到你的任务得到执行,根本不需要调用进度条。

相关问题