CESM 2.1.1 移植指南(CentOS 7.6)
CESM是一个完全耦合的地球系统的数值模拟,由大气、海洋、冰、陆地表面、碳循环和其他组成部分组成。CESM包括一个气候模型,提供地球过去、现在和未来的模拟。CESM是CCSM的升级版,2010年,国家科学基金会(NSF)和美国能源部(DoE)的重要资金(NSF)和重要资金的全球动力学部门(CGD)在2010年发布了CESM1。
关于CESM的更多信息请访问CESM官网[1]。
语言:Fortran
一句话描述:地球系统模型。
开源协议:自定义开源协议。
建议使用版本为:CESM 2.1.1
CPU Kunpeng 920
CESM 2.1.1
https://github.com/ESCOMP/cesm/releases/tag/release-cesm2.1.1OpenBLAS 0.3.6
https://github.com/xianyi/OpenBLAS/releasesHDF5 1.10.1
http://hdfgroup.org/HDF5/PNETCDF 1.9.0
https://parallel-netcdf.github.io/wiki/Download.htmlNETCDF 4.4.1.1
https://github.com/Unidata/netcdf-c/releases/tag/v4.4.1.1NETCDF-F 4.4.1
https://github.com/Unidata/netcdf-fortran/releases/tag/v4.4.1CentOS 7.6
https://www.centos.org/download/Kernel 4.14.0-115.el7a.0.1
https://www.centos.org/download/本章节给出CESM软件在移植过程中涉及到的相关软件安装规划路径的用途及详细说明。
表 移植规划数据
序号 | 软件安装规划路径 | 用途 | 说明 |
---|---|---|---|
1 | - | 基础环境搭建中的各安装包安装路径。 | 参考《HPC解决方案 基础环境搭建指导书》中“安装规划数据”章节。 |
2 | /path/to/OPENBLAS | OpenBLAS的安装规划路径。 | 这里的安装规划路径只是一个举例说明,建议部署在共享路径中。现网需要根据实际情况调整,后续章节凡是遇到安装路径的命令,都以现网实际规划的安装路径为准进行替换,不再单独说明。 |
3 | /path/to/HDF5 | HDF5的安装规划路径。 | |
4 | /path/to/PNETCDF | Pnetcdf的安装规划路径。 | |
5 | /path/to/NETCDF | Netcdf的安装规划路径。 | |
6 | /path/to/CESM | CESM的安装规划路径。 |
前提条件:使用SFTP工具将各安装包上传至服务器对应目录下。
配置流程:
表 配置流程
序号 | 配置项 | 说明 |
---|---|---|
1 | 基础环境搭建 | 参考《HPC解决方案 基础环境搭建指导书》中“单机场景环境搭建”章节。 |
2 | 安装OpenBLAS | 参考4.1 安装OpenBLAS。 |
3 | 安装HDF5 | 参考4.2 安装HDF5。 |
4 | 安装PNETCDF | 参考4.3 安装PNETCDF。 |
5 | 安装NETCDF | 参考4.4 安装NETCDF。 |
6 | 安装NETCDF-F | 参考4.5 安装NETCDF-F。 |
操作步骤
tar xvf OpenBLAS-0.3.6.tar.gz
cd OpenBLAS-0.3.6
export CC='which gcc
export CXX='which g++
export FC='which gfortran
make
make PREFIX=/path/to/OPENBLAS install
----结束
操作步骤
tar -xvf hdf5-1.10.1.tar.gz
cd hdf5-1.10.1
export MPICC=mpicc
export MPICXX=mpicxx
export MPIFC=mpifort
./configure --prefix=/path/to/HDF5 --build=aarch64-unknown-linux-gnu --enable-fortran --enable-static=yes --enable-parallel --enable-shared CC=$MPICC CXX=$MPICXX FC=$MPIFC F77=$MPIFC
make -j 16
make install
----结束
操作步骤
tar -xvf parallel-netcdf-1.9.0.tar.bz2
cd parallel-netcdf-1.9.0
export MPICC=mpicc
export MPICXX=mpicxx
export MPIFC=mpifort
make -j 16
make install
----结束
操作步骤
tar -xvf netcdf-4.4.1.1.tar.gz
cd netcdf-4.4.1.1
export MPICC=mpicc
export MPICXX=mpicxx
export MPIFC=mpifort
export CPPFLAGS="-I/path/to/HDF5/include -I/path/to/PNETCDF/include"
export LDFLAGS="-L/path/to/HDF5/lib -L/path/to/PNETCDF/lib -Wl,-rpath=/path/to/HDF5/lib -Wl,-rpath=/path/to/PNETCDF/lib"
export CFLAGS="-L/path/to/HDF5/lib -L/path/to/PNETCDF/lib -I/path/to/HDF5/include -I/path/to/PNETCDF/include"
./configure --prefix=/path/to/NETCDF --build=aarch64-unknown-linux-gnu --enable-shared --enable-netcdf-4 --enable-dap --with-pic --disable-doxygen --enable-static --enable-pnetcdf --enable-largefile CC=$MPICC CXX=$MPICXX FC=$MPIFC F77=$MPIFC
make -j 16
make install
----结束
操作步骤
tar -xvf netcdf-fortran-4.4.1.tar.gz
cd netcdf-fortran-4.4.1
export MPICC=mpicc
export MPICXX=mpicxx
export MPIFC=mpifort
export CPPFLAGS="-I/path/to/HDF5/include -I/path/to/NETCDF/include"
export LDFLAGS="-L/path/to/HDF5/lib -L/path/to/NETCDF/lib -Wl,-rpath=/path/to/HDF5/lib -Wl,-rpath=/path/to/NETCDF/lib"
export CFLAGS="-L/path/to/HDF5/lib -L/path/to/NETCDF/lib -I/path/to/HDF5/include -I/path/to/NETCDF/include"
export CXXFLAGS="-L/path/to/HDF5/lib -L/path/to/NETCDF/lib -I/path/to/HDF5/include -I/path/to/NETCDF/include"
export FCFLAGS="-L/path/to/HDF5/lib -L/path/to/NETCDF/lib -I/path/to/HDF5/include -I/path/to/NETCDF/include"
./configure --prefix=/path/to/NETCDF --build=aarch64-unknown-linux-gnu --enable-shared --with-pic --disable-doxygen --enable-largefile --enable-static CC=$MPICC CXX=$MPICXX FC=$MPIFC F77=$MPIFC
make -j 16
make install
unset CC CXX FC F77 CPPFLAGS LDFLAGS CFLAGS CXXFLAGS FCFLAGS
----结束
操作步骤
cesm-release-cesm2.1.1.tar.gz
”。下载地址:https://github.com/ESCOMP/CESM/tags?after=cesm2.1-nemo.v01
。
----结束
前提条件:配置外部网络,使服务器可以接入Internet网络。
操作步骤
tar -xvf cesm-release-cesm2.1.1.tar.gz
cd cesm-release-cesm2.1.1
yum install git svn environment-modules -y
svn ls https://svn-ccsm-models.cgd.ucar.edu/ww3/release_tags
``./manage_externals/checkout_externals`
./manage_externals/checkout_externals -S
Processing externals description file : Externals.cfg
Processing externals description file : Externals_CLM.cfg
Processing externals description file : Externals_POP.cfg
Processing externals description file : Externals_CISM.cfg
Checking status of externals: clm, fates, ptclm, mosart, ww3, cime, cice, pop, cvmix, marbl, cism, source_cism, rtm, cam,
./cime
./components/cam
./components/cice
./components/cism
./components/cism/source_cism
./components/clm
./components/clm/src/fates
./components/clm/tools/PTCLM
./components/mosart
./components/pop
./components/pop/externals/CVMix
./components/pop/externals/MARBL
./components/rtm
./components/ww3
1.vi cime/config/cesm/machines/config_machines.xml
2.按“i”进入编辑模式,修改“config_machines.xml
”文件的第153,170,171和176行,注意粗体部分。
153 <NODENAME_REGEX>node1</NODENAME_REGEX>
170 <MAX_TASKS_PER_NODE>96</MAX_TASKS_PER_NODE>
171 <MAX_MPITASKS_PER_NODE>96</MAX_MPITASKS_PER_NODE>
176 <arg name="ntasks"> --allow-run-as-root --mca btl ^openib -np {{ total_tasks }} </arg>
3.按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
----结束
操作步骤
cd /path/to/CESM/cesm-release-cesm2.1.1/cime/scripts
./create_newcase --case mycase --compset X --res f19_g16
cd mycase
./check_case
./check_input_data --download
export PATH=/path/to/GNU/bin:/path/to/OPENMPI/bin:$PATH
export LD_LIBRARY_PATH=/path/to/GNU/lib64:/path/to/OPENMPI/lib:/path/to/OPENBLAS/lib:/path/to/HDF5/lib:/path/to/PNETCDF/lib:/path/to/NETCDF/lib:$LD_LIBRARY_PATH
export NETCDF_PATH=/path/to/NETCDF/bin
./case.build
./case.submit
当CESM生成的日志“OUTCAR”的结尾处出现如图7-1所示内容时,表示CESM程序运行正常结束。
需要查看输出到屏幕中的日志,如图7-1所示红线处,需要手动计算出时间差,数值越少性能越优。
图7-1 测试样例
----结束
GITHUB开发者论坛相关信息:https://esmci.github.io/cime/index.html
[1]
CESM官网: https://github.com/ESCOMP/cesm/releases/tag/release-cesm2.1.1/