如何查看 Dask 计算任务的进度?
Posted
技术标签:
【中文标题】如何查看 Dask 计算任务的进度?【英文标题】:How to see progress of Dask compute task? 【发布时间】:2018-08-08 22:25:33 【问题描述】:当我使用 Dask 运行计算任务时,我想在 Jupyter 笔记本上看到一个进度条,我正在从一个 +4GB 的大型 csv 文件中计算 id
列的所有值,有什么想法吗?
import dask.dataframe as dd
df = dd.read_csv('data/train.csv')
df.id.count().compute()
【问题讨论】:
你检查了吗:github.com/tqdm/tqdm? 【参考方案1】:This resource 提供两种情况(本地和分布式)的完整代码示例以及有关使用 Dask Dashboard 的更多详细信息。
请注意,在 Jupyter 笔记本中工作时,您可能必须将 ProgressBar().register()
调用和要跟踪的计算调用(例如 df.set_index('id').persist()
)分成两个单独的单元格,以便实际显示进度条。
做:
不要这样做:
【讨论】:
【参考方案2】:如果您使用的是单机调度程序,请执行以下操作:
from dask.diagnostics import ProgressBar
ProgressBar().register()
http://dask.pydata.org/en/latest/diagnostics-local.html
如果您使用的是分布式调度程序,请执行以下操作:
from dask.distributed import progress
result = df.id.count.persist()
progress(result)
或者只使用仪表板
http://dask.pydata.org/en/latest/diagnostics-distributed.html
【讨论】:
是否有机会在仪表板上查看完成任务的总时间? 一个单独的功能/任务?不会。任务包含任意 Python 代码,因此行为方式无法预测。 在运行 .register 时会在哪里看到进度条? 当我使用带有进度条的 dask 时,它只是冻结为零,同时产生足够的热量和 CPU 使用率,我认为它正在做某事。进度条如何更新? 这非常适合在 Kaggle 上运行 Dask,它似乎不支持仪表板(参见 kaggle.com/questions-and-answers/54405)以上是关于如何查看 Dask 计算任务的进度?的主要内容,如果未能解决你的问题,请参考以下文章