2023年工作总结

目录

本文来自 2023 年 12 月 18 日个人工作汇报做的 PPT。

系统建设

2023 年完成 1 项业务系统升级,建设 CMA-GFS V4.0 后处理业务系统。

在国家级超算新建 3 套服务保障后处理系统,在杭州、贵州等省局超算新建 4 套产品后处理系统。

开展国家级新超算 4 套系统迁移工作,正在开展 CMA-GFS 后处理系统等 1 套系统的实时运行测试。

图 2023 年参与建设的系统

算法优化

在开展系统建设工作的同时,还持续对业务系统的算法和流程进行优化。

CMA-GFS V4.0 产品制作任务

今年将中心青年基金课题项目《基于动态任务调度的数据处理技术》成果应用到 CMA-GFS V4.0 产品制作任务中,对串行任务进行并行化改造。 在 GFS 业务系统中,我们为 NSMC 制作一种 GRIB2 数据产品,需要对基础 GRIB2 数据进行要素筛选和插值。 业务原有串行程序在 V3.3 版本耗时 8 分钟,V4.0 版本因为水平分辨率从 25 KM 提升到 12.5 KM,耗时增长为 20 分钟。 应用课题研究成果后,运行时间从 20 分钟减少为 1 分钟,运行时间减少一个数量级,极大提高产品制作效率。

图 CMA-GFS卫星中心GRIB2产品的并行算法

图 运行时间对比

  • v3:CMA-GFS V3.3
  • v4:CMA-GFS V4.0
  • oper:业务串行程序
  • serial:reki 串行版本
  • dask:PI 曙光 1 并行节点 32 CPU*

参考 cemc-oper/cemc-product-kit

流程优化

现有业务系统流程优化

持续优化现有业务系统的运行流程。

调整 TYM 数据拷贝策略

串行链接 + 延后并发移动 改为 并发复制,实现并发任务触发需要顺序执行的任务链,解决由链接失效导致任务无法重复运行的问题。

图 TYM 数据拷贝新旧两种方案对比

  1. 左图:旧方案,串行ln,存在文件链接失效的问题
  2. 右图:新方案,并发cp
调整 initial 任务的终止命令

使用 pskill 代替 kill,解决 ecFlow UI 界面无法杀掉 initial 作业的问题。

图 kill 无法杀掉长时间运行的子进程,即 kill -9 PID1 无法立即杀掉子进程 PID3

图 (1)左:需要三个 kill 命令杀掉 initial 作业。(2)右:pskill 杀掉整个进程树

重构业务系统运行流程

在迁移新超算过程中重构业务系统运行流程。

将流程与配置分离,提高系统流程的可移植性。

目标:系统迁移时仅需要新增配置文件而不需要修改已有流程代码。

方法:

  • 参数配置文件(同事提出)
  • 环境加载脚本
  • 拆分流程

当前进展:

  • 已重构三个系统:CMA-GFS POST,CMA-MESO POST,CMA-TYM POST
  • 一个系统正在进行中:CMA-TYM
参数配置文件

在单独的文件中设置系统名称、目录、时次和关键参数。

效果:切换账户部署只需编写新的配置文件。

图 参数配置文件应用前后对比

(1) 左图:应用前,配置和流程在一个文件中,修改配置需要修改脚本

(2) 右图:应用后,配置和流程分离,修改配置仅需新增配置脚本,无需修改已有代码

环境加载脚本

将加载软件库的相关代码放到独立脚本中。

效果:为不同HPC平台保存各自的环境配置脚本,方便跨平台部署。

图 环境加载脚本应用前后对比

(1) 左图:应用前,脚本直接加载软件包,在不同 HPC 平台部署需要修改任务脚本

(2) 右图:应用后,为每种软件单独创建加载脚本,不同 HPC 平台的脚本放到不同目录中。 在配置文件 (config/oper.py) 中设置头文件目录,任务脚本 (data2grib2.ecf) 加载软件头文件。 迁移 HPC 平台只需新增环境加载脚本并新增配置文件。

拆分流程

将单一流程脚本拆分为多个 Python 脚本,比如数据产品、绘图产品、台风产品等组件。

效果:将组件选择与具体流程分离,方便按需组装,也方便后续增删产品种类。

图 拆分流程应用前后对比

  • config.py:按需配置组件
  • flow.py / cycle.py:基础流程框架
  • data.py / graph.py / typhoon.py:增删产品种类

集约化整合

数据融入

在科技处、模式室和业务室的共同努力下,通过数值-信息专班推进业务系统部分数据接入天擎平台。 2023 年新增接入 5 种业务系统产品和 12 种专项保障服务产品。

表 业务系统产品

产品名称数据编码
CMA-GFS台风路径NAFP_CEMC_CMA-GFS_TC_MSG
CMA-TYM台风路径NAFP_CEMC_CMA-TYM_TC_MSG
CMA-GFS海洋子系统产品NAFP_CEMC_CMA-GFS_FIOCOM_nc
CMA-GFS海浪子系统预报产品NAFP_CEMC_CMA-GFS_SWW3_GRIB2
CMA-TYM海浪子系统中国近海预报产品NAFP_CEMC_CMA-TYM_SWW3_GRIB2

表 专项服务保障产品

专项保障服务产品名称数据编码
成都大运会CMA-MESO 1KM GRIB2产品NAFP_CMA_MESO_1KM_BCCD
NAFP_ANA_FTM_CMAMESO_1KM_BCCD
NAFP_FOR_FTM_CMAMESO_1KM_BCCD
多模式集成订正产品NAFP_CEMC_CMA-BTH-STATION_NC
NAFP_CEMC_CMA_CMA-BTH_NC
CMA-CUACE-Haze产品NAFP_CEMC_CMA-CUACE-HAZE_NC
核应急烟花扩散产品NAFP_CEMC_CMA-EERS_FIRE_tar
杭州亚运会CMA-MESO 1KM GRIB2产品NAFP_ANA_FTM_CMAMESO_1KM_BEHZ
NAFP_FOR_FTM_CMAMESO_1KM_BEHZ
太平洋运动会CMA-MESO 3KM GRIB2产品NAFP_CMA_MESO_3KM_SHEO_ORI
NAFP_ANA_FTM_CMAMESO_3KM_SHEO
NAFP_FOR_FTM_CMAMESO_3KM_SHEO

算法融入

通过信息化系统工程项目,改造加工流水线绘图算法的触发方式。

使用消息中间件代替数据源直接触发绘图算法,避免同时触发大量作业超过账户资源限制。

图 数据源直接驱动绘图程序,2022 年实现

超过资源限制的任务会等待资源释放,显著影响云平台的调度延迟指标。

图 数据源驱动消息发送程序,绘图程序监听消息队列

使用消息直供件件实现任务流量控制。

CEMC 青年基金. 基于分布式调度的绘图技术研究. 2017-2020.

参考 cemc-oper/ploto

技术开发

数据准备工具库 reki

增加 CMA 要素清单,方便加载要素场。

表 CMA要素表格

包括名称,描述,编码,层次类型,层次,…

nameunitdescriptiondescription_cndisciplinecategorynumbertypeOfLevel
psPaSurface pressure地面气压0.03.00.0surface
psfcPaSurface pressure地面气压0.03.00.0surface
pslPaSea level pressure海平面气压0.03.01.0meanSea
piExner pressureExner气压0.03.026.0
hGpmGeopotential height位势高度0.03.05.0
zsGpmTerrain地形高度0.03.05.0surface

例如加载大风指数 (wi, (0, 2, 236)) 变量。

使用 ECMWF 开发的 cfgrib 需要知道要素的编码:

ds = xr.open_dataset(
    file_path,
    engine='cfgrib',
    backend_kwargs={
        'filter_by_keys': {
            'parameterCategory': 2,
            'parameterNumber': 236
        },
    }
)

使用 reki 库只需要指定要素名称:

field = load_field_from_file(
    file_path,
    parameter="wi"
)

参考 cemc-oper/reki

工作流调度工具takler

模拟 shell 脚本提交方式,实现串行节点运行调度程序。

该功能既提供工作流软件对流程的监控能力,又保留 shell 脚本方便使用的优势。

图 模式试验与 ecFlow 两种运行方式

  • Shell 脚本运行模式研发试验和批量试验
  • ecFlow 流程运行平行试验和业务系统
  • 发展方向:研发与业务脚本统一

图 串行节点运行工作流

  • 自动检测 IP 地址和端口,并写入配置文件
  • 串行节点上运行工作流调度服务
  • 通过配置文件与调度服务通讯

参考 perillaroc/takler

项目

CEMC 青年基金《基于动态任务调度的数据处理技术研发》

完成验收,撰写一篇技术报告并提交中心评审

信息化系统工程项目《数值预报支撑子系统》

完成测试和初验,正在进行试运行,12 月底前完成合同验收

运维外协项目

完成2022年度项目验收

完成2023年度项目申请和进展评审

其他工作

培训

新员工培训(业务系统介绍、ecFlow 上机实习)

贵州 MESO 后处理培训(现场)

交流

2023年全国数值预报研讨会口头报告(人工智能分会场)《基于动态任务调度的数据处理技术研发》

世界气象日活动,小知识问答活动

下一步工作计划

  • 研究异地异构超算平台格局下的业务系统部署技术(系统科)

    • 优化后处理系统流程,整理后处理系统流程建设规范
  • 继续开发工作流调度软件

    • 完善异常处理功能,提高软件的容错能力
  • 延续已有 Python 工具的开发经验,发展基于 Python 的支撑软件工具集(业务室,…)

    • 开发数据访问工具库,形成数据标准访问接口
    • 面向 MESO 1KM 业务化,配合产品团队开发 Python 绘图包
    • CEMC Earth Data Analytics and Rendering Toolkit (cedarkit)