找一个懂CESM2.1.3的朋友帮忙在服务器弄一下环境配置。远程帮忙弄一下
给你找了一些资料,你看是否有帮助:
配置 CESM(Community Earth System Model)2.1.3 的服务器环境需要一些准备和步骤。以下是一般情况下在服务器上配置 CESM2.1.3 环境的大致过程:
安装操作系统:确保服务器上已安装支持 CESM 运行所需的操作系统(例如Linux或Unix)。
安装编译器和工具:为了编译和运行 CESM,你需要安装相应的编译器和工具链。常用工具包括 GNU 编译器集合(GCC)、Fortran 编译器(例如 gfortran)、NetCDF 库、MPICH 或 OpenMPI 以及其他必要的依赖项。通过包管理器(如apt-get、yum等)安装这些软件时,请确保安装与CESM兼容的版本。
下载并安装 CESM:从官方网站(https://www.cesm.ucar.edu/models/cesm2)下载 CESM 2.1.3 版本的源代码压缩包。解压缩文件后,进入 CESM 的顶级目录。
配置 CESM:在 CESM 的顶级目录中运行 ./create_newcase
命令以创建新的模型运行实例。按照提示选择模型分辨率、模拟设置和组件等信息。你可以根据自己的需求进行配置。创建成功后,进入新创建的运行目录。
配置编译器和库:打开运行目录下的 env_mach_specific
文件,根据你的服务器配置和安装的编译器和库路径,设置正确的环境变量。确保指定正确的编译器、库和模块加载命令。
编译和运行 CESM:在运行目录中运行 ./case.build
命令以编译 CESM。这将生成可执行文件和其他所需的输出文件。完成后,运行 ./case.submit
命令提交 CESM 运行任务。
请注意,上述步骤仅为一般性指南,并且具体的配置过程可能因操作系统、服务器环境和个人需求而有所不同。建议参考 CESM 官方文档中的详细说明和指南,以确保正确地配置和运行 CESM。
同时,如果你在配置过程中遇到困难或有其他问题,可以查阅 CESM 官方文档或咨询相关技术支持来获取更详细和准确的指导。
啥意思呀,远程吗?
这个应该有文档教学吧!一会我去找找
很高兴收到您的请求,我可以帮助您进行CESM2.1.3的环境配置。为了能够在服务器上进行环境配置,您需要具备以下条件:
在您满足上述条件之后,您可以按照以下步骤进行CESM2.1.3的环境配置:
进入代码库目录,并执行./manage_externals/checkout_externals命令以下载和安装代码库所需的所有依赖项。
执行./configure -case 命令,设置CESM2.1.3的配置文件,其中“”是您为CESM2.1.3创建的自定义案例名称。随后,在运行CESM2.1.3之前,需要进行一些配置和编译。
执行./case.setup命令,配置您的自定义案例并构建该案例。
运行您的CESM2.1.3案例。在执行./case.submit命令之前,确认您的案例已成功构建。
以上是对CESM2.1.3环境配置的一个大致的流程。如果您在以上步骤中遇到任何困难,请告诉我具体情况,我会尽力帮助您解决,并提供更多的技术支持。
<machine MACH="admin1">
<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>admin1</NODENAME_REGEX>
<OS>Linux</OS>
<PROXY> https://howto.get.out </PROXY>
<COMPILERS>intel</COMPILERS>
<MPILIBS>impi</MPILIBS>
<SAVE_TIMING_DIR> </SAVE_TIMING_DIR>
<CIME_OUTPUT_ROOT>/public/work/xxx/5.OUTPUT/CESM</CIME_OUTPUT_ROOT>
<DIN_LOC_ROOT>/public/work/xxx/2.INPUT/CESM</DIN_LOC_ROOT>
<DIN_LOC_ROOT_CLMFORC>/public/work/xxx/2.INPUT/CESM/lmwg</DIN_LOC_ROOT_CLMFORC>
<DOUT_S_ROOT>/public/work/xxx/5.OUTPUT/archive/$CASE</DOUT_S_ROOT>
<BASELINE_ROOT>/public/work/xxx/5.OUTPUT/CESM/cesm_baselines</BASELINE_ROOT>
<CCSM_CPRNC>/public/home/xxx/1.Model/cesm2.1.3/cime/tools/cprnc</CCSM_CPRNC>
<GMAKE>make</GMAKE>
<GMAKE_J>8</GMAKE_J>
<BATCH_SYSTEM>pbs</BATCH_SYSTEM>
<SUPPORTED_BY>me@my.address</SUPPORTED_BY>
<MAX_TASKS_PER_NODE>40</MAX_TASKS_PER_NODE>
<MAX_MPITASKS_PER_NODE>40</MAX_MPITASKS_PER_NODE>
<PROJECT_REQUIRED>FALSE</PROJECT_REQUIRED>
<mpirun mpilib="impi">
<executable>mpirun</executable>
<arguments>
<arg name="ntasks">-np {{ total_tasks }}</arg>
</arguments>
</mpirun>
<module_system type="none"/>
<!---<module_system type="module">
<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>
<modules compiler="intel">
<command name="load">intel/17.0.5</command>
<command name="load">mkl</command>
</modules>
</module_system>-->
<environment_variables>
<env name="OMP_STACKSIZE">1024M</env>
<env name="NETCDF_HOME">/public/home/xxx/0.library/intel/mytool</env>
<env name="NETCDF_PATH">/public/home/xxx/0.library/intel/mytool</env>
<env name="MPI_PATH">/public/software/mpi/intelmpi/2017.5.239/intel64</env>
<!--env name="PNETCDF_PATH">/public/home/wangyuexuanzi/libraries/icc</env>
<env name="PNETCDF_HOME">/public/home/xxx/libraries/icc</env-->
</environment_variables>
<resource_limits>
<resource name="RLIMIT_STACK">-1</resource>
</resource_limits>
</machine>
config_compilers.xml
<compiler COMPILER="intel">
<CFLAGS>
<base> -qno-opt-dynamic-align -fp-model precise -std=gnu99 </base>
<append compile_threaded="true"> -qopenmp </append>
<append DEBUG="FALSE"> -O2 -debug minimal </append>
<append DEBUG="TRUE"> -O0 -g </append>
</CFLAGS>
<CPPDEFS>
<!-- http://software.intel.com/en-us/articles/intel-composer-xe/ -->
<append> -DFORTRANUNDERSCORE -DCPRINTEL</append>
</CPPDEFS>
<CXX_LDFLAGS>
<base> -cxxlib </base>
</CXX_LDFLAGS>
<CXX_LINKER>FORTRAN</CXX_LINKER>
<FC_AUTO_R8>
<base> -r8 </base>
</FC_AUTO_R8>
<FFLAGS>
<base> -qno-opt-dynamic-align -convert big_endian -assume byterecl -ftz -traceback -assume realloc_lhs -fp-model source </base>
<append compile_threaded="true"> -qopenmp </append>
<append DEBUG="TRUE"> -O0 -g -check uninit -check bounds -check pointers -fpe0 -check noarg_temp_created </append>
<append DEBUG="FALSE"> -O2 -debug minimal </append>
</FFLAGS>
<FFLAGS_NOOPT>
<base> -O0 </base>
<append compile_threaded="true"> -qopenmp </append>
</FFLAGS_NOOPT>
<FIXEDFLAGS>
<base> -fixed -132 </base>
</FIXEDFLAGS>
<FREEFLAGS>
<base> -free </base>
</FREEFLAGS>
<LDFLAGS>
<append compile_threaded="true"> -qopenmp </append>
</LDFLAGS>
<MPICC> mpiicc </MPICC>
<MPICXX> mpiicpc </MPICXX>
<MPIFC> mpiifort </MPIFC>
<SCC> icc </SCC>
<SCXX> icpc </SCXX>
<SFC> ifort </SFC>
<SLIBS>
<base>-L$ENV{NETCDF_PATH}/lib -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -ldl -lm -lz -lcurl</base>
<append MPILIB="mpich"> -mkl=cluster </append>
<append MPILIB="mpich2"> -mkl=cluster </append>
<append MPILIB="mvapich"> -mkl=cluster </append>
<append MPILIB="mvapich2"> -mkl=cluster </append>
<append MPILIB="mpt"> -mkl=cluster </append>
<append MPILIB="openmpi"> -mkl=cluster </append>
<append MPILIB="impi"> -mkl=cluster </append>
<!--append MPILIB="mpi-serial"> -mkl </append-->
</SLIBS>
<SUPPORTS_CXX>TRUE</SUPPORTS_CXX>
</compiler>
config_batch.xml
<batch_system type="pbs" >
<batch_query args="-f" >qstat</batch_query>
<batch_submit>qsub </batch_submit>
<batch_cancel>qdel</batch_cancel>
<batch_env>-v</batch_env>
<batch_directive>#PBS</batch_directive>
<jobid_pattern>^(\S+)$</jobid_pattern>
<depend_string> -W depend=afterok:jobid</depend_string>
<depend_allow_string> -W depend=afterany:jobid</depend_allow_string>
<depend_separator>:</depend_separator>
<walltime_format>%H:%M:%S</walltime_format>
<batch_mail_flag>-M</batch_mail_flag>
<batch_mail_type_flag>-m</batch_mail_type_flag>
<batch_mail_type>, bea, b, e, a</batch_mail_type>
<submit_args>
<arg flag="-q" name="$JOB_QUEUE"/>
<arg flag="-l walltime=" name="$JOB_WALLCLOCK_TIME"/>
<arg flag="-A" name="$PROJECT"/>
</submit_args>
<directives>
<directive>-N {{ job_id }}</directive>
<directive default="n">-r {{ rerunnable }}</directive>
<!-- <directive> -j oe {{ job_id }} </directive> -->
<directive>-j oe</directive>
<directive>-V</directive>
<directive>-l nodes=1:ppn=40</directive>
</directives>
<queues>
<queue nodemin="1" nodemax="20" default="true">normal</queue>
</queues>
</batch_system>
CESM 2.1.3 安装配置文件详解
按照步骤一步步来
https://blog.csdn.net/qq_32115939/article/details/115377142
要想能够运行CESM,除了代码之外,运行之前,还需要对进行配置。CESM中的配置文件格式是xml文件格式的,位于CESM目录下,具体路径为$CESMROOT/cesm2.1.3/cime/config/cesm/machines/。其中主要含有三个需要进行修改的配置文件,分别是:config_machines.xml、config_compilers.xml和config_batch.xml。
其中,对于config_machines文件的配置,先搜索下该文件中是否已经有你的机器名称,如果有,则改对应的模块。假如搜索不到的话,可以新增一个machine模块,然后把改成自己的机器名称。而对于其中的mpi的选择和使用,假如你使用的是intel编译器,可以使用impi,但如果使用的是gnu编译器的话,可以选择使用mpich
其次,config_compilers文件和config_machines文件类似,直接修改对应的模块就OK,主要还是修改下mpicc,mpicxx那几个的名称。要注意的是SLIBS 标签下原先缺少了 netcdf 库的各种链接,需手动添加,base 表示不管你的 MPILIB 是啥都会自动加载。
config_batch.xml 文件是一些与作业调度相关的配置。如果 config_machines.xml 中 BATCH_SYSTEM 配置为 none的话,那么你这个文件可以不配置,否则需要指定下使用的作业调度队列等。
建议去官网下载使用手册,对照手册进行安装,只有自己实战过,后面才会用,安装过程中如果遇到问题可以针对性提问
可以按照安装文档的步骤进行操作,遇到问题了再进行提问,实操一两编,慢慢就会了