使用Dask和Xarray进行并行计算

晶圆厂

我有以下功能

@dask.delayed
def load_ds(p):
    import xarray as xr
    multi_file_dataset = xr.open_mfdataset(p, combine='by_coords', concat_dim="time", parallel=True)
    mean = multi_file_dataset['tas'].mean(dim='time')
    return mean

这将打开一组NetCDF文件(由路径p标识),并计算一段时间内的平均值。

我试图在两个不同的路径(=数据集)上并行运行该函数:

results = []
result1 = dask.delayed(load_ds)(path1)
results.append(result1)
result2 = dask.delayed(load_ds)(path2)
results.append(result2)
   
results = dask.compute(*results)

我也尝试过

results = []
result1 = dask.delayed(load_ds)(path1)
results.append(result1)
result2 = dask.delayed(load_ds)(path2)
results.append(result2)
  
futures = dask.persist(*results)
results = dask.compute(*futures)

但是,我注意到当我尝试检索结果时实际上开始执行:

 print(results[0].values)

再一次,当我检索第二个

 print(results[1].values)

怎么了?有没有办法只检索一次结果对象?

活着

鉴于您到目前为止所做的一切,该如何处理:

delayed_task = dask.delayed(
    lambda L: (L[0].values, L[1].values)
)(results)

“后”

tup = delayed_task.compute()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Matlab进行并行计算

来自分类Dev

使用Scilab或Octave进行并行计算

来自分类Dev

在队列集群上使用Python进行并行计算

来自分类Dev

如何使用C#进行并行计算

来自分类Dev

可能进行优化或使用并行计算

来自分类Dev

如何使用Rayon进行PI的并行计算

来自分类Dev

在 C++ 中使用线程进行并行计算

来自分类Dev

XGBoost如何进行并行计算?

来自分类Dev

R并行计算和僵尸进程

来自分类Dev

并行计算和记录Matlab

来自分类Dev

Julia @parallel 和 SharedArray 的并行计算

来自分类Dev

使用openmp并行计算循环

来自分类Dev

使用位操作并行计算模数

来自分类Dev

使用openmp并行计算循环

来自分类Dev

使用 foreach 函数并行计算

来自分类Dev

并行计算开销

来自分类Dev

并行计算

来自分类Dev

并行计算

来自分类Dev

并行计算方差

来自分类Dev

为什么使用降雪进行并行计算时不平衡负载?

来自分类Dev

使用OpenMPI和调试技巧并行计算数组总和

来自分类Dev

使用bigmemory技术和并行计算找到最频繁的项目?

来自分类Dev

Matlab并行计算-同时播放和记录

来自分类Dev

Haskell:并行计算和monad的“顺序属性”

来自分类Dev

Matlab并行计算-同时播放和记录

来自分类Dev

Julia 中的并行计算和错误分配的内核数量

来自分类Dev

如何在R并行计算中使用Reduce()函数?

来自分类Dev

R中的并行计算:如何使用内核

来自分类Dev

使用Monte Carlo方法并行计算Pi