已建立case之后的操作 文件名 重要总结
主要步骤:环境变量设置、计算资源分配、case运行
一、提交
1、指定解释器为 /bin/csh -f
2、从文件 ./Tools/ccsm_getenv
获取环境变量设置(执行),如果获取失败退出
./check_case 检查case
3、判断文件{CASE}.test
存在:
(1)如果存在:
cat > templar <<EOF
${BATCHSUBMIT}./${CASE}.test
EOF
创建一个名为 templar
的文件
写入 ${BATCHSUBMIT}./${CASE}.test
执行 templar
文件中的命令
删除 templar
文件
输出 "test submitted $sdate"
并追加到 Casestatus
文件中,其中$sdate
是日期时间
(2)如果不存在:
创建一个名为 templar
的文件
写入 ${BATCHSUBMIT}nohup./${CASE}.run > run.log
执行 templar
文件中的命令
删除 templar
文件
输出 "run submitted $sdate"
并追加到 CaseStatus
文件中
总结:判断 case.test 是否存在,存在则执行 .test,不存在则执行 .run
./Tool/ccsm_getenv
执行该文件的目的:加载环境
执行env_case env_run env_mach env_build
删除去掉扩展名后的文件名对应的文件 ($i:r
表示去除扩展名后的文件名)
执行env_mach_specific
写入文件env_derived并复制到LockedFiles
文件 env_case
文件env_run
文件env_mach_specific
以编辑这个文件来添加在系统上进行构建和运行所需的模块加载命令或其他路径,还可以包括针对机器的一般环境设置,并给出一些示例
设置一些资源限制,将核心转储大小、栈大小和数据大小都设置为无限制
设置环境变量 OMP_STACKSIZE
的值为 256M
,可能是用于 OpenMP 并行编程环境中的栈大小设置
文件 env_derived
./check_case
代码运行目的:检查case是否准备好运行
- 执行
/Tools/ccsm_check_lockedfiles
,检查是否有锁定的文件,防止冲突 - 加载
./Tools/ccsm_getenv
,获取环境变量设置 - 检查环境变量
BUILD_COMPLETE
是否为"TRUE"
,如果不是,则提示用户构建未完成,并告知用户如何重新交互式构建模型。如果构建已完成,表示这个 “case” 准备好运行
./case.test
.test不存在
./case.run
即【二、运行】
CaseStatus
文件目的:记录status的时间信息
二、运行
1、作业调度
2、环境加载,buildnml
source ./Tools/ccsm_getenv || exit -2
$BUILD_COMPLETE = TRUE
设置环境变量BATCHQUERY BATCHSUBMIT
创建和清理与时间相关的目录 RUNDIR/timing RUNDIR/timing/checkpoints 检查节点
设置环境变量并输出具体时间到CaseStatus
执行 ./preview_namelists 主要目的:进行模式一些预处理,包括设置环境变量、创建必要的目录、构建命名列表(Namelist)以及保存命名列表到文档目录等
3、CESM PRESTAGE SCRIPT
检查输入文件 ./check_input_data
4、Run the model
循环检查节点,每过一段时间开始检查直至有合适数量的节点
//得到队列空闲节点id
set node_list = qview -all queue_name
//统计空闲节点数
set idle_node_num = cnload -c $node_list -nocolor egrep "idle" | wc -1
【SBATCH&bsub】商用超算作业调度系统-CSDN博客
提交作业,查看状态,运行
5、同化 start of DART
确认cpllog文件中,模式已成功建立:grep 'SUCCESSFUL TERMINATION' $CplLogFile
执行脚本:./assimilate.csh & ./no_assimilate.csh
no_assimilate.csh
assimilate.csh
执行 ./cam_no_assimilate.csh & ./pop_assimilate.csh(例子为只有海洋同化)
6、检查模式是否成功运行
检查 cesm.log
ls -1t cesm.log* | head -1
7、更新环境变量
source ./Tools/ccsm_getenv 同【一 / 文件./check_case】
8、保存模式输出
9、短期、长期archive
对应bulid_case中: ./st_archive.sh & case_name.l_archive
./Tool/st_archive.sh
修改为每月前十天归档
if [[ $secs == 00000 && ( $month == 01 || $month == 02 || $month == 03 || $month == 04 || $month == 05 || $month == 06 || $month == 07 || $month == 08 || $month == 09 || $month == 10 || $month == 11 || $month == 12 ) && ($day == 01 || $day == 02 || $day == 03 || $day == 04 || $day == 05 || $day == 06 || $day == 07 || $day == 08 || $day == 09 || $day == 10 ) ]]; then
10、resubmit
判断是否重新提交,通过修改参数
修改环境变量 ./xmlchange -file env_run.xml -id CONTINUE_RUN -val TRUE
./xmlchange -file env_run.xml -id RESUBMIT
$BATCHSUBMIT ./$CASE.run