栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

CESM1.1 在ubuntu上的移植过程

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CESM1.1 在ubuntu上的移植过程

安装库以及相应软件过程省略,具体软件在官网:CESM1.1.z User's Guide​​​​​​https://www.cesm.ucar.edu/models/cesm1.1/cesm/doc/usersguide/book1.html下面的        CESM Software/Operating System Prerequisiteshttps://www.cesm.ucar.edu/models/cesm1.1/cesm/doc/usersguide/x21.html#software_system_prerequisites

CESM各个版本:CESM Modelshttps://www.cesm.ucar.edu/models/?ref=hp也可在github中下载GitHub - ESCOMP/CESM: The Community Earth System ModelThe Community Earth System Model. Contribute to ESCOMP/CESM development by creating an account on GitHub.https://github.com/ESCOMP/CESM

-----------------------------------------------------------------------------------------------

重点在于source code移植后的修改配置部分。(假设模式位于cesm1_1/)

修改的文件均位于cesm1_1/scripts/ccsm_utils/Machines

1.config_machines.xml    主要是关于机器的配置

添加以下部分

(各配置根据自己服务器的配置/环境来配置。具体各项意义可见官网)CESM Models | CESM1.1 Public Releasehttps://www.cesm.ucar.edu/models/cesm1.1/cesm/doc/modelnl/


        my ubuntu 20.04
        LINUX
        intel,pgi,gnu,pathscale
        mpich,mpi,pempi,mpi-serial
        /xxxxxxxxx/cesm1_1/$CASE/run
        /xxxxxxxx/cesm1_1/$CASE/bld
        /xxxxxx/Cesm_data/inputdata
        xxxxxxx/Cesm_data/tss
        xxxxxx/cesm1_1/$CASE/output
        csm/$CASE
        $ENV{CESMDATAROOT}/ccsm_baselines
        $ENV{CESMDATAROOT}/tools/cprnc/cprnc
        USERDEFINED_optional_run
        USERDEFINED_optional_run
        USERDEFINED_optional_run
        1
        2
        1

2.config_compilers.xml  关于编译器的配置

添加以下部分


 $(NETCDF)
 mpiicc
 mpiifort
 mpicpc
 ifort
 icc
 icpc
  /opt/intel/oneapi/mpi/2021.2.0
  /opt/intel/oneapi/mpi/2021.2.0
 $(NETCDF)
  -L$(NETCDF_PATH)/lib -lnetcdff -lnetcdf -L$(HDF5_PATH)/lib -lhdf5 -lhdf5_hl 

3.将env_mach_specific.userdefined  复制为  env_mach_specific.ubuntu    点后面为之前设置的MACH名称

添加以下部分,注意set后面有=,且=前后有空格,而setenv没有等号,只有空格

set NETCDF_PATH = /usr/local/netcdf-ifort
set MPI_PATH = /opt/intel/oneapi/mpi/2021.2.0
setenv INC_NETCDF ${NETCDF_PATH}/include
setenv LIB_NETCDF ${NETCDF_PATH}/lib
setenv INC_MPI ${MPI_PATH}/include
setenv LIB_MPI ${MPI_PATH}/lib

4.将  mkbatch.userdefined复制为 mkbatch.ubuntu  点后面依旧是之前设置的MACH名称

根据服务器提交作业的方式把qname=batch 为自己服务器的脚本提交方式,如 qname=qnormal,并把下方##的代码根据提交任务的脚本 去掉注释即可 (包括mpirun等等命令所在的行)

-----------------------------------------------------------------------------------------------

此时完成移植,下一步测试。此测试来自官方网站:Use Cases and FAQshttps://www.cesm.ucar.edu/models/cesm1.1/cesm/doc/usersguide/c1986.html#use_case_basic

cd cesm1_1/scripts

./create_newcase -case  case_official 
                 -compset B_1850_CN 
                 -res 0.9x1.25_gx1v6 
                 -mach ubuntu

cd case_official/

---------------------------------------------------------------------------------

此时可根据需要修改运行配置如大气模式用到的核数  NTASKS_ATM .....  (当前该变量值可通过

./xmlquery NTASKS_ATM     查询到。)

对于修改诸如模式要用的核数NTASKS_xxxxx、线程数NTHRDS_xxx等等env_mach_pes.xml中的变量,必须在./cesm_setup之前修改,如果setup之后修改,先./cesm_setup -clean,修改,然后重新./cesm_setup。对于诸如任务重新提交时间STOP_OPTION等等其他变量,可在cesm_setup之后修改

两种修改方式:
1.  ./xmlchange NTASKS_ATM=64   

    (或是./xmlchange -file env_mach_pes.xml -id NTASKS_ATM -val 64)
2.  直接修改env_mach_pes.xml 或是其余xml文件

同上,所有与运行相关的配置变量可在CESM Models | CESM1.1 Public Releasehttps://www.cesm.ucar.edu/models/cesm1.1/cesm/doc/modelnl/

通过对应xml文件查找到。

---------------------------------------------------------------------------------

./cesm_setup
./case_official.build

生成测试脚本(测试本例子能否跑通)

./create_production_test
cd ../case_official_ERT
./case_official_ERT.test
cat CaseStatus    (官网为 cat TestStatus ,以实际为准)

如果没有问题(PASS)即可进行下一步

cd ../case_official

./xmlchange STOP_OPTION=nmonths   注意修改方式与官网给出的并不一致,官网命令跑不通(可能是我机器的问题)

./xmlchange STOP_N=12

bsub < case_official.run   提交作业方法因服务器而异

之后可在out文件中查看是否成功

踩坑记录:

如果出现 Can't locate Switch.pm in @INC  则是因为Perl5.1以上的版本问题,只需将已有的Switch.pm 文件复制到INC中一个路径即可

sudo cp /opt/intel/oneapi/compiler/2021.2.0/linux/lib/oclfpga/host/linux64/bin/perl/lib/site_perl/5.30.3/Switch.pm /usr/share/perl/5.30/

无gmake的情况:ubuntu上取消了gmake(GNUmake),用make代替即可

sudo ln -s /usr/bin/make /usr/bin/gmake

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/893065.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号