2024-06-17 14:51:51 发布
网友
我没有对实验室环境的浏览器访问权限,而且实验室可用的dask扩展到目前为止对我不起作用。 我希望能够看到我的dask项目的进度和性能数据,现在运气不好
compute()有时需要几个小时(没关系,有很多数据),我觉得整个过程都是盲目的
你知道实验室1.2是否支持任何东西吗?progressbar也不走运。 该实例位于AWS SageMaker上,因此我无法访问web仪表板
谢谢
可以使用performance_report将大多数仪表板信息保存在文件中(请参见docs):
performance_report
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)
请注意,这将仅在计算停止后保存最终文件(因为它已完成或由于错误/中断)
如果您想要以特定的步骤/间隔保存信息,最简单的解决方案是将计算分割成块并保存每个块上的信息。请注意,这种恶意保存将降低并行化的效率,因为在频繁的.gather或.compute操作期间,一些工作人员可能会空闲
.gather
.compute
另一个选项是定期转储client.get_task_stream()的内容,它返回一个元组,其中包含调度程序上每个任务的字典。这可以在每个未来完成^{}后完成,也可以有一定的周期性(例如n循环中的每while秒)。我想不出一个普遍的解决办法,但它应该是可能的
client.get_task_stream()
n
while
您可能还会发现this answer中的链接很有用
可以使用
performance_report
将大多数仪表板信息保存在文件中(请参见docs):请注意,这将仅在计算停止后保存最终文件(因为它已完成或由于错误/中断)
如果您想要以特定的步骤/间隔保存信息,最简单的解决方案是将计算分割成块并保存每个块上的信息。请注意,这种恶意保存将降低并行化的效率,因为在频繁的
.gather
或.compute
操作期间,一些工作人员可能会空闲另一个选项是定期转储} 后完成,也可以有一定的周期性(例如
client.get_task_stream()
的内容,它返回一个元组,其中包含调度程序上每个任务的字典。这可以在每个未来完成^{n
循环中的每while
秒)。我想不出一个普遍的解决办法,但它应该是可能的您可能还会发现this answer中的链接很有用
相关问题 更多 >
编程相关推荐