耦合模型配置生成
项目描述
CoupledModelDriver
CoupledModelDriver 生成用于 NEMS-coupled 海洋耦合模型集合的上层作业提交框架和配置目录。
pip install coupledmodeldriver
它使用 NEMSpy 生成 NEMS 配置文件,在运行之间共享通用配置,并将预启动和网格划分组织成独立的作业以进行依赖性提交。
文档可在 https://coupledmodeldriver.readthedocs.io 找到
支持的模型和平台
- 模型
- 平台
- 本地
- Slurm
- Hera
- Stampede2
- Orion
组织/责任
CoupledModelDriver 是由美国联邦政府机构美国国家海洋和大气管理局(NOAA)下属的海岸海洋建模分支(CMMB)开发的,用于 COASTAL Act 项目。
- 扎卡里·伯内特(负责人) - zachary.burnett@noaa.gov
- 威廉·普林格尔 - wpringle@anl.gov
- 赛义德·莫吉米 - saeed.moghimi@noaa.gov
使用示例
1. 生成 JSON 配置文件
initialize_adcirc
根据给定参数创建 JSON 配置文件。此命令未公开的 ADCIRC 运行选项,如 runs
或 gwce_solution_scheme
,可以通过直接修改 JSON 文件进行指定。以下示例创建了一个小 Shinnecock Inlet 网格的耦合 (ATMESH + WW3DATA) -> ADCIRC
的 JSON 文件。
initialize_adcirc \
--platform HERA \
--mesh-directory /scratch2/COASTAL/coastal/save/shared/models/meshes/shinnecock/v1.0 \
--output-directory hera_shinnecock_ike_spinup_tidal_atmesh_ww3data \
--modeled-start-time 20080823 \
--modeled-duration 14:06:00:00 \
--modeled-timestep 00:00:02 \
--nems-interval 01:00:00 \
--adcirc-executable /scratch2/COASTAL/coastal/save/shared/repositories/CoastalApp/ALLBIN_INSTALL/NEMS-adcirc-atmesh-ww3data.x \
--adcirc-processors 40
--adcprep-executable /scratch2/COASTAL/coastal/save/shared/repositories/CoastalApp/ALLBIN_INSTALL/adcprep \
--modulefile /scratch2/COASTAL/coastal/save/shared/repositories/CoastalApp/modulefiles/envmodules_intel.hera \
--forcings tidal,atmesh,ww3data \
--tidal-source TPXO \
--tidal-path /scratch2/COASTAL/coastal/save/shared/models/forcings/tides/h_tpxo9.v1.nc \
--tidal-spinup-duration 12:06:00:00 \
--atmesh-path /scratch2/COASTAL/coastal/save/shared/models/forcings/shinnecock/ike/wind_atm_fin_ch_time_vec.nc \
--ww3data-path /scratch2/COASTAL/coastal/save/shared/models/forcings/shinnecock/ike/ww3.Constant.20151214_sxy_ike_date.nc
这将创建以下目录 hera_shinnecock_ike_spinup_tidal_atmesh_ww3data/
,包含以下 JSON 配置文件:
📂 hera_shinnecock_ike_spinup_tidal_atmesh_ww3data/
┣ 📜 configure_adcirc.json
┣ 📜 configure_atmesh.json
┣ 📜 configure_modeldriver.json
┣ 📜 configure_nems.json
┣ 📜 configure_slurm.json
┣ 📜 configure_tidal_forcing.json
┗ 📜 configure_ww3data.json
这些文件包含 ADCIRC 运行的相关配置值。在生成实际模型配置之前,您可能需要更改这些值以修改运行结果。例如,NEMS 连接和运行顺序需要在 configure_nems.json
中手动指定。
2. 生成模型配置文件
generate_adcirc
使用从 JSON 配置文件(上一步生成)读取的选项生成 ADCIRC 运行配置(fort.14
、fort.15
等)。
cd hera_shinnecock_ike_spinup_tidal_atmesh_ww3data
generate_adcirc
生成的配置将如下所示:
📂 hera_shinnecock_ike_spinup_tidal_atmesh_ww3data/
┣ 📜 configure_adcirc.json
┣ 📜 configure_atmesh.json
┣ 📜 configure_modeldriver.json
┣ 📜 configure_nems.json
┣ 📜 configure_slurm.json
┣ 📜 configure_tidal_forcing.json
┣ 📜 configure_ww3data.json
┣ 📂 spinup/
┃ ┣ 📜 fort.13
┃ ┣ 🔗 fort.14 -> ../fort.14
┃ ┣ 📜 fort.15
┃ ┣ 📜 nems.configure
┃ ┣ 📜 model_configure
┃ ┣ 🔗 atm_namelist.rc -> ./model_configure
┃ ┣ 📜 config.rc
┃ ┣ 📜 setup.job
┃ ┗ 📜 adcirc.job
┣ 📂 runs/
┃ ┗ 📂 unperturbed/
┃ ┣ 📜 fort.13
┃ ┣ 🔗 fort.14 -> ../../fort.14
┃ ┣ 📜 fort.15
┃ ┣ 🔗 fort.67.nc -> ../../spinup/fort.67.nc
┃ ┣ 🔗 fort.68.nc -> ../../spinup/fort.68.nc
┃ ┣ 📜 nems.configure
┃ ┣ 📜 model_configure
┃ ┣ 🔗 atm_namelist.rc -> ./model_configure
┃ ┣ 📜 config.rc
┃ ┣ 📜 setup.job
┃ ┗ 📜 adcirc.job
┣ 📜 fort.14
┣ 📜 cleanup.sh
┗ 📜 run_hera.sh
3. 运行模型
上一步也将生成一个名为 ./run_hera.sh
的脚本。您可以运行它以将模型运行提交到 Slurm作业队列
./run_hera.sh
队列将添加以下作业:
JOBID CPU NODE DEPENDENCY NODELIST(REA NAME
20967647 1 1 (null) (None) ADCIRC_SETUP_SPINUP
20967648 40 1 afterok:20967647 (Dependency) ADCIRC_COLDSTART_SPINUP
20967649 1 1 (null) (None) ADCIRC_SETUP_unperturbed
20967650 42 2 afterok:20967649 (Dependency) ADCIRC_HOTSTART_unperturbed
4. 跟踪模型进度
check_completion
检查运行中的模型目录的完成状态。
cd hera_shinnecock_ike_spinup_tidal_atmesh_ww3data
check_completion
{
"hera_shinnecock_ike_spinup_tidal_atmesh_ww3data": {
"spinup": "running - 15%",
"runs": "not_started - 0%"
}
}
您也可以传递一个特定的目录(或多个目录)
check_completion spinup
{
"spinup": "running - 27%"
}
cd run_20211027_florence_besttrack_250msubset_quadrature
check_completion runs/*_13
{
"vortex_4_variable_perturbation_13": "completed - 100.0%",
"vortex_4_variable_quadrature_13": "not_started - 0%"
}
如果运行出现错误,可以通过传递 --verbose
来查看详细的日志
check_completion spinup
{
"spinup": "error - 0%"
}
check_completion spinup --verbose
{
"spinup": {
"status": "error",
"progress": "0%",
"error": {
"ADCIRC_SETUP_SPINUP.err.log": [
"forrtl: severe (24): end-of-file during read, unit -4, file /proc/92195/fd/0\n",
"Image PC Routine Line Source \n",
"adcprep 000000000069A72E Unknown Unknown Unknown\n",
"adcprep 00000000006CBAAF Unknown Unknown Unknown\n",
"adcprep 000000000050A5CB openprepfiles_ 6996 prep.F\n",
"adcprep 0000000000507F22 prep13_ 753 prep.F\n",
"adcprep 000000000042E2E9 prepinput_ 717 adcprep.F\n",
"adcprep 000000000042BCDB MAIN__ 239 adcprep.F\n",
"adcprep 000000000040B65E Unknown Unknown Unknown\n",
"libc-2.17.so 00002AAEC02EB555 __libc_start_main Unknown Unknown\n",
"adcprep 000000000040B569 Unknown Unknown Unknown\n",
"srun: error: h24c51: task 0: Exited with exit code 24\n",
"srun: launch/slurm: _step_signal: Terminating StepId=25366266.1\n"
]
}
}
}
check_completion runs
{
"spinup": "failed - 0%"
}
check_completion runs --verbose
{
"runs": {
"status": "failed",
"progress": "0%",
"failed": {
"fort.16": "ADCIRC output file `fort.16` not found"
},
"error": {
"ADCIRC_SETUP_unperturbed.err.log": [
"slurmstepd: error: execve(): /scratch2/COASTAL/coastal/save/shared/repositories/CoastalApp/ADCIRC/ALLBIN_INSTALL/adcprep: No such file or directory\n",
"srun: error: h18c49: task 0: Exited with exit code 2\n",
"srun: launch/slurm: _step_signal: Terminating StepId=25366268.0\n"
]
}
}
}
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。
源分发
构建发行版
coupledmodeldriver-1.7.1.post1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c6afbb285f7f0e35903644ea22654e555ec441d7ae09b70921262e7404798991 |
|
MD5 | 5a23161de237feec2a5f1fde48720ed9 |
|
BLAKE2b-256 | d2a1479eaea8994921fe4cc06aa531d7257a8b682c8a2315787a512d87fb1eaf |
coupledmodeldriver-1.7.1.post1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a19e8f0129b1f1dddcd7f82cf14fe4051ee6f4c6bc81c83e477c8cc4911924dc |
|
MD5 | 720e9a10eb18d9a8da306228fb5621a7 |
|
BLAKE2b-256 | 8ee8afc261021efd6d56e9ade46babbed1cfe3bc6abbded7677f49aab3e94b48 |