vi /path/to/CESM/CESM-release-cesm2.1.3/cime/config/cesm/machines/config_machines.xml
<machine MACH="centos7-linux"> <DESC> Example port to centos7 linux system with gcc, netcdf, pnetcdf and mpich using modules from http://www.admin-magazine.com/HPC/Articles/Environment-Modules </DESC> <NODENAME_REGEX>n2</NODENAME_REGEX> <OS>LINUX</OS> <PROXY> https://howto.get.out </PROXY> <COMPILERS>gnu</COMPILERS> <MPILIBS>openmpi</MPILIBS> <PROJECT>none</PROJECT> <SAVE_TIMING_DIR> </SAVE_TIMING_DIR> <CIME_OUTPUT_ROOT>/CESMroot/cesm/scratch</CIME_OUTPUT_ROOT> <DIN_LOC_ROOT>/CESMroot/cesm/inputdata</DIN_LOC_ROOT> <DIN_LOC_ROOT_CLMFORC>/CESMroot/cesm/inputdata/lmwg</DIN_LOC_ROOT_CLMFORC> <DOUT_S_ROOT>/CESMroot/cesm/archive/$CASE</DOUT_S_ROOT> <BASELINE_ROOT>/CESMroot/cesm/cesm_baselines</BASELINE_ROOT> <CCSM_CPRNC>/CESMroot/cesm/tools/cime/tools/cprnc/cprnc</CCSM_CPRNC> <GMAKE>make</GMAKE> <GMAKE_J>8</GMAKE_J> <BATCH_SYSTEM>none</BATCH_SYSTEM> <SUPPORTED_BY>me@my.address</SUPPORTED_BY> <MAX_TASKS_PER_NODE>96</MAX_TASKS_PER_NODE> <MAX_MPITASKS_PER_NODE>96</MAX_MPITASKS_PER_NODE> <PROJECT_REQUIRED>FALSE</PROJECT_REQUIRED> <mpirun mpilib="default"> <executable>mpirun</executable> <arguments> <arg name="ntasks">--allow-run-as-root --mca btl ^openib -np {{ total_tasks }} </arg> </arguments> </mpirun> <module_system type="module" allow_error="true"> <init_path lang="perl">/usr/share/Modules/init/perl.pm</init_path> <init_path lang="python">/usr/share/Modules/init/python.py</init_path> <init_path lang="csh">/usr/share/Modules/init/csh</init_path> <init_path lang="sh">/usr/share/Modules/init/sh</init_path> <cmd_path lang="perl">/usr/bin/modulecmd perl</cmd_path> <cmd_path lang="python">/usr/bin/modulecmd python</cmd_path> <cmd_path lang="sh">module</cmd_path> <cmd_path lang="csh">module</cmd_path> <modules> <command name="purge"/> </modules> </module_system> <environment_variables> <env name="NETCDF_PATH">/path/to/NETCDF</env> <env name="NETCDF_FORTRAN_PATH">/path/to/NETCDF</env> <env name="NETCDF_C_PATH">/path/to/NETCDF</env> <env name="MPI_PATH">/path/to/HMPI</env> <env name="OMP_STACKSIZE">256M</env> </environment_variables> <resource_limits> <resource name="RLIMIT_STACK">-1</resource> </resource_limits> </machine>
参数 |
说明 |
---|---|
<NODENAME_REGEX> |
选项根据用户具体节点名称配置。 |
<COMPILERS> |
编译器写成GNU。 |
<MPILIBS> |
改为OpenMPI。 |
<MAX_TASKS_PER_NODE> |
根据用户环境,最大值为节点CPU核心总数。 |
<MAX_MPITASKS_PER_NODE> |
根据用户环境,最大值为节点CPU核心总数。 |
<executable> |
默认是mpiexec,需修改mpirun。 |
<arguments> |
修改为--allow-run-as-root --mca btl ^openib -np {{ total_tasks }},系统会自动生成线程总数。 |
<environment_variables> |
根据用户安装位置配置依赖函数路径。 |
<CIME_OUTPUT_ROOT> <DIN_LOC_ROOT> <DIN_LOC_ROOT_CLMFORC> <DOUT_S_ROOT> <BASELINE_ROOT> <CCSM_CPRNC> |
默认值:$ENV{HOME},CESM数据目录,根据实际情况修改。 |
请用户根据表1实际配置修改为自己指定的路径。
vi /path/to/CESM/CESM-cesm2.1.3/cime/config/cesm/machines/config_compilers.xml
<compiler COMPILER="gnu"> <CFLAGS> <base> -O3 -mcpu=tsv110 -Hx,54,0x08 </base> <append compile_threaded="true"> -fopenmp </append> <append DEBUG="TRUE"> -g -Wall -Og -fbacktrace -ffpe-trap=invalid,zero,overflow -fcheck=bounds </append> <append DEBUG="FALSE"> -O </append> </CFLAGS> <CPPDEFS> <!-- http://gcc.gnu.org/onlinedocs/gfortran/ --> <append> -DFORTRANUNDERSCORE -DNO_R16 -DCPRGNU</append> </CPPDEFS> <CXX_LINKER>FORTRAN</CXX_LINKER> <FC_AUTO_R8> <base> -fdefault-real-8 </base> </FC_AUTO_R8> <FFLAGS> <!-- -ffree-line-length-none and -ffixed-line-length-none need to be in FFLAGS rather than in FIXEDFLAGS/FREEFLAGS so that these are passed to cmake builds (cmake builds don't use FIXEDFLAGS and FREEFLAGS). --> <base> -fconvert=big-endian -O3 -mcpu=tsv110 -Hx,54,0x08 -I/path/to/NETCDF/include -I/path/to/HDF5/include -I/path/to/OPENBLAS/include </base> <append compile_threaded="true"> -fopenmp </append> <!-- Ideally, we would also have 'invalid' in the ffpe-trap list. But at least with some versions of gfortran (confirmed with 5.4.0, 6.3.0 and 7.1.0), gfortran's isnan (which is called in cime via the CPRGNU-specific shr_infnan_isnan) causes a floating point exception when called on a signaling NaN. --> <append DEBUG="TRUE"> -g -Wall -Og -fbacktrace -ffpe-trap=zero,overflow -fcheck=bounds </append> <append DEBUG="FALSE"> -O </append> </FFLAGS> <FFLAGS_NOOPT> <base> -O0 </base> </FFLAGS_NOOPT> <FIXEDFLAGS> <base> -ffixed-form </base> </FIXEDFLAGS> <FREEFLAGS> <base> -ffree-form </base> </FREEFLAGS> <HAS_F2008_CONTIGUOUS>FALSE</HAS_F2008_CONTIGUOUS> <LDFLAGS> <append compile_threaded="true"> -fopenmp -L/path/to/NETCDF/lib -L/path/to/HDF5/lib -L/path/to/OPENBLAS/lib -lopenblas -lnetcdff -lnetcdf -lpnetcdf -lhdf5_hl -lhdf5 -lm –lz </append> </LDFLAGS> <MPICC> /path/to/HMPI/bin/mpicc </MPICC> <MPICXX> /path/to/HMPI/bin/mpicxx </MPICXX> <MPIFC> /path/to/HMPI/bin/mpifort </MPIFC> <SCC> /path/to/bisheng/bin/clang </SCC> <SCXX> /path/to/bisheng/bin/clang++ </SCXX> <SFC> /path/to/bisheng/bin/flang </SFC> <SUPPORTS_CXX>TRUE</SUPPORTS_CXX> <SLIBS> <append> -L/path/to/NETCDF/lib -L/path/to/HDF5/lib -L/path/to/OPENBLAS/lib -lopenblas -lnetcdff -lnetcdf -lpnetcdf -lhdf5_hl -lhdf5 -lm –lz </append> </SLIBS>
参数 |
说明 |
---|---|
<CFLAGS> |
添加参数-mcpu=tsv110。 |
<FFLAGS> |
添加参数-mcpu=tsv110,并且链接所有依赖库的include路径。 |
<MPICC> |
指定为Hyper MPI的mpicc路径。 |
<MPICXX> |
指定为Hyper MPI的mpicxx所在位置。 |
<MPIFC> |
指定为Hyper MPI的mpifort所在位置。 |
<SCC> |
指定为毕昇编译器的clang所在路径。 |
<SCXX> |
指定为毕昇编译器的clang++所在路径。 |
<SFC> |
指定为毕昇编译器的flang所在路径。 |
<LDFLAGS> |
链接所有依赖环境的lib库,使用参数-L。 |
<SLIBS> |
链接所有依赖环境的lib库,使用参数-L。 |
请用户根据表2实际配置修改为自己指定的路径。
cd /path/to/CESM/CESM-cesm2.1.3/cime/scripts
./create_newcase --case mycase --compset X --res f19_g16 --mach=centos7-linux
成功后回显信息如图所示:
cd mycase ./check_case ./check_input_data --download
每个模块下载成功后都成功会显示SUCCESS字样,用户可等其自动结束。
./case.setup
成功回显信息如图所示:
SUPPORTS_CXX := FALSE ifeq ($(COMPILER),gnu) FC_AUTO_R8 := -fdefault-real-8 HAS_F2008_CONTIGUOUS := FALSE FFLAGS_NOOPT := -O0 SUPPORTS_CXX := TRUE FFLAGS := -fconvert=big-endian -O3 -mcpu=tsv110 -Hx,54,0x08 -I/path/to/NETCDF/include -I/path/to/HDF5/include -I/path/to/OPENBLAS/include FIXEDFLAGS := -ffixed-form SCC := /path/to/bisheng/bin/clang SFC := /path/to/bisheng/bin/flang MPICC := /path/to/HMPI/bin/mpicc CFLAGS := -O3 -mcpu=tsv110 -Hx,54,0x08 MPIFC := /path/to/HMPI/bin/mpifort MPICXX := /path/to/HMPI/bin/mpicxx FREEFLAGS := -ffree-form CXX_LINKER := FORTRAN SCXX := /path/to/bisheng/bin/clang++ endif ifeq ($(MODEL),pop) CPPDEFS := $(CPPDEFS) -D_USE_FLOW_CONTROL endif ifeq ($(COMPILER),gnu) CPPDEFS := $(CPPDEFS) -DFORTRANUNDERSCORE -DNO_R16 -DCPRGNU SLIBS := $(SLIBS) -L/path/to/NETCDF/lib -L/path/to/HDF5/lib -L/path/to/OPENBLAS/lib -lopenblas -lnetcdff -lnetcdf -lpnetcdf -lhdf5_hl -lhdf5 -lm -lz ifeq ($(compile_threaded),true) FFLAGS := $(FFLAGS) -fopenmp CFLAGS := $(CFLAGS) -fopenmp endif ifeq ($(DEBUG),TRUE) FFLAGS := $(FFLAGS) -g -Wall -Og -fbacktrace -ffpe-trap=zero,overflow -fcheck=bounds CFLAGS := $(CFLAGS) -g -Wall -Og -fbacktrace -ffpe-trap=invalid,zero,overflow -fcheck=bounds endif ifeq ($(DEBUG),FALSE) FFLAGS := $(FFLAGS) -O CFLAGS := $(CFLAGS) -O endif ifeq ($(compile_threaded),true) LDFLAGS := $(LDFLAGS) -L/path/to/NETCDF/lib -L/path/to/HDF5/lib -L/path/to/OPENBLAS/lib -lopenblas -lnetcdff -lnetcdf -lpnetcdf -lhdf5_hl -lhdf5 -lm -lz endif endif
vi /path/to/CESM/CESM-cesm2.1.3/cime/src/share/util/shr_infnan_mod.F90.in
执行9.a之后,按“Esc”键,输入“:set nu”,按“Enter”即可显示出行号。
vi /path/to/CESM/CESM-cesm2.1.3/cime/src/share/util/shr_sys_mod.F90
删除第70行defined CPRGNU之前的感叹号“!”。
删掉第115行defined CPRGNU之前的感叹号“!”。
执行10.a之后,按“Esc”键,输入“:set nu”,按“Enter”即可显示出行号。
./case.build --skip-provenance-check
./case.build
成功回显信息如图所示:
用户需将所在系统中“cmake3”软连接到“cmake”,同时指定“cmake”路径。如在root用户下,如果用户CMake已经是3.0版本以上,请忽略ln -sf /usr/bin/cmake3 /usr/bin/cmake。
ln -sf /usr/bin/cmake3 /usr/bin/cmake
./case.submit
当CESM运行的结尾处出现如图所示内容时,表示CESM程序运行正常结束。
需要查看输出到屏幕中的日志,手动计算出时间差,数值越少性能越优,如图,算例开始时间为2021-10-20 16:19:28,结束时间为2021-10-20 16:20:02,那么此算例运行时间为34s。
vi /path/to/CESM/CESM-cesm2.1.3/cime/config/cesm/machines/config_machines.xml
<machine MACH="centos7-linux"> <DESC> Example port to centos7 linux system with gcc, netcdf, pnetcdf and mpich using modules from http://www.admin-magazine.com/HPC/Articles/Environment-Modules </DESC> <NODENAME_REGEX>n2</NODENAME_REGEX> <OS>LINUX</OS> <PROXY> https://howto.get.out </PROXY> <COMPILERS>gnu</COMPILERS> <MPILIBS>openmpi</MPILIBS> <PROJECT>none</PROJECT> <SAVE_TIMING_DIR> </SAVE_TIMING_DIR> <CIME_OUTPUT_ROOT>/CESMroot/cesm/scratch</CIME_OUTPUT_ROOT> <DIN_LOC_ROOT>/CESMroot/cesm/inputdata</DIN_LOC_ROOT> <DIN_LOC_ROOT_CLMFORC>/CESMroot/cesm/inputdata/lmwg</DIN_LOC_ROOT_CLMFORC> <DOUT_S_ROOT>/CESMroot/cesm/archive/$CASE</DOUT_S_ROOT> <BASELINE_ROOT>/CESMroot/cesm/cesm_baselines</BASELINE_ROOT> <CCSM_CPRNC>/CESMroot/cesm/tools/cime/tools/cprnc/cprnc</CCSM_CPRNC> <GMAKE>make</GMAKE> <GMAKE_J>8</GMAKE_J> <BATCH_SYSTEM>none</BATCH_SYSTEM> <SUPPORTED_BY>me@my.address</SUPPORTED_BY> <MAX_TASKS_PER_NODE>96</MAX_TASKS_PER_NODE> <MAX_MPITASKS_PER_NODE>96</MAX_MPITASKS_PER_NODE> <PROJECT_REQUIRED>FALSE</PROJECT_REQUIRED> <mpirun mpilib="default"> <executable>mpirun</executable> <arguments> <arg name="ntasks">--allow-run-as-root --mca btl ^openib --machinefile path/to/machinefile -np 192 -N 96 -x PATH=/path/to/bisheng/bin:/path/to/HMPI/bin:/path/to/NETCDF/bin:$PATH -x LD_LIBRARY_PATH=/path/to/bisheng/lib:/path/to/HMPI/lib:/path/to/NETCDF/lib:$LD_LIBRARY_PATH </arg> </arguments> </mpirun> <module_system type="module" allow_error="true"> <init_path lang="perl">/usr/share/Modules/init/perl.pm</init_path> <init_path lang="python">/usr/share/Modules/init/python.py</init_path> <init_path lang="csh">/usr/share/Modules/init/csh</init_path> <init_path lang="sh">/usr/share/Modules/init/sh</init_path> <cmd_path lang="perl">/usr/bin/modulecmd perl</cmd_path> <cmd_path lang="python">/usr/bin/modulecmd python</cmd_path> <cmd_path lang="sh">module</cmd_path> <cmd_path lang="csh">module</cmd_path> <modules> <command name="purge"/> </modules> </module_system> <environment_variables> <env name="NETCDF_PATH">/path/to/NETCDF </env> <env name="NETCDF_FORTRAN_PATH">/path/to/NETCDF</env> <env name="NETCDF_C_PATH">/path/to/NETCDF</env> <env name="MPI_PATH">/path/to/HMPI/env> <env name="OMP_STACKSIZE">256M</env> </environment_variables> <resource_limits> <resource name="RLIMIT_STACK">-1</resource> </resource_limits> </machine>
参数 |
说明 |
---|---|
<NODENAME_REGEX> |
选项根据用户具体节点名称配置。 |
<COMPILERS> |
编译器写成GNU。 |
<MPILIBS> |
改为OpenMPI。 |
<MAX_TASKS_PER_NODE> |
根据用户环境,最大值为节点CPU核心总数。 |
<MAX_MPITASKS_PER_NODE> |
同上,最大值为节点CPU核心总数。 |
<executable> |
默认是mpiexec,需修改mpirun; |
<arguments> |
对于多节点来说,需要修改的是的ntasks值,例如,若用户使用两个96核心数的节点满核运行,那么总进程数ntasks设为96*2=192,-np为192,每个节点上进程数-N为96。同时多节点运行需要加入编译器的路径和依赖库的路径,路径之间用-x参数隔开。 |
<environment_variables> |
根据用户安装位置配置依赖函数路径。 |
<CIME_OUTPUT_ROOT> <DIN_LOC_ROOT> <DIN_LOC_ROOT_CLMFORC> <DOUT_S_ROOT> <BASELINE_ROOT> <CCSM_CPRNC> |
默认值:$ENV{HOME},CESM数据目录,根据实际情况修改。 |
请用户根据表3实际配置修改为自己指定的路径。
vi /path/to/CESM/CESM-cesm2.1.3/cime/config/cesm/machines/config_compiler.xml
<compiler COMPILER="gnu"> <CFLAGS> <base> -O3 -mcpu=tsv110 -Hx,54,0x08 </base> <append compile_threaded="true"> -fopenmp </append> <append DEBUG="TRUE"> -g -Wall -Og -fbacktrace -ffpe-trap=invalid,zero,overflow -fcheck=bounds </append> <append DEBUG="FALSE"> -O </append> </CFLAGS> <CPPDEFS> <!-- http://gcc.gnu.org/onlinedocs/gfortran/ --> <append> -DFORTRANUNDERSCORE -DNO_R16 -DCPRGNU</append> </CPPDEFS> <CXX_LINKER>FORTRAN</CXX_LINKER> <FC_AUTO_R8> <base> -fdefault-real-8 </base> </FC_AUTO_R8> <FFLAGS> <!-- -ffree-line-length-none and -ffixed-line-length-none need to be in FFLAGS rather than in FIXEDFLAGS/FREEFLAGS so that these are passed to cmake builds (cmake builds don't use FIXEDFLAGS and FREEFLAGS). --> <base> -fconvert=big-endian -O3 -mcpu=tsv110 -Hx,54,0x08 -I/path/to/NETCDF/include -I/path/to/HDF5/include -I/path/to/OPENBLAS/include </base> <append compile_threaded="true"> -fopenmp </append> <!-- Ideally, we would also have 'invalid' in the ffpe-trap list. But at least with some versions of gfortran (confirmed with 5.4.0, 6.3.0 and 7.1.0), gfortran's isnan (which is called in cime via the CPRGNU-specific shr_infnan_isnan) causes a floating point exception when called on a signaling NaN. --> <append DEBUG="TRUE"> -g -Wall -Og -fbacktrace -ffpe-trap=zero,overflow -fcheck=bounds </append> <append DEBUG="FALSE"> -O </append> </FFLAGS> <FFLAGS_NOOPT> <base> -O0 </base> </FFLAGS_NOOPT> <FIXEDFLAGS> <base> -ffixed-form </base> </FIXEDFLAGS> <FREEFLAGS> <base> -ffree-form </base> </FREEFLAGS> <HAS_F2008_CONTIGUOUS>FALSE</HAS_F2008_CONTIGUOUS> <LDFLAGS> <append compile_threaded="true"> -fopenmp -L/path/to/NETCDF/lib -L/path/to/HDF5/lib -L/path/to/OPENBLAS/lib -lopenblas -lnetcdff -lnetcdf -lpnetcdf -lhdf5_hl -lhdf5 -lm –lz </append> </LDFLAGS> <MPICC> /path/to/HMPI/bin/mpicc </MPICC> <MPICXX> /path/to/HMPI/bin/mpicxx </MPICXX> <MPIFC> /path/to/HMPI/bin/mpifort </MPIFC> <SCC> /path/to/bisheng/bin/clang </SCC> <SCXX> /path/to/bisheng/bin/clang++ </SCXX> <SFC> /path/to/bisheng/bin/flang </SFC> <SUPPORTS_CXX>TRUE</SUPPORTS_CXX> <SLIBS> <append> -L/path/to/NETCDF/lib -L/path/to/HDF5/lib -L/path/to/OPENBLAS/lib -lopenblas -lnetcdff -lnetcdf -lpnetcdf -lhdf5_hl -lhdf5 -lm -lz </append> </SLIBS>
参数 |
说明 |
---|---|
<CFLAGS> |
添加参数-mcpu=tsv110。 |
<FFLAGS> |
添加参数-mcpu=tsv110,并且链接所有依赖库的include路径。 |
<MPICC> |
指定为Hyper MPI的mpicc路径。 |
<MPICXX> |
指定为Hyper MPI的mpicxx所在位置。 |
<MPIFC> |
指定为Hyper MPI的mpifort所在位置。 |
<SCC> |
指定为毕昇编译器的clang所在路径。 |
<SCXX> |
指定为毕昇编译器的clang++所在路径。 |
<SFC> |
指定为毕昇编译器的flang所在路径。 |
<LDFLAGS> |
链接所有依赖环境的lib库,使用参数-L。 |
<SLIBS> |
链接所有依赖环境的lib库,使用参数-L。 |
请用户根据表4实际配置修改为自己指定的路径。
cd /path/to/CESM/CESM-cesm2.1.3/cime/scripts
./create_newcase --case mycase --compset X --res f19_g16 --mach=centos7-linux
回显信息如图所示:
cd mycase ./check_case ./check_input_data --download
每个模块下载成功后都成功会显示SUCCESS字样,用户可等其自动结束。
./case.setup
SUPPORTS_CXX := FALSE ifeq ($(COMPILER),gnu) FC_AUTO_R8 := -fdefault-real-8 HAS_F2008_CONTIGUOUS := FALSE FFLAGS_NOOPT := -O0 SUPPORTS_CXX := TRUE FFLAGS := -fconvert=big-endian -O3 -mcpu=tsv110 -Hx,54,0x08 -I/path/to/NETCDF/include -I/path/to/HDF5/include -I/path/to/OPENBLAS/include FIXEDFLAGS := -ffixed-form SCC := /path/to/bisheng/bin/clang SFC := /path/to/bisheng/bin/flang MPICC := /path/to/HMPI/bin/mpicc CFLAGS := -O3 -mcpu=tsv110 -Hx,54,0x08 MPIFC := /path/to/HMPI/bin/mpifort MPICXX := /path/to/HMPI/bin/mpicxx FREEFLAGS := -ffree-form CXX_LINKER := FORTRAN SCXX := /path/to/bisheng/bin/clang++ endif ifeq ($(MODEL),pop) CPPDEFS := $(CPPDEFS) -D_USE_FLOW_CONTROL endif ifeq ($(COMPILER),gnu) CPPDEFS := $(CPPDEFS) -DFORTRANUNDERSCORE -DNO_R16 -DCPRGNU SLIBS := $(SLIBS) -L/path/to/NETCDF/lib -L/path/to/HDF5/lib -L/path/to/OPENBLAS/lib -lopenblas -lnetcdff -lnetcdf -lpnetcdf -lhdf5_hl -lhdf5 -lm -lz ifeq ($(compile_threaded),true) FFLAGS := $(FFLAGS) -fopenmp CFLAGS := $(CFLAGS) -fopenmp endif ifeq ($(DEBUG),TRUE) FFLAGS := $(FFLAGS) -g -Wall -Og -fbacktrace -ffpe-trap=zero,overflow -fcheck=bounds CFLAGS := $(CFLAGS) -g -Wall -Og -fbacktrace -ffpe-trap=invalid,zero,overflow -fcheck=bounds endif ifeq ($(DEBUG),FALSE) FFLAGS := $(FFLAGS) -O CFLAGS := $(CFLAGS) -O endif ifeq ($(compile_threaded),true) LDFLAGS := $(LDFLAGS) -L/path/to/NETCDF/lib -L/path/to/HDF5/lib -L/path/to/OPENBLAS/lib -lopenblas -lnetcdff -lnetcdf -lpnetcdf -lhdf5_hl -lhdf5 -lm -lz endif endif
vi /path/to/CESM/CESM-cesm2.1.3/cime/src/share/util/shr_infnan_mod.F90.in
执行9.a之后,按“Esc”键,输入“:set nu”,按“Enter”即可显示出行号。
vi /path/to/CESM/CESM-cesm2.1.3/cime/src/share/util/shr_sys_mod.F90
删掉第70行defined CPRGNU之前的感叹号“!”。
删掉第115行defined CPRGNU之前的感叹号“!”。
执行10.a之后,按“Esc”键,输入“:set nu”,按“Enter”即可显示出行号。
./case.build --skip-provenance-check
./case.build
成功回显信息如下图:
用户需将所在系统中“cmake3”软连接到“cmake”,同时指定“cmake”路径。如在root用户下,如果用户CMake已经是3.0版本以上,请忽略ln -sf /usr/bin/cmake3 /usr/bin/cmake。
ln -sf /usr/bin/cmake3 /usr/bin/cmake
./case.submit
当CESM运行的结尾处出现如图所示内容时,表示CESM程序运行正常结束。
需要查看输出到屏幕中的日志,手动计算出时间差,数值越少性能越优,如图,两节点时,算例开始时间为2021-10-22 20:27:51,结束时间为2021-10-22 20:28:29,那么此算例运行时间为38s。