当前位置:首页 >> 电力/水利 >>

POM海洋模式的并行算法_图文

第29卷第3期 2010年06月


~"dUNE







Vbl.29.No.3 Jun.2010

SCIENCE BULLETIN

POM海洋模式的并行算法
李冬1,一,刘璩1,韩桂军2,张学峰2,王喜冬2
(1.南开大学信息技术科学学院,计算机科学与技术系,天津,30007l;2.国家海洋局国家海洋信息中心,天津,30017I)

摘要:POM模式目前尚无正式发布的并行版本。通过对POM串行程序的数据流向分析,讨论了POM模式并行化所涉及的关键算 法和主要技术问题;并基于消息传递接口(M衅I),研发了POM模式的并行版本。测试结果表明,POM并行软件效率较高,达到了 业务化要求,业已应用于国家海洋信息中心的再分析业务化系统中。

关键词:PoM模式;并行算法;mI;再分析
中图分类号:P717;P731.2 文献标识码:A 文章编号:
100l-6932(20lO)03-0329一06

ParaUel

algorithms

for Princeton ocean Model

Guqun2,zHANG xue.fen孑,wANG xi.don92 (1.Dep岫nentofC伽哪IterSci∞∞如d融h肿logy,Con昭cofh妇∞蒯m弧咖icalSci踟ce。N卸kaiUIIive略i坝1钿巧.m 30D07l,Chi触; 2.Nati咖|al Ma血e Da_ta髓d kf0嘲6∞Service,SoA,啊anjjn 7l,Chim)
LI DongL2,LIu Jin91,HAN
3001

Ab暑仃曩ct:11lere is paper intends t0

no

illV硎gate也e key algori也ms趾d m旬or tcchlliques in p撇lle岫g nle

o伍cially

pubHshed

editi∞of panuel PoM(Pfi玳融on oce锄Model)at the se嘲l code of POM b勰cd∞

pr黜t做nc.nis

d雏I-now

analysis.111e parallel by
oIlr

肼—’o咖ance is w蜥ed 卜m∞IS(Natioml

editi∞of POM h船b啪devel叩ed using MPI(messagc p勰sing

inl胁ce)锄d its hi曲

M撕北Data锄d‰ation

e珥蛾血即【协.A卫d

now,it

h器been guocess丘my applied to也e re姐alysis system in

Keywords:POM;p锄矗neI

al901崎Ihm;A/口I;re蛐sis

Sen,ice)

POM(Princeton Ocean Modcl)模式IlJ是美国普

SGI Origin

2000),但用户的使用情况表明,其计算

林斯顿大学发展的三维斜压原始方程海洋模式。国 内外许多业务化数值预报和再分析系统都是以 POM模式为基础开发的。 近年来,随着业务化系统的需要及计算条件的 逐步提高,海洋模式的时空分辨率越来越高。我们 多年的研究实践表明,采用POM模式的串行版软 件,能够较好的满足潮汐和三维潮流的数值计算时

结果与相应的串行版本的计算结果存在明显差异,

不能满足实际应用。同时,三维海洋模式的并行化
是极具挑战性的工作,技术难度大,复杂程度高。

所有这些,都给使用POM模式的海洋科研工作者
带来极大的不便,阻碍了其业务化系统的建设和应 用。

本文将讨论POM模式并行化过程中涉及的关
键算法和主要技术问题,在对POM模式串行程序 进行数据流向分析的基础上,基于消息传递接口 (MPI)13】,依托自主开发的基础通信模块,设计 并完成了POM模式并行软件的开发。 文章第二部分对POM海洋模式进行简单介绍;

效要求。但若研发再分析、数据同化和数值预报系
统,无论从再分析业务化运行时间,数值预报的时

效、还是从模式的深入开发调试上讲,POM模式的
现有串行版软件均难以满足业务化系统的要求。 遗憾的是,POM模式目前尚无正式发布的并行 版本。虽然Intemet上可以下载到并行的CousillS 版本121(该版本采用ToPAz软件开发了MP-POM (Massively Parallel.POM,并已移植到C瑚【y T3E和
收稿臼期:2009-11.19;修订日期:2009.12.21

第三部分详细讨论POM模式的并行算法、并行程
序框架及通信软件模块;第四部分介绍并行程序的 测试结果;第五部分给出结论。

基金项目:国家重点基础研究发展计划课题(2007CB816001)、国家自然科学基金项目(40776016、409∞015和4090印16)

作者简介:李冬(1974一),男,博士研究生,副研究员,主要从事海洋数据同化、并行计算及科学数据可视化研究。电子邮箱:hd彻92003@鲫aiLcom

万方数据

330









29卷

之前各进行一次)。 2

POM海洋模式简介
POM模式的主要特点为:

而通过数据流相关分析可知(图1),事实上, 每个进程在计算数组y之前,只要更新自己重叠区 中的x数组的3个元素(在图中以圆圈标记),之 后计算数组y和z的工作就完全在本进程完成,而 无需与其它进程通信。与完全通过通信机制进行重 叠区的更新相比,这虽然略微增加了本地的冗余计 算(计算y时有冗余),但却减少了一次重叠区更 新操作。而通过通信进行的重叠区更新具有很大的 通信开销(算法见3.2.2),在实际程序中,当大量 这样的更新操作被减少时,并行程序的效率会得到 显著提高。

(1)垂向混合系数由二阶湍流闭合模式确定。
但)垂向采用。坐标。 (3)水平采用正交曲线网格及“Amkawa C” 网格。 (4)水平差分格式采用显格式,垂向差分格式 采用隐格式。 (5)采用自由表面及时间分裂格式;外模式 (正压模)为二维,采用较短的时间步长(由CFL条 件及外重力波波速决定);内模式(斜压模)为三维, 采用较长的时间步长(由CFL条件及内波波速决 定)。 (6)模式包含完整的热力学过程。 3


◆◆
o o




P2

POM模式并行算法及软件设计
由于POM模式的差分格式,水平方向采用显

P1\
Pl






P3

3.1算法及程序框架



P2







P3

Z Pl

格式,z方向采用隐格式,因此,在水平方向各格

点的计算仅与相邻格点的前面时刻的数据相关。设
计POM模式并行化的关键是如何有效地进行重叠 区数据的更新。 重叠区数据的更新需要通过与周围相邻进程 的通信完成,但若完全依靠通信机制来实现,通信 开销太大,严重影响程序的并行效率。我们在对
F谚1 图1本地冗余计算与进程通信结合实现重叠区更

Halof蝴sup血刚by£he㈣bina石∞of

新示意图

pfoc黜s c0蛐舢nicating蚰d Iocal∞mly嘶ng
我们将这样的一段代码称之为一个“并行区 域”,即通信主要集中于此代码段的入口,而在代 码段内部主要是本地计算,几乎不进行(或仅有少

POM模式串行程序进行数据流分析的基础上,将相
邻进程通信和本进程的冗余计算相结合来实现重 叠区数据的更新,并采用MPI提供的派生数据类型 将多变量数据打包在一起更新,极大地降低了通信 的开销。简单起见,以一维情形为例,简要说明并

量)进程之间的通信。采用本地冗余计算与进程通
信相结合的方式进行重叠区的更新,其带来的另一 个优点是:由于各变量均于“并行区域”的入口处 进行重叠区的更新,因此,可以通过派生数据类型 将这些变量打包一并更新,再次显著地减少了并行 程序的通信次数,极大地提高了并行效率。 我们在对POM模式串行程序进行数据流向分

行程序的设计思路。假设有如下简单的串行代码:
real

x(iIll),y(im),z(iIll)

……(此处省略部分代码)
doi-2.im

y(i)=x(i)一x(i-1)
enddo do i-2.im-l

析的基础上,采用本地冗余计算与通信结合更新重
叠区的方式,基于MPI开发了POM并行程序,基 本流程见图2。 其中,在内(斜压)、外(正压)模式之间建 立了3个“并行区域”,在这些区域中,仅有少量 的进程通信,大部分通信集中于它们的入口,通过 采用派生数据类型,将需要消息传输的变量一起更 新,显著减少了通信次数,提高了并行效率。

z(i)=y(i+1)一2奉y(i)+y(i-1) 锄ddo 由于计算y(i)时要用到x(i-1)值,计算z(i)时用 到y(i+1)和y(i.1),因此改写成并行程序时,每个进 程要进行两次重叠区的更新操作(在计算数组y、z

万方数据

3期

李冬等:POM海洋模式的并行算法

33 l

图中的数字表示进程的编号,每个进程只负责自己 所管辖海区的计算任务。图中的海区即为基于POM 的中国海及邻近海域预报模式的计算区域。 3.2.2数据重叠区更新模块 基于区域划分的 海洋模式并行算法,由于数值计算格式的需要,每 个进程在计算过程中不可避免地要用到其周围相 邻进程的数据,因此,通常需要在每个进程所负责 的计算区域周围建立重叠区(oved印Are豁或Fake
Zones、Halo Regions)。本地进程重叠区数据的更新

由其周围相邻进程发送,本机接收。对重叠区数据 进行正确的更新是保证并行程序结果正确性的关 键,重叠区数据更新效率的好坏也直接影响并行程 序最终的并行效率。图4为POM模式并行计算软 件采用的重叠区更新算法的流程示意图: (1)非阻塞接收相邻的北部进程发来的数据,

圜2
Fig.2

P()M并行程序的基本觅程图
Flow chart ofpamuel

PoM

3.2通信模块的设计和开发 正确、高效地实现不同进程之间的通信,是并 行程序设计要解决的关键问题之一。我们对MPI 标准库函数进行了封装,开发了一系列高层的基础

通信模块,并依托这些基础通信模块进行POM模
式的并行开发工作。 这些基础通信模块包括:区域划分及进程的虚

拟拓扑结构模块、数据重叠区更新模块、派生数据

图3进程虚拟拓扑结构示意图
Fig.3、,irtIlal

类型模块、数据合并及分解模块、∞接口模块等。
3.2.1

toP0logi鹤of舯ces螂

区域划分及进程的虚拟拓扑结构模块

以更新本进程的重叠区1;非阻塞接收相邻的南部
进程发来的数据,以更新本进程的重叠区2。 (2)阻塞发送本进程计算区域中的北部数据 至相邻的北部进程的重叠区2:阻塞发送本进程计

根据对POM数值模式的差分格式(水平方向采用 显格式,z方向采用隐格式)及其串行程序的数据
流向分析,POM并行软件将计算海区按经纬度划分 成多个子海区分配给不同的进程。 进行区域划分以后,设计进程的虚拟拓扑结

算区域中的南部数据至相邻的南部进程的重叠区
1。

构,对进程进行编号,建立数据和任务与进程之间
的映射:同时,为了各进程之间通信的方便,建立 进程之间的联系,即每个进程除了记录自己的信息

(3)等待本进程重叠区1和重叠区2数据接 收的完成(这是必须的,否则,可能会导致东南、 东北、西南、西北四个角处的重叠区数据的错误更 新)。但这里并不需要进程之间的同步操作。 (4)非阻塞接收相邻的西部进程发来的数据,

之外,还要记录其周围相邻进程的基本信息。图3 是采用16个进程时的进程虚拟拓扑结构示意图,

万方数据

332









29卷

以更新本进程的重叠区3;非阻塞接收相邻的东部
进程发来的数据,以更新本进程的重叠区4。 (5)阻塞发送本进程计算区域中的西部数据 至相邻的西部进程的重叠区4;阻塞发送本进程计 算区域中的东部数据至相邻的东部进程的重叠区3。 (6)等待本进程重叠区3和重叠区4数据接 收的完成。 新。

所有的进程同时执行这6个步骤,最后的结果 是每个进程的重叠区数据都得到了正确、有效的更 另外,重叠区更新模块还包括:沿经度方向进 行重叠区更新的模块及沿纬度方向进行重叠区更 新的模块。

图4重叠区吏新算法流程示意图
Fig.4 Updat.mg algorithllls
for

hallo咒gi蚀s

3.2.3

派生数据类型模块

POM并行程序中经

且可以将多个不同数据类型的变量一起发送和接

常要发送和接收内存中非连续分布的数据。如图5 所示,假如进程要更新右侧重叠区切块中的海温数 据(存放于数组T(i,j,k)中),由于Fortr锄语言是列 优先的,因此,数组T(i,i,k)重叠区中同一层中不 同行(如图中标记为1和2的区域)的元素在内存 中地址是不连续的,不同层(如图中标记为1、3 或2、4的区域)的数据其地址就更不连续。此外, 进行重叠区更新时,通常需要更新多个数组变量,

收,提高程序的并行效率。此外,在并行∞中,
也经常要利用派生数据类型进行文件的读写。 3.2.4数据合并及分解模块 设计POM模式并

行程序时,需将计算区域进行划分,把数据和计算
任务分配给不同的进程。然而,在模式开发及程序

的调试过程中,开发者经常需要了解区域数据与全 局数据之间的关系;同时,模式的输出也要求对各
进程的数据进行合并。因此,设计了数据的合并和 分解模块,主要包括如下功能: (1)将各进程上的局部数组数据合并为整个 计算区域的整体数组数据。这通过对局部数组定义 派生数据类型,并利用集合通信中的收集调用来实 现。 (2)将整个计算区域的整体数组数据分解为 各个进程上的局部数组数据。这通过对局部数组定 义派生数据类型,并利用集合通信中的散发调用来

如海温、盐度、流速、水位、水深等,不同的变量
在内存中当然也不是连续分布的,如果对这些变量 分别发送和接收,则会使通信次数显著增加,降低 并行效率。 为此,POM并行程序定义了一系列MPI派生

数据类型,用以描述程序中经常进行通信的非连续
数据在内存中的分布。通过使用这些派生数据类 型,可以方便地对数据进行抽取,合并和通信,并

万方数据

3期

李冬等:POM海洋模式的并行算法


333

实现。 (3)点在整个计算区域中的全局坐标转换为 其在相应进程中的局地坐标,并返回此进程号及其 所管辖区域的起始点坐标。 (4)点在进程中的局地位置坐标转换为其在 整个计算区域中的全局坐标。 3.2.5并行I/o模块 通过使用自定义派生数据 类型、定义文件视图并使用聚合I/o函数实现了 POM模式的并行I/o接口模块。



钿*






’O









处理器量日

图6并行程序加速比
Fig.6

Speed印ofp甜“el POM



结语
对POM模式串行程序进行数据流向分析的基

础上,采用本地冗余计算与通信结合更新重叠区的 方式,基于MPI开发了POM并行程序。经测试, 并行软件效率较高,达到了业务化应用要求。目前,
图5派生数据类型示意图 Fi晷5

国家海洋信息中心已经发布了中国海及邻近海域 的23年海洋再分析产品,这在中国海洋界尚数首 次,其中POM海洋模式的并行软件的研制成功为 保证模式的高效运行起了重要的作用。
表l性能测试结果


D盯iv耐如孵

4测试结果
我们对中国海及邻近海域的POMgcs模式 (POM模式的变种,与POM的区别在于其垂向采 用仃及z坐标的混合坐标,但并行方案与POM模 式完全相同)并行软件在国家海洋信息中心的高性 能机群系统上进行了测试。模式的水平网格分辨率

T曲.1

R髑ul钯ofpem唧1雅∞

为285×307,垂向35层,模式积分时间为3天。表
l为性能测试结果:图6为加速比曲线,其中,虚

线代表线性(理想)加速比,实线代表实际加速比。
测试结果表明,在并行效果方面,当进程数目 不超过48个,POMgcs并行程序的并行效率基本在

70%以上;当进程数目不超过20个时,POMgcs并 行程序可以保持线性加速比,特别当进程数目在10 个以内时出现了超线性加速比现象,这可能是由于
高速缓存(cache)的影响,操作系统开销的均摊等原 因造成的。当使用的进程数目超过50个后,虽然 并行程序仍然保持加速,但不再保持线性加速比, 这与测试问题的规模有关。 在结果准确性方面,并行软件的计算结果与串 行程序计算结果完全~致。 目前POM模式串行程序,对陆地点和水点做 同样的计算,只是将陆地点的计算结果扣除。这其

实做了许多冗余计算,使得由此改写的并行程序中 许多进程的计算亦有冗余,甚至有的进程的工作完
全是冗余的。我们进一步的工作,将只考虑水点的 计算,但要设计更好的区域划分算法,以保证进程 的负载平衡。
(下转第350页)

万方数据

350








200l,2l(2):89。92.

29卷

参考文献:
【l】 聂风军,江恩宏,赵省民.关于矿产资源评价的若干问题[J】. 中国地质,2000,274(3):22—25. [2J He妯J&C曲aIt珂ch钕Tomangane∞cmsts
CronaIl D i11 tlle

[12】

JeongKs,J岫gH s,K粕g Jk
cmsts
on

et

nonllwest

协te唧cal

aI.F咖ationoffb玎om柚g她龉e
Pacific seamounts:

elec们n

Pacific[MJ.如:

photomicrography柚d rnjcroprobe
2000.162:541-549.

cheIlIis臼y【J】.M弛G∞logy.
A.Cobah-如d

S(ed.)’片b一枷础D,朋蹄加e胁船删D印∞如,CRC
[13】

P他峨Boca R曲0n,Fl面da,2000:239—279. 【3】 陈建平.矿产资源勘查与评价学科发展动态.记第五届国际矿产 资源学术讨论会叨.地质科技情报,1999,3:47—50. 【4】
黜chcy J.As∞鼹mem of
Horizon arId s.p 23l-243. cobalt rich

Hein J&Schwab W C,Davis Ferrom孤g柚ese Marshall

PIatiIl哪?rich

Cmsts托d舡sociated Substrate R0cks伍腿me

Isl卸ds【J】.Marine Geology.1988,78:255—283.

m肌gane辩cmst懈ourc船0n

[14】

金庆焕.洋底新发现的固体矿产资源和西北太平洋构造的有关 问题叭.南海地质研究,1991,3:1.8.

L∞Guyots[J】,u.S.EFZ MariIle Miniing,1987: 【1 5]

胡光道,赵鹏大.勘探工程地质统计信息法闭.地球科学-中国 地质大学学报,1988,13(2):2ll-221.

【5】

张富元,章伟艳,王英,等.大洋多金属结核资源评价的基本理 论与方法[J】.沉积学报,200l,19(2):169-177.
【1 6】

章伟艳,胡光道,张富元,等.中太平洋sA海山钴结壳勘查网度 分析【J】-矿物学报,2008,28(3):3
I 7?322.

【6】

宋国耀,张晓华,肖克炎,等.矿产资源潜力评价的理论和GIs 技术,物探化探计算技术【J】.1999,2l(3):200.205. [17】

国土资源部储量司编著.矿产资源量计算方法汇编【M】.北京: 地质出版社.2000:297.317.

【7]

章伟艳,张富元,胡光道,等.中西太平洋海山形态类型与钴结 壳资源分布关系们.海洋学报,2008,30(6):76—84. 【18】

张富元.大洋多金属结核资源量计算和资源评价方法探讨Ⅲ. 海洋学报,1995,17(4):85.93.

【8】

王英,金翔龙.人工神经网络在多金属结核研究中应用【J】.海 洋学报,1998,20(5):83—89. 【19】

武光海,周怀阳,杨树峰.最近区域法与地质块段法在富钴结壳 资源量评估中的综合应用Ⅲ.海洋地质与第四纪地质,2000,
20(4):87?92,

【9】

章伟艳,张富元,杨克红,等.地形与钻结壳资源分布的分形研 究叨.沉积学报,2006.24(5):16-24.

【10]

杨克红,章伟艳,胡光道,等.分形理论在富钴结壳资源量评价 方面的应用研究旧.地质与勘探,2004,40(6):61.64.

【20】

程永寿,冯志勇,殷汝广,等.基于GIs的富钴结壳资源量计算 系统开发[J]海洋通报,2007,26(6):85—90.

【1l】

何高文.富钴结壳分布的分形特征【J1.海洋地质与第四纪地质,

(上接第333页)

参考文献:
【I】 Blurnk唱A F,MeⅡor
coastaJ G

Beo、¨lf L.A如s啊pti加of


C1ust盯

【R】.

Terrain—Following

C00fdinates
20-22.

Us盯’s

tlll优?dime璐ional [3】
c,

Workshop,Bould%CoIomdo,200l:August
MPl:A Message-P船sing Inte矗ice 【4】

oce锄model【G】.nlr∞diInensi彻aI co鹅诅l oce柚models,

Interlke standard【S】.Message

pasS咄

N.s.Heaps,Ed洒r,AmericafI Geophysical
1987:1.16.

union,w硒h崦ton D
Oce柚Model
on

Fom札2003.

张林波,迟学斌.并行计算导论[M】.清华大学出版社,2006:
268—279

【2】

coIlsi璐s,xlle H

Rl|nning

tlle

P血ceton



万方数据


相关文章:
更多相关标签: