小编aar*_*ing的帖子

并行引导,替换为xarray / dask

我想执行N = 1000引导,并替换网格数据。一次计算大约需要0.5s。我可以访问具有48个内核的超级计算机专用节点。因为重采样是相互独立的,所以我天真地希望将工作负载分配到所有或至少多个内核上,并使性能提高0.8 * ncores。但是我不明白。

我仍然缺乏对敏捷的了解。基于设置敏捷工作者数量的最佳实践,我使用:

from dask.distributed import Client
client = Client(processes=False, threads_per_worker=8, n_workers=6, memory_limit=‘32GB')
Run Code Online (Sandbox Code Playgroud)

我也尝试过SLURMCluster,但我想我首先需要了解自己的工作,然后进行扩展。

我的MWE:

  1. 创建样本数据
  2. 我想申请的写功能
  3. 编写重采样init函数
  4. 使用引导程序(= N)作为参数编写引导功能:请参阅下面的许多实现
  5. 执行引导
import dask
import numpy as np
import xarray as xr
from dask.distributed import Client

inits = np.arange(50)
lats = np.arange(96)
lons = np.arange(192)
data = np.random.rand(len(inits), len(lats), len(lons))
a = xr.DataArray(data,
                        coords=[inits, lats, lons],
                        dims=['init', 'lat', 'lon'])

data = np.random.rand(len(inits), len(lats), len(lons))
b = xr.DataArray(data,
                        coords=[inits, lats, lons],
                        dims=['init', 'lat', 'lon'])

def func(a,b, dim='init'): …
Run Code Online (Sandbox Code Playgroud)

multiprocessing resampling dask python-xarray

5
推荐指数
1
解决办法
98
查看次数

标签 统计

dask ×1

multiprocessing ×1

python-xarray ×1

resampling ×1