Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >WRF讲解——CFL 错误、SIGSEGV 段错误以及挂起或停止

WRF讲解——CFL 错误、SIGSEGV 段错误以及挂起或停止

作者头像
自学气象人
发布于 2022-10-09 01:54:17
发布于 2022-10-09 01:54:17
3.2K0
举报
文章被收录于专栏:自学气象人自学气象人

原文是由 Kevin Matthew Nuss 所写,本文仅摘取原文部分内容做了简要的翻译,如有不妥之处,还望大家及时指正。点击阅读原文即可跳转至英文版原文界面。

2012 年 7 月写这篇文章,我已经有大约一年没有运行 WRF了。或许我在本文中所写的内容已过时,它只包含当 WRF 不运行时可以尝试的方法。我感觉到你的痛苦,但我无法让它消失。对不起,我希望我能知道更多,以便我可以给你提供帮助。

CFL 错误

从代码可以看出,CFL 错误通常是由垂直风速太快,导致 WRF 无法对其进行处理。就我的经验而言,它们通常发生在较高的山峰上。

尽管与水平风相比,垂直风速较小,但与水平分辨率相比,网格单元的垂直分辨率非常短。所以首先尝试减少时间步长。较短的时间步长保证了风不会在一个时间步长的迭代中穿过一整个网格单元。(这过于简化了 WRF 处理此类事情的真实方式,但这个想法大致正确。)

另一个简单尝试是更改 WRF 的 namelist.input 文件的 dynamics 部分中的epssm 值,但其原理并不是十分清楚 。WRF 中的每个时间步都分为三个较小的子时间步。这允许使用更长的时间步长求解方程。三个子时间步长并不完全相等。epssm 值控制子时间步长的轻微偏移。所以尝试不同的 epssm 值,默认值为 0.1,因此请尝试使用 0.3 或其他几个值。我忘记了允许的范围。

显然对于很长的运行,你不能使用很短的时间步长,否则需要很长时间才能完成。我本人没有亲自尝试过,但对于长时间的气候降尺度的模式运行,有些人使用更长的时间步长但较短的“restart”时间间隔。当 CFL 错误发生时,WRF 停止,在最近一次正常运行且保存的restart进行重启,但时间步要缩短。一段时间后,在短时间步保存一次或多次正常的restart文件后,将模式断掉,时间步增加回正常值,并继续运行。基本上,只针对相对较少的有错误的时间段减少时间步长。这需要仔细观察,但您可以自己决定是否值得为获得更短的整体运行时间而增加额外的人员时间。

对我来说,CFL 错误在模式刚开始运行时更为常见。有些人建议您不要使用模式最开始前 8 小时或 12 小时的模拟结果,因为 WRF 正在“spin-up”,即用于初始化 WRF 的低分辨率天气数据需要一段时间才能平滑。云在模式中形成并成为天气影响因素也需要时间。在那段时间里,波动多次穿越网格造成不稳定现象。如果在运行的刚开始就出现错误,请尝试在从稍早的时间开始运行;前面的时间可能没有导致错误出现的条件,并且可能会在到达您的研究时间段之前初始场就变得足够平滑。

如果您多次运行相同的网格,这里有一些方法可以减少在其运行期间出现 CFL 错误的次数。首先,消除靠近网格边缘的高峰,包括内部和外部网格。山峰的陡峭会导致模型内有更多的垂直风。由于分辨率的变化,有时会出现网格边缘的气象值“反射”。这主要是一种数值现象,但随着波反射回自身,会导致靠近网格边界的值略有增加或减少。在那里有一个高峰值会触发额外的极端情况,从而导致 CFL 错误。并且由于角有两条边,所以在网格的边角要避免出现高峰。其次,增加网格单元的高度。垂直风穿过一个高大的网格单元需要更多的时间,所以不太可能导致 CFL 错误。三是加大垂直阻尼。WRF 有几种方法可以做到这一点。您可以通过阅读 WRF 用户指南了解以及使用它们。该方法会减慢垂直风的速度,也许您不希望那样,但它有助于解决 CFL 错误。第四,平滑峰值。WPS 处理过程中有一个选项和多个通道来平滑地形。WRF 也有一些 namelist 选项可以实现这种目的,可以了解一下。

SIGSEGV 分段错误和停止或挂起

抱歉,我不知道是什么原因导致即使运行没有出错并结束,WRF 也会挂起或停止输出。有时 WRF 只是停止输出,运行它的处理器有时会显示正处在忙碌中;有时不是,程序会因"segmentation fault," SIGSEGV message而停止。segmentation fault是指程序尝试访问不受程序控制的内存位置时,操作系统发送“SIGSEGV”信号,杀死程序。使用一些修复 CFL 错误的技巧有时也会修复这些错误。

这里有一些其他的方法有时对我有用。首先,尽量不要使用多线程编译选项,即编译前的 smpar 选项。如果您在一个节点上有多个核心,请使用dmpar 选项。你的 mpirun -np 或 mpiexec -np 命令可以实现跨节点上启动多个 WRF。对我来说,如果我在一个节点上使用所有内核,WRF 的效率会降低。是的,这是一种资源浪费,但总比没有好。其次,更改使用的节点数。我不知道为什么这很重要,但它对我让某些东西运行或不运行产生了影响(就小编个人经验来看,通过该方法更改节点数目或者核心数,本质就是改变了使用到的内存。具体可以见slurm作业调度系统(四)中的问题7进行理解)。第三,尝试改变options。做一些大的改变,直到有效果。然后使用它来确定哪些较小的更改可能起作用。让我再说一遍,修复 CFL 错误的一些方法有时也有助于解决段错误和其他程序停止。更改时间步长、开始时间或网格大小/位置最有可能有所帮助。

我自己还没有尝试过,但如果您在编译(共享式内存/smpar)中使用多线程选项,将环境变量OMP_STACKSIZE 设置为 4G 可能会有所帮助。我最近在发给 wrf 用户的一封电子邮件中读到了这一点。也许 4G 以外的值可能会起作用,这取决于每个节点有多少内存。您可能必须将它放在作业脚本中,因为我认为它是在运行时而不是编译时发挥作用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自学气象人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
WRF运行wrf.exe出现forrtl: severe (174)问题原因与解决合集
“分段错误可能难以追踪。由于通常没有明确的错误消息,因此可能需要反复试验才能找出问题所在。我试了好久(•́へ•́╬)!大致总结了一下,给大家参考,如果还有其他情况,欢迎大家补充。”
自学气象人
2022/11/02
2.3K0
WRF运行wrf.exe出现forrtl: severe (174)问题原因与解决合集
【WRF小技巧】WRF如何得到更好的模拟结果?
编者按:这是新开的一个系列,有时间会逐步将WRF官方培训的ppt挑选个人认为重要的进行翻译,以及结合个人的使用经验进行一些解释。由于个人水平有限,难免会出现偏差和错误,欢迎斧正。
自学气象人
2022/11/02
3.4K0
【WRF小技巧】WRF如何得到更好的模拟结果?
WRF模式WPS前处理细解
WPS(WRF Preprocessing System)是为了真实数据模拟提供输入的前处理过程,包含了3个主要程序,分别为:geogrid.exe、ungrib.exe和metgrid.exe。[^1]
气象学家
2020/10/09
7.7K0
WRF模式WPS前处理细解
【WRF完整案例代码】在超算上使用WRF模拟飓风马修登陆
本教程将以官网—2016年10月飓风马修登陆为例,介绍WRF-ARW在北京超算中心上的基础运行操作。
自学气象人
2023/06/21
1.4K0
【WRF完整案例代码】在超算上使用WRF模拟飓风马修登陆
WRF第3课:在超算上运行WRF官网案例——重启动-海温更新-嵌套
本教程将以官网—2016年10月飓风马修登陆为例,介绍在实际应用WRF-ARW中涉及到的重启动、海温更新、以及网格嵌套等操作流程(基于北京超算中心云服务器平台)。
MeteoAI
2023/01/18
4.2K0
[译] SIGSEGV:Linux 容器中的分段错误(退出代码 139)
SIGSEGV,也称为分段违规或分段错误,是基于 Unix 的操作系统(如 Linux)使用的信号。它表示程序尝试在其分配的内存之外进行写入或读取,由于编程错误、软件或硬件兼容性问题或恶意攻击(例如缓冲区溢出)。
CS实验室
2022/08/01
8.6K0
[译] SIGSEGV:Linux 容器中的分段错误(退出代码 139)
小朋友你是否有很多问号(一)
https://www.heywhale.com/mw/notebook/655ec29e998f42fde5818d35
用户11172986
2024/06/20
1290
小朋友你是否有很多问号(一)
SoC出现段错误,如何快速定位到故障函数?
定位SoC中段错误的核心思路是“确定范围 -> 提取信息 -> 复现问题 -> 修复”:
不脱发的程序猿
2025/01/07
1800
SoC出现段错误,如何快速定位到故障函数?
NASA数据集——2016-2019 年期间天气研究和预报(WRF)随机时间倒拉格朗日传输(STILT)足迹数据产品
ABoVE: Level-4 WRF-STILT Footprint Files for Circumpolar Receptors, 2016-2019
此星光明
2024/03/24
1711
NASA数据集——2016-2019 年期间天气研究和预报(WRF)随机时间倒拉格朗日传输(STILT)足迹数据产品
Unity 水、流体、波纹基础系列(二)——方向流体(Directional Flow)
这是流体材质的第二篇,继上一篇纹理变形之后,讲述如何对齐流体而不再是将它们进行扭曲。
放牛的星星
2020/08/28
4.6K0
memset栈空间出现段错误
代码编译运行环境:Ubuntu 64bits+g++(-g -m64),-g表示生成调试版本,-m64表示生成64bits程序。
恋喵大鲤鱼
2018/08/03
3.5K0
memset栈空间出现段错误
Unity基础教程系列(新)(五)——计算着色器(Rendering One Million Cubes)
这是关于学习使用Unity的基础知识的系列文章中的第五篇。这次,我们将使用计算着色器显著提高图形的分辨率。
放牛的星星
2021/03/10
4K0
Unity基础教程系列(新)(五)——计算着色器(Rendering One Million Cubes)
速度提升45000倍,英伟达用傅里叶模型实现前所未有天气预报准确率
机器之心报道 机器之心编辑部 英伟达在天气预报上放出了「大招」。 现代数值天气预报(numerical weather prediction, NWP)可以追溯到 1920 年代。当今,数值天气预报已经无处不在,并且为交通、物流、农业和能源生产等关键部门的经济规划做出了贡献。准确的天气预报通过提前通知极端事件挽救了无数人的生命。 过去几十年,天气预报的质量一直在稳步提高。最早的单点动态建模数值天气预报是由英国科学家 Lewis Fry Richardson 在 1922 年使用计算尺和对数表计算得出的,并用
机器之心
2022/03/04
6830
Kubernetes 中容器的退出状态码参考指南
当容器终止时,容器引擎使用退出码来报告容器终止的原因。如果您是 Kubernetes 用户,容器故障是 pod 异常最常见的原因之一,了解容器退出码可以帮助您在排查时找到 pod 故障的根本原因。
公众号: 云原生生态圈
2024/01/23
4550
Kubernetes 中容器的退出状态码参考指南
Unity性能调优手册7:渲染优化,DrawCall,剔除,Shader,LOD,TextureStreaming
翻译自https://github.com/CyberAgentGameEntertainment/UnityPerformanceTuningBible/ 本章介绍围绕Unity图形功能的调整实践。
立羽
2023/10/26
2.8K0
Unity性能调优手册7:渲染优化,DrawCall,剔除,Shader,LOD,TextureStreaming
Inception-V3论文翻译——中文版
本文介绍了深度学习在计算机视觉领域中的发展及挑战,并总结了一些重要的技术、算法和论文。
Tyan
2017/12/28
1.5K0
Inception-V3论文翻译——中文版
Unity基础教程系列(新)(四)——测量性能(MS and FPS)
这是关于学习使用Unity的基础知识的系列教程中的第四篇。对测量性能的介绍。我们还将在函数库中添加从一个函数转换为另一个函数的功能。
放牛的星星
2021/02/12
3.9K0
Unity基础教程系列(新)(四)——测量性能(MS and FPS)
基础渲染系列(十八)——实时光全局光照、探针体积、LOD组
这是关于渲染的系列教程的第18部分。第17部分中总结了烘焙的全局照明之后,我们将继续支持实时GI。之后,我们还将支持光探针代理体积(LPPVs)和LOD组的淡入淡出。
放牛的星星
2020/07/10
4.4K0
基础渲染系列(十八)——实时光全局光照、探针体积、LOD组
30分钟了解所有引擎组件,132个Unity 游戏引擎组件速通!【收藏 == 学会】
Mesh Filter 组件包含对网格的引用。该组件与同一个游戏对象上的 Mesh Renderer 组件配合使用;Mesh Renderer 组件渲染 Mesh Filter 组件引用的网格。
呆呆敲代码的小Y
2023/07/05
3.2K0
30分钟了解所有引擎组件,132个Unity 游戏引擎组件速通!【收藏 == 学会】
Kaggle冠军解读:风电场短期风况预测任务方案
近年来,随着陆上风电机组装机厂址的扩展,在天气突变较多的地区安装的风力发电机组受到气象变化的影响愈发显著。在风况突变时,由于控制系统的滞后性,容易导致机组出现载荷过大,甚至是倒机的情况,造成重大经济损失。同时,现有超短期风功率预测的准确性较差,导致风功率预测系统对电网调度的参考价值不大,并且会导致业主产生大量的发电量计划考核。由于常见的激光雷达等风速测量产品单价高昂、受天气影响较大,难以实现批量化的应用部署,且在大时间空间尺度下仍难以具有可靠的前瞻性。因此,可靠的超短期风况预测迫在眉睫。
用户1386409
2022/03/31
7940
Kaggle冠军解读:风电场短期风况预测任务方案
推荐阅读
相关推荐
WRF运行wrf.exe出现forrtl: severe (174)问题原因与解决合集
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档