MCV的安装和运行
25年5月27日拿到了MCV的代码和运行说明,我来按照这个说明安装和运行一下这个模式。
主要是按照下面的这个网站的说明进行的MCV学习笔记 — mcv-notes 0.1 文档
1.环境变量设置
vim ~/.bashrc
module load netcdf_no_pnetcdf/4.8.1/intel module load jasper/1.900.19/intel module load libpng/1.6.39/intel module load cmake/3.25.3/gnu module load pnetcdf/1.12.3/intelexport NCEPLIBS_DIR=/g5/jiangqg/share/NCEPlibs export PNETCDF=/g1/app/mathlib/pnetcdf/1.12.3/intel
2.MCV静态数据
在~/.bashrc 中添加
#静态数据目录
export FIX_DATA=/g5/jiangqg/share/FIX_DATA
3.源代码准备
MCV的代码似乎不是完全公开的,这个只能自己想办法要了。
我从giteadmin/MCV: MCV模式源代码仓库 - MCV - Gitea: Git with a cup of tea
下载了一个然后上传到我的超算上。解压之后可以看到mcv目录下有下面几个文件夹和一个主文件。
ccpl_dp_coupling IO parallel share dynamics main.F90 physics
可是这样下载的是不全的,于是我采用git命令行的方式,将代码拷贝到我的机器上。
然后我就有了一个CCPL_PMCV的文件夹,里面有全部的代码了。再进行具体工作之前,我需要先把模式;跑起来。
4.MPS安装和运行
由于在mcv主模式的运行之前需要MPS,所以先来进行MPS的安装。
首先是获得代码
git clone --recursive https://github.com/DwyaneChou/MPS.gitgit clone http://10.28.30.184:3000/zhoull/MPS.git
通过这两个命令之一,因为一个是github ,一个是内网。获得MPS的代码
然后开始安装
cd buildFC=ifort CC=icc cmake ..
然后会生成这几个文件
make -j 8
会生成好几个可执行文件。
cd ../runln -sf ../build/*.exe .
这一步把可执行文件移到run文件夹下面
然后开始运行MPS
# 进入MPS根目录cd MPS# 链接MPS所需静态数据到运行目录下ln -sf $FIX_DATA/source_data .# 进入MPS运行目录cd run# 编辑namelist.input文件# 执行gengeo程序生成MCV网格和地形文件mcv_geog.nc./gengeo.exe# 链接GRIB文件,生成GRIBFILE.XXX文件
# NCEP GFS测试数据示例./link_grib.csh FIX_DATA/source_data/met_data/NCEP_GFS/2022081000/gfs.t00z.pgrb2.0p50.f000# 解码GRIB文件,生成FILE:YYYY-MM-DD_HH的二进制文件./ungrib.exe# 进行变量场水平插值,生成mcv_met_YYYYMMDDhhmmss.nc./interpmet.exe# 进行变量场垂向插值,生成最终MCV驱动场mcv_input_$YYYYMMDDhhmmss.nc(区域版本同时生成侧边界条件数据)./realdata.exe
./ungrib.exe 成功
./interpmet.exe的时候又出现了问题,是怎么回事
可能这个时次的文件没有问题
最后再运行这个可执行文件./realdata.exe
最终成功得到了我们想要的数据文件,这样前处理应该是成功了的。
我们也可以看到这里面的过程非常类似于之前的WRF模式,那时候WRF的前处理系统叫WPS.
5.MCV模式安装
这里把CCPL_PMCV作为根目录,然后进到PMCV路径下
CCPL_PMCV/Experiments/PMCV
然后运行下设置环境的脚本。
source setenv.sh
然后修改一下wckey,这是气象局新超算上的一个神奇的代号,
vim config/common/machine/generic_linux/submit.sbatch.generic_linux
在里面80行,修改一下wckey为自己的。
然后就是准备和编译
./configure./clean all./compile
但是我果然出错了,
/g5/mayb/CCPL_PMCV/model_platform/scripts/utils/configure_system: line 856: /g5/mayb/CCPL_PMCV/Experiments/PMCV/config/common/reprod
ucibility/input_data_list: No such file or directory
Recording the version of compilers used ... done
fatal: ambiguous argument 'origin/master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git [...] -- [...]'
Archiving this configuration into PMCV.config.20250604-043943.nochecksum.tar ... done
看起来说的是缺少文件或者文件夹。我猜是因为前面的MPS没有弄好,MPS是预处理部分,专门准备模式需要的数据的。
所以在此之前需要加一个步骤就是MPS安装。
好,我安装好了MPS,现在继续回来进行MCV的安装和运行。
/g5/mayb/MCV_PUBLIC/CCPL_PMCV/model_platform/scripts/utils/configure_system: line 856: /g5/mayb/MCV_PUBLIC/CCPL_PMCV/Experiments/PMC
V/config/common/reproducibility/input_data_list: No such file or directory
还是出现了这个问题。
到了今天结束,依然还是困于这个问题 。不过还是能够编译,不知能否成功
不过好在的是
似乎是编译成功了!!!
那么接下来就是运行MCV了。
6.MCV模式运行
昨天搞好了安装,今天开始运行。
首先是数据的准备
cp mcv_input_20220810000000.nc ../../CCPL_PMCV/Experiments/PMCV/r
un/atm/MCV/data/
这些复制的命令行真的太长了,之后得想想办法。
然后运行链接的脚本的时候感觉很多的文件都没链接对,是FIX_DATA的文件夹中没有相应的文件。
原来这些文件在/g5/jiangqg/share/FIX_DATA/v16.1.5/fix_am中
这下终于搞对了。
什么叫自由度为1度,看不懂。应该是分辨率为1度吧
env_run.xml 类似于cesm 的设置文件
我建立了一个脚本,然后提交,结果运行不到一小会就断了,
这是什么情况呢?
从网上查了一下,是mpi运行时候的问题,和内存有关系,内存越界或者是内存不够的原因。
我尝试调整并行节点数,384 768 等等都不行,而且我发现我不能用太多的节点,30个节点都不行,然后我尝试改内存,500G不行,但是400G可以,然而这些都不是产生这个问题的原因。依然还是会出现这个问题。
当我用60节点的时候,出现了一个新的问题,但是如果节点少点就没有这个问题。这些问题都和并行有关系。
这是mcv安装运行的全部步骤了。之后看解决了这个报错问题再更新。