首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异步写入Zarr的Xarray

异步写入Zarr的Xarray
EN

Stack Overflow用户
提问于 2019-12-11 01:20:47
回答 1查看 425关注 0票数 2

全。我正在使用Dask分布式集群在循环中编写Zarr+Dask支持的Xarray数据集,而dataset.to_zarr正在阻塞。当存在阻碍循环继续的掉队块时,这真的会减慢速度。有没有一种方法可以异步执行.to_zarr,这样循环就可以继续下一次数据集写入,而不会被几个掉队的块阻塞?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-11 04:06:45

使用分布式调度器,您无需任何特殊工作即可获得异步行为。例如,如果您正在执行arr.to_zarr,那么您确实需要等待完成。但是,您可以执行以下操作:

代码语言:javascript
复制
client = Client(...)
out = arr.to_zarr(..., compute=False)
fut = client.compute(out)

这将返回一个未来的fut,它的状态反映了整个计算的当前状态,您可以选择是等待它,还是继续提交新工作。您还可以将其显示到进度条(在notebook中),每当内核不忙时,进度条就会异步更新。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59272474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档