首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将xarray转换为numpy数组- oom-kill事件

将xarray转换为numpy数组- oom-kill事件
EN

Stack Overflow用户
提问于 2022-02-02 12:54:38
回答 1查看 113关注 0票数 0

我使用xarray读取和修改用于我的分析的数据集。

这就是数据回复:

要绘制数据,我必须将其转换为numpy数组:

Z_diff.values()

这样做时,我会得到错误消息:

slurmstepd: error: Detected 1 oom-kill event(s) in step 33179783.batch cgroup. Some of your processes may have been killed by the cgroup out-of-memory handler.

我使用以下设置:

代码语言:javascript
运行
复制
#SBATCH --ntasks-per-node=16
#SBATCH --nodes=4
#SBATCH --mem=250G
EN

回答 1

Stack Overflow用户

发布于 2022-02-02 23:07:46

看起来你的记忆快没了。当使用dask (链接)时,数据会被分割成块(在您的例子中是183个)。因此,数据集中只有一小部分同时保存在内存中。Numpy数组不能以这种方式工作,所以当您使用.values()时,整个数据集将被读取到内存中,并且超出了内存。

根据您想要绘制的内容,您可能可以单独绘制每个块,或者在同一地块上一次绘制来自每个块的数据。或者,只需绘制一个数据子集,以避免将所有数据同时读取到内存中。最后,如果可用,您也可能请求更多的内存,直到您不再得到此错误。

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

https://stackoverflow.com/questions/70955991

复制
相关文章

相似问题

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