检验子系统是神威集合数值天气预报系统重要的组成部分, 它将模式后处理产生的结果进行分析整理, 分组归类, 并以此结果作为神威集合数值天气预报系统准确性检验的依据之一。检验子系统主要由资料的收集、资料的分组和资料的比较三部分组成。资料的收集部分完成32个样本10天500 hPa高度场资料的收集, 按照时间的先后顺序将高度场资料形成文件。资料的分组部分按照500 hPa典型的等高图形特征将资料分组归类。资料的比较部分将集合预报的500 hPa高度场的结果与单一样本的结果比较。
1 并行化设计(1) 并行计算简介并行计算的实质是利用多个处理器, 通过数据通信协调完成单一计算任务。实现并行计算的关键是任务能否划分为多个独立的子任务。在分布式计算机上实现高效率并行计算的关键则是数据相关性和通信开销小, 负载平衡。如果负载平衡不好, 则各个处理器上运行时间相差很大而造成整体运行时间增大。
我们编程所采用的环境HPF提供了两种程序设计模型:数据并行模型, SPMD模型, 同时还支持混合模型的编程。数据并行模型是HPF支持的主要模型, 它支持多个处理器在同一时间内执行不同的运算, 用户只需描述数组的分布形式并指出并行代码段即可, 适用于描述中、细粒度的并行。SPMD模型支持多个处理器在同一时间内执行同一运算, 并行任务的工作分配由用户控制, 适用于描述粗粒度的并行[1]。
(2) 并行方案设计对三部分程序进行串行测试后发现:资料收集部分用时占检验子系统总运行时间的95 %, 达到100 min, 所以我们把并行的重点放在资料收集部分。资料收集部分共需从16个盘阵上读取10天共320个文件, 然后对其进行数据处理。由于对每一个文件的处理算法完全相同而且相互之间不存在相关性, 所以我们采用SPMD模型, 即每个处理器运行相同的程序处理各自由相应盘阵读入局部存储器内的不同时次的资料, 从而充分的利用了神威机处理器多的优势, 使不同时次的资料得以并行处理。另外在这一系统中I/O处理占有很大的比重, 我们采用神威机提供的“快速文件系统”来提高读写速度。
2 并行化实现(1) 具体方法我们采用HPF中所提供的EXT RINSIC (HPF —LOCAL) 实现程序的并行, EXTRINSIC (HPF —LOCA L) 使程序员可将子程序写成“节点程序”, 其代码按任务并行系统的编码方式编写, 而且不用修改即可在每个处理器上运行, 当处理器进入EXTRINSIC (HPF —LOCAL) 后, 处理器之间就不存在相关性了[2]。EXTRINSIC (HPF —LOCAL) 完全适用于符合SPMD模型的资料收集部分的编程。综合平衡处理器处理速度和磁盘阵列的访问频率两方面的因素, 把10天共320个文件的资料分成10组 (每天一组), 由10个处理器来参与运算, 即每个处理器处理一天的资料。按照以上方法并行后, 运行时间降至40 min, 墙钟时间节省了60 %(见图 1)。
![]() |
|
图 1. 并行流程图 |
(2) 优化措施我们在程序运行过程中发现对单个一天资料收集的速度相差很大, 最快的和最慢的相差30 min之多。经过分析得到, 由于每天的资料均匀分布在16个盘阵上, 使得10个处理器均从盘阵1读至盘阵16, 造成拥堵现象, 负载严重不平衡, 导致运行时间增长。为了解决这个问题, 我们采用了各个处理器错开盘阵读的方法, 0号处理器从盘阵1开始直至盘阵16, 1号处理器从盘阵2直至盘阵1, 其他依次类推。这样对一个盘阵的访问负载基本均衡。这一优化方案使得资料收集的运行时间大为缩短, 只需8min即可完成, 与先前40 min比提高了5倍。
检验子系统是神威集合数值天气预报系统准确性检验的重要手段之一, 提高其运行效率是十分有必要的。我们对检验子系统资料收集部分的并行是成功的, 它具有并行颗粒度大, 负载平衡, 通信量低的特点。
[1] | 国家并行计算机工程技术研究中心. 高性能FORT RAN语言程序设计指南. 神威计算机系统技术资料 (14). 1999. 2. |
[2] | 国家并行计算机工程技术研究中心. 高性能FORT RAN语言参考手册. 神威计算机系统技术资料 (13). 1999. 31. |