【问题标题】:How to see progress of Dask compute task?如何查看 Dask 计算任务的进度?
【发布时间】: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()

【问题讨论】:

标签: python-3.x jupyter-notebook distributed-computing dask


【解决方案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
    猜你喜欢
    • 2019-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 2017-02-10
    • 2021-11-08
    • 2015-12-12
    相关资源
    最近更新 更多