处理Xarray/Dask内存

处理Xarray/Dask内存,dask,python-xarray,dask-distributed,Dask,Python Xarray,Dask Distributed,我正在尝试使用Xarray和Dask打开一个多文件数据集。但是,我遇到了内存错误 我的文件通常是这种形状: xr.open_dataset("/work/ba0989/a270077/coupled_ice_paper/model_data/coupled/LIG_coupled/outdata/fesom//LIG_coupled_fesom_thetao_19680101.nc") <xarray.Dataset> Dime

我正在尝试使用Xarray和Dask打开一个多文件数据集。但是,我遇到了内存错误

我的文件通常是这种形状:

 xr.open_dataset("/work/ba0989/a270077/coupled_ice_paper/model_data/coupled/LIG_coupled/outdata/fesom//LIG_coupled_fesom_thetao_19680101.nc")                          

<xarray.Dataset>
Dimensions:  (depth: 46, nodes_2d: 126859, time: 366)
Coordinates:
  * time     (time) datetime64[ns] 1968-01-02 1968-01-03 ... 1969-01-01
  * depth    (depth) float64 -0.0 10.0 20.0 30.0 ... 5.4e+03 5.65e+03 5.9e+03
Dimensions without coordinates: nodes_2d
Data variables:
    thetao   (time, depth, nodes_3d) float32 ...
Attributes:
    output_schedule:  unit: d first: 1 rate: 1


30 files --> 41.5 GB
因此,如果我假设有足够的内存来加载数据。但是,当我运行
xr.open_mfdataset
时,我经常会收到以下类型的警告:

distributed.worker - WARNING - Memory use is high but worker has no data to store to disk.  Perhaps some other process is leaking memory?  Process memory: 8.25 GB -- Worker memory limit: 8.59 GB
我想我可以用chunks论点做点什么

任何帮助都将不胜感激;不幸的是,我不知道从哪里开始尝试。原则上,我可以只打开第一个文件(它们将始终具有相同的形状),以了解如何理想地重新压缩文件

谢谢!
Paul

可以在中找到开头函数的
并行
关键字的示例,它们对应于您使用dask的方式

这就是你所需要的

distributed.worker - WARNING - Memory use is high but worker has no data to store to disk.  Perhaps some other process is leaking memory?  Process memory: 8.25 GB -- Worker memory limit: 8.59 GB