如何解决使用dask监视xarrays split,apply,combin的进度
对于我的论文,我正在尝试计算SLOM分数(请参见https://link.springer.com/article/10.1007/s10115-005-0200-2)。 该分数纯粹是空间分数,我正在尝试为较大的数据集计算分数。 (一年以上)。
到目前为止,我创建了一个函数来计算每个时间步的SLOM分数,该函数返回一个包含SLOM值的xarray数据数组。
我正在尝试计算每个时间步长的SLOM值。
当前,我正在使用groupby进行此操作:拆分应用合并策略(http://xarray.pydata.org/en/stable/groupby.html)
grouped_by_time = xrDS.groupby("time")
xrDS["SLOM"]=grouped_by_time.apply(slom_per_timeslice)
为了加快处理过程,我尝试通过将数据作为daskarray加载来使用xarray内置的dask功能:
xrDS = xr.open_dataset(data_path+file_name,chunks={"lat":-1,"lon":-1,"time": "auto"})
根据第一句话:http://xarray.pydata.org/en/stable/dask.html#using-dask-with-xarray
,我认为apply函数应该与daskarrays一起使用现在我的问题是如何监视groupedby.apply函数的进度? 我尝试使用dask进度栏:
from dask.diagnostics import ProgressBar
with ProgressBar():
xrDS["SLOM"]=grouped_by_time.apply(slom_per_timeslice)
给出以下输出:
[########################################] | 100% Completed | 0.1s
[########################################] | 100% Completed | 0.1s
[########################################] | 100% Completed | 0.1s
[########################################] | 100% Completed | 0.1s
[########################################] | 100% Completed | 0.1s
[########################################] | 100% Completed | 0.1s
[########################################] | 100% Completed | 0.1s
[########################################] | 100% Completed | 0.1s
[########################################] | 100% Completed | 0.1s
数百次。
那我如何正确查看整体计算的进度?
请注意,我正在个人台式机上的Jupyter笔记本上进行小型测试,并在研究小组的计算机上进行较大的运行。我只有ssh可以访问这台机器。 两种情况都是单机,因此我认为简单的默认多线程调度程序就足够了。
我已经看过了dask仪表板,但是仅使用ssh访问该怎么办?
解决方法
您可以使用client = distributed.Client()
来设置将适用于仪表板的群集。参见https://distributed.dask.org/en/latest/quickstart.html#setup-dask-distributed-the-easy-way
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。