多源遥感陆面数据同化通用系统软件框架原型王亮绪李新韩旭军黄春林车涛晋锐
中科院寒旱所
2010-07-15
大纲
l目标
l框架原型
l实现
l高性能计算
陆面数据同化系统组成
目标
实现一个以高性能计算为核心的通用多源遥感数据同化软件库。
•通用数据同化方法(非线性非高斯)
•通用观测算子(遥感辐射传输模型)
•通用模型算子(陆面过程模型和水文模型)
•自动测试用例
•完善的文档和实例
技术路线
原型设计l粗框架
同化算法l卡尔曼滤波
l粒子滤波
l一维模型l三维模型
辅助工具/类
l时间/时间段/时间范围
l矩阵/复数矩阵
l异常类
l随机数类
l点/多点/多点网格
目录结构
l include
l src/
l example
l test
l doc
l
external
支持环境
l编程语言:ANSI C++/C,FORTRAN l开发平台:UBUNTU LINUX,svn
l支持编译器:GCC, Intel C++
l并行计算支持:OpenMP, MPI, CUDA l第三方依赖
l dSFMT(随机数生成器)
l cpptest(用例测试,可选)
l doxygen (文档生成,可选)
代码的重用和重构
l重用
l已有代码通过重包装(wrapper)进行重用
l Fortran代码通过混合编程进行重用
l重构
l在重用的基础上实现(类继承)
l通过重载(overload)关键方法实现对功能的更新
中国陆面数据同化系统
l基于CoLM模型、集合Kalman滤波算法和针对不同地表类型(土壤、积雪、冻土)的微波辐射传输模型的中国陆面数据同化系统,同化被动微波遥感观测(SSM/I、TMI和AMSR),获得空间分辨率为1/4°、时间分辨率为1小时的土壤水分、土壤温度、积雪、冻土、感热、潜热、蒸散发等模拟和同化资料。
CLDAS framework
Class diagram
Work flow
集合循环
冻土观测算子同化处理
高性能计算
l高性能计算目标遍布于系统的设计,让用户以尽可能少的代码实现。
l CUDA的高性能实现需要深入修改模型代码。
OpenMP
l针对多核多CPU架构
l对于一维陆面模型,在区域(空间)上可直接利用OpenMP并行
l对于三维陆面模型,需要根据代码进行处理
•在Dell T7400工作站(8核)上,计算速度有4倍的提升。
在Dell R900服务器(24核)上有15倍的提升。
串行
并行
50
100
150
200
250
GCC
Int el
PGI
ICC
GCC
200
400
600
800
1000
1200
24线程
48线程54线程60线程
C++版本
混编版本
500
1000
1500
2000
2500
8线程16线程
CUDA
l CUDA(Compute Unified Device Architecture)是近年发展起来的利用GPU功能来进行并行计算的通用计算统一设备架构
l CUDA提供了类C语言的扩展,具有很强的浮点运算能力,目前单精度浮点运算能达到1TGFlops
l在超级计算机中也有很多应用
将每个格点的计算都交给显卡(CUDA )进行计算,CoLM 模型
的计算函数都作为显卡的device 函数,CPU 端负责数据的读取和保存。
加速比约为5。
模拟步长(
小
时)
240
480
720
1440
所需时间(秒)
40.1579.09119.36234.63
时间
20
40
60
80
100
120
140160Time step 0
Thank you!。