多作业管理方式在风能资源数值模拟中的应用
- 格式:pdf
- 大小:1008.17 KB
- 文档页数:7
第21卷6期 2010年12月
应用气象学报
JOURNAL OF APPI IED METEOROI OGICAI SCIENCE Vo1.21,No.6
December 2O10
多作业管理方式在风能资源数值模拟中的应用 张小伟 李正泉 杨忠恩 姚益平 (浙江省气候中心,杭州310017)
摘 要
蔡菊珍
通过对MM5和CAI MET风能资源数值模拟耦合模式的计算流程分析,基于并行运算思想,设计了MM5和 CAI MET耦合模式模拟运算的多作业管理方式。在浙江省风能资源高分辨率数值模拟试验中,完成浙江区域1 个月时间段的风能资源参数模拟运算,MM5和CAI MET耦合模式在实施多作业管理方式前后,CA1 MET模式的 运算时间由原来的1501.2 rain缩短为149.5 min,运算时效提高了9倍;整个耦合模式的运算时间由原来的 1 709.9 rain缩短为358.2 rain,运算时效提高了4倍。数值模拟试验证实了多作业管理方式可在现有计算资源的 基础上,大幅提高数值模式的运算时效,且随着数值模式模拟时间段的加长和模拟区域范尉的扩大,多作业管理方 式对数值模式运算功效的增强越加明显。 关键词:风能资源;数值模拟;MM5/CAI MET;并行运算
引 言 风能资源数值模拟是评价宏观区域风能资源可 开发状况的重要手段,由于测风塔分布数量有限,仅 依靠单纯测风塔的资料很难对风能资源的空间变化 格局做出准确评价,因此选用模型模拟风能资源分 布已成为一种重要而被广泛接受的研究方式l】。。 。 目前国际上流行的中尺度风能资源模拟模式主要有 美国的MM5_6。 与RAMS模式_8j、澳大利亚的 WindScape模式 、加拿大的WEST模式l】叫和丹麦 的KAMM模式 妇等。丹麦利用KAMM/Wasp中 微尺度和微尺度结合方式 ,已于2001年完成了 丹麦全国陆域数字风能资源图谱的制作,并对风能 资源的开发利用做出了细致评价,为该国风电规模 化发展打下了扎实的基础。在我国,2007年底国家 发展和改革委员会、财政部、中国气象局联合组织启 动了全国风能资源详查和评价工作,旨在建立我国 风能资源专业观测网,开展风能资源度高分辨率数 值模拟和风能资源综合评价,提出总装机容量约 5x l0 kW的风电场项目储备。
风能资源高分辨率数值模拟,尤其是大范围区 域的高分辨率数值模拟,常需要强大的计算资源作 为模式运算支撑。辽宁省曾运用MM5 4层嵌套方 式(最外层网格间距为27 km,网格数为103×103, 最内层网格间距为1 km,网格数为52×52)在IBM 1600机型上对风能资源数值模拟的运算量进行了 试验,试验结果为使用64个CPU完成36 h的风能 参数模拟计算约需270 rain 0 j。由此看来,数值 模式运算的低时效是制约风能资源高分辨率数值模 拟的重要因素。通过寻找一种新的计算方式来提高 数值模式运算功效,是解决弱计算能力部门开展风 能资源高分辨率数值模拟的重要途径。本文通过对 MM5和CAI MET数值模式主程序计算流程(尤其 是cAI MET计算流程)的详细分析,在不改变数值 模式原计算理论和计算方法的基础上,设计了MM5 和CAI MET耦合模式的并行运算多作业管理方 式,该方式能够极大提高了数值模式运算功效,不仅 解决了弱计算能力部门开展风能资源高分辨率数值 模拟的瓶颈问题,同时也为其他数值模式的高效运 算提供了一种参考方式。
* 浙江省重大科技专项“浙江沿海风能资源多尺度模拟与综合评价”(2009(03008 2)、浙江省气象局创新团队项F1“复杂地形条件F风 电量短期预报”(2009TD05)和”浙江省风能资源详查与评价”项目共同资助。 2010-02—03收到.2010 06 29收到再改稿。 748 应用气象学报 1 MM5和CALMET模式简介 MM5数值模式是美国宾州大学和NCAR共同 研制的中尺度非静力气象模式,模式结构分为前处 理、主模式和后处理3部分。主模式是整个模拟系 统的核心部分,是研究气象过程的主控程序,其物理 过程主要包括积云对流参数化方案口 、辐射方案、 高分辨率行星边界层方案等口 。CALMET是由美 国地球技术公司(Earth Tech Inc)开发的用于复杂 地形的边界层微尺度气象诊断模式,起初该模式主 要应用于大气质量评估和预测系统CALPUFF 中_1 ,现今在风能资源评估和风电功率预报方面亦 取得了较大进展l_】 ]。MM5与CALMET两模式 之间具有很好的对接功能,可相互耦合在一起共同 开展风资源模拟研究,如Yim等利用MM5与 CALMET耦合模式在复杂地形条件下开展了风资 源的高分辨率模拟 。在2OO7—2O11年我国的风 能资源详查和评价工作中,中国气象局推荐使用 MM5/CALMET耦合模式在省级范围内开展风能 资源短期数值模拟,要求模式计算时间步长为秒级, 输出产品的时空分辨率为水平分辨率为1 km× 1 km,垂直分辨率为10 m,时间间隔为l h。
2多作业管理方式设计 基于并行运算的多作业管理是指同时使用多种 计算资源解决计算问题的过程,是提高计算机系统 计算速度和处理能力的一种有效手段。由于MM5 模式起初就是针对宏观区域的中尺度数值模拟设计 的,其模式程序中已考虑了计算机并行运算的需求, 并行运算程序代码在多数MM5用户指南的附录中 可查找到,故在本文中不再赘述。CALMET模式是 一个局地微尺度的气象模式,模拟范围较小通常不 需并行运算,因此模式的设计是单机版_2 ,不符合 并行运算要求。本文针对CALMET模式与MM5 模式之间的相互关系,在两个模式计算流程的连接 处,设计了MM5与CALMET耦合模式的并行运算 多作业管理方式。 2.1 CALMET计算流程分析 CALMET模式模拟计算所要用到的模块依次 有CALMM5、初始化模块、计算模块和退出模 块 。CALMM5模块从MM5数值模拟结果中抽 取所需变量并转换到CALMET要求的格式;初始 化模块读取分析命令行参数和控制文件中的参数和 设置,并做好所需数据文件准备;计算模块是 CALMET的核心模块,以时次为主循环,依次完成 MM5数据读入并初始化到CALMET格点场,进行 地形动力学效应、地形阻塞效应及坡面流调整,客观 插值分析,海陆风效应调整,质量守恒性调整和数据 结果输出;退出模块主要完成结束数据文件的出入 口,运算时问分析等。CALMET模式模拟计算流程 见图1。 图1 CALMET模式模拟计算流程 Fig.1 The flow chart of CALMET simulation 在CALMET模式运行中,对并行设计比较重 要的有以下3个特征:①模式中不同日期的运算是 相互独立的;②在计算模块中,各时次的运算基本 上相互独立,只在边界层的混合层高度计算时要用 到前1时次的结果;③在计算模块中,各个模块逐 步进行,参数变量通常以三维空问数据块的形式传 递,如东西方向水平风速定义为Fortan变量“( , ,z ,” ), 为东西向格点数, 为南北向格点数, 为垂直方向格点数。 2.2 CALMET并行运算方案 依据CALMET模式模拟计算的流程结构,实 施并行运算大致有3种方案。方案1,按日期并行 6期 张小伟等:多作业管理方式在风能资源数值模拟中的应用 749 (在图1中标识①处):该方案适合消息传递的并行 方式,实现也较为简单。在日期循环处加入并行任 务分配代码,因为各日期之问相互独立,不必修改 CALMET程序,只需修改CALMET控制文件中的 出入口文件名即可完成。但该方案对计算机内存的 需求随并行数成倍增加,并行效率在3个方案中为 较低。方案2,按时次并行(在图1中标识②处):该 方案适合消息传递的并行方式,实现难度中。在时 次循环处插入并行代码,但由于时次之间计算不完 全对立,还需要在部分函数中加入消息传递代码。 该方案对计算机内存需求也随并行数成倍增加,但 运算效率要高于方案1。方案3,按空间分解并行 (在图1中标识③处):该方案适合共享存储并行方 式,实现较难,而并行效率高。该方案需在计算模块 的地形动力学效应、地形阻塞效应及坡面流调整、客 观插值分析、海陆风效应调整、质量守恒性调整等函 数中的数组循环语句段中插入适当的并行指令。但 该方案只能用于单一节点,将其与方案1和方案2 联用效果最佳。 2.3多作业管理方式设计 在MM5和CALMET耦合模式的运算中, MM5模式运算速度很快,而单机版的CALMET模 式只能利用单台计算机逐一按日对MM5的输出结 果进行处理和计算,这就造成MM5模式的输出结 果在计算机中逐渐累积,而另一方面计算机集群中 其他计算机却都在闲置,耦合模式运算速度十分缓 慢,因此需对CAI MET模式做并行运算处理。在 上面提到的3个并行运算方案中,方案2和方案3 必须通过修改cALMET程序源代码方能实现,这 需要得到美国地球技术公司(Earth Tech Inc)的认 同,故暂时尚未开展此部分工作。针对方案1的并 行运算思想设计了MM5和CALMET耦合模式的 多作业管理方式(如图2所示),利用并行任务分配 模块可将MM5模式的运算输出结果按不同日期指
图2 MM5与CAI MET耦合模式的多作业管理方式 Fig.2 Multi—job management mode of the coupled MM5/CAI MET system
派计算机集群中不同的CPU,这就充分使用了集群 中的各种计算资源,极大地缩短了模式的运算时间, 提高了运算功效。“并行任务分配模块”的核心程序 代码列为: Parallcalmet(int startday,int nday){f startday
为初始日期,nday为运算天数; {int rank,size,i,day;∥rank为并行进程的进 程号(CPU序号),size为总并行进程数(CPU总 数),i为天循环数,day为循环中的当前日期; MPIInit  ̄argc, ̄argv)』}MPI—Init 头