我知道有一种全局注册dask.diagnostics.ProgressBar的方法,虽然它很好,但它破坏了我的单元格输出。我还看到了一个不错的distributed.diagnostics.progress函数,该函数可以通过Jupyter Notebook进度栏小部件显示执行进度,但希望可以接收期货。

我在这里遇到的问题是dask.diagnostics.ProgressBar使用stdout(因此在使用进度栏时我无法打印任何内容),并且需要使用Dask / Distributed Future显式调用distributed.diagnostics.progress,但是我有可以计算的函数并返回“结果”类的实例,而不是Dask / Distributed future。

最佳答案

今天的简短回答是“否”。这是可以构建的,但是需要您付出一些努力。

distributed.diagnostics.progress函数在事件循环中运行,因此当笔记本计算机忙于运行单元时,它将停止更新。既无法获得同步的dask.compute体验(提供图表,也提供结果),也无法使用distributed.diagnostics.progress生成的IPython小部件进度栏。

但是,单机调度程序和分布式机调度程序都具有插件系统(这是我们构建进度条的方式),因此,如果您要构建自己的系统,则应该可以扩展这两个系统:


http://dask.readthedocs.io/en/latest/diagnostics.html
http://distributed.readthedocs.io/en/latest/plugins.html

07-24 15:41