【问题标题】:Can dask dashboard be used on SageMaker (Labs 1.2.*)?可以在 SageMaker(实验室 1.2.*)上使用 dask 仪表板吗?
【发布时间】:2023-03-12 22:15:01
【问题描述】:

我没有对实验室环境的浏览器访问权限,而且目前可用的实验室 dask 扩展对我不起作用。 我希望能够看到我的 dask 项目的进度和性能数据,目前还没有运气。

compute() 有时需要几个小时(没关系,有很多数据),我觉得整个过程都是盲目的。

您知道实验室 1.2 是否支持任何内容?进度条也没有运气。 该实例位于 AWS SageMaker 上,因此我无法访问 Web 控制面板。

谢谢!

【问题讨论】:

  • 我不确定 sagemaker 上的这一点,但应该有它的选项。虽然我完全不确定,但为了指导您,我可能会建议您研究 ssh 隧道/反向 ssh 隧道。这将使您在 ssh 连接准备好后打开本地计算机上的仪表板。

标签: python dask dask-distributed dask-dataframe


【解决方案1】:

可以将大部分仪表板信息保存在带有performance_report 的文件中(参见docs):

from dask.distributed import Client, performance_report
import time

client = Client()

def f(x):
    time.sleep(x)
    return x

with performance_report():
    futures = client.map(f, range(5))
    results = client.gather(futures)

请注意,这只会在计算停止后保存最终文件(因为它已完成或由于错误/中断)。

如果您想要在特定步骤/间隔保存信息的东西,最简单的解决方案是将计算分成块并将信息保存在每个块上。请注意,这种 hacky-saves 会降低并行化的效率,因为在频繁的 .gather.compute 操作期间,一些工作人员可能最终处于空闲状态。

另一个选项是定期转储client.get_task_stream() 的内容,它返回一个元组,其中包含调度程序上每个任务的字典。这可以在使用as_completed 完成每个未来之后或以某种周期性(例如while 循环内的每n 秒)完成。我想不出一个通用的解决方案,但应该可以。

您可能还会发现this answer 中的链接很有用。

【讨论】:

  • 所以无法实时查看?如果我发现有问题就取消,而不是如果我觉得花费了太长时间。谢谢!
  • 很遗憾,我不知道有什么好的方法。我用另一个解决方案更新了答案,但这只是一个建议,因此您需要找到一种合适的方法将其集成到您的代码中。
猜你喜欢
  • 2019-07-31
  • 2015-04-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-14
  • 2019-12-25
  • 2022-01-16
  • 2016-11-25
  • 2013-07-04
相关资源
最近更新 更多