项目简介
本项目是气候预测网(CPDN)中用于控制气候模型运行的应用程序。它可以对 ECMWF OpenIFS(43r3)和 WRF 这两个气候模型进行控制,借助 BOINC 平台实现任务管理与结果上传,为气候变化研究提供大规模计算支持。
项目的主要特性和功能
- 集成 BOINC 客户端库,能进行任务管理、状态上报和文件上传。
- 可控制 OpenIFS 和 WRF 两个气候模型的运行。
- 支持在 Linux 和 Mac 操作系统上编译与运行。
- 可通过命令行参数配置模型运行的各项参数。
- 能自动处理模型的输入文件和辅助文件,包括解压、复制及设置环境变量。
- 可监控模型运行状态并定期更新进度信息。
- 能将模型结果文件上传至 BOINC 服务器。
安装使用步骤
前提条件
假设用户已经下载了本项目的源码文件。
编译 BOINC 库
bash
mkdir build
mkdir boinc
cd boinc
._autosetup
./configure --disable-server --disable-fcgi --disable-manager --disable-client \
--enable-libraries --enable-boinczip \
--prefix=/PATH_TO_BOINC_INSTALL/boinc-install \
CXXFLAGS='-O3'
make install
cd ..
此操作会将 BOINC 库和头文件安装到 Git 源码的父目录(可更改 --prefix
参数指定其他安装目录)。
编译控制器代码
Linux 系统
- 确保安装了
libzip
库(在 Ubuntu 系统上使用sudo apt-get install libzip-dev
)。 - 从 http://rapidxml.sourceforge.net/ 下载
rapidxml.hpp
文件,并将其放在代码所在的同一文件夹中。 - 编译 WRF 模型:
bash cd build g++ wrf.cpp CPDN_control_code.cpp -I../boinc-install/include -L../boinc-install/lib -lboinc_api -lboinc -lboinc_zip -static -pthread -std=c++17 -o wrf_1.00_x86_64-pc-linux-gnu
- 编译 OpenIFS 模型:
bash cd build g++ openifs.cpp CPDN_control_code.cpp -I../boinc-install/include -L../boinc-install/lib -lboinc_api -lboinc -lboinc_zip -static -pthread -std=c++17 -o oifs_43r3_1.00_x86_64-pc-linux-gnu
若在 ARM 架构机器上编译 OpenIFS 模型:bash cd build g++ openifs.cpp CPDN_control_code.cpp -D_ARM -I../boinc-install/include -L../boinc-install/lib -lboinc_api -lboinc -lboinc_zip -static -pthread -lstdc++ -lm -std=c++11 -o oifs_43r3_1.00_aarch64-poky-linux
Mac 系统
- 确保安装了
libzip
库(使用brew install libzip
)。 - 下载
rapidxml.hpp
文件并放置在代码所在文件夹。 - 使用 Xcode 构建 BOINC 库。
- 编译 OpenIFS 控制代码:
bash cd build clang++ openifs.cpp CPDN_control_code.cpp -I../boinc-install/include -L../boinc-install/lib -lboinc_api -lboinc -lboinc_zip -pthread -std=c++11 -o oifs_43r3_1.00_x86_64-apple-darwin
运行程序
以 OpenIFS 为例,在 Linux 系统上的独立运行命令为:
bash
./oifs_43r3_1.00_x86_64-pc-linux-gnu 2000010100 gw3a 0001 1 00001 1 oifs_43r3 1.00
在 macOS 系统上的独立运行命令为:
bash
./oifs_43r3_1.00_x86_64-apple-darwin 2000010100 gw3a 0001 1 00001 1 oifs_43r3 1.00
命令行参数说明:[0]
为编译后的可执行文件,[1]
为起始日期(格式为 YYYYMMDDHH),[2]
为实验 ID,[3]
为唯一成员 ID,[4]
为批次 ID,[5]
为工作单元 ID,[6]
为 FCLEN,[7]
为应用名称,[8]
为线程数,[9]
为应用版本 ID(仅在独立运行模式下使用)。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】