APP下载

瞬变电磁响应计算的并行算法研究

2009-11-29

长江大学学报(自科版) 2009年10期
关键词:并行算法电磁场结点

谢 丽

(长江大学物理科学与技术学院,湖北 荆州 434023)

胡文宝

(长江大学地球物理与石油资源学院,湖北 荆州 434023)

陆 辉

(中国石油大学(北京)石油天然气工程学院,北京 102249)

瞬变电磁响应计算的并行算法研究

谢 丽

(长江大学物理科学与技术学院,湖北 荆州 434023)

胡文宝

(长江大学地球物理与石油资源学院,湖北 荆州 434023)

陆 辉

(中国石油大学(北京)石油天然气工程学院,北京 102249)

在MPI的分布式网络并行编程环境下,以电磁场理论为背景,对瞬变电磁响应计算中的问题进行了研究,并编程实现了一维水平层状大地的并行计算。计算结果证明了该算法的正确性、可行性和高效性。

瞬变电磁响应;并行算法;MPI

目前,随着电子科学技术的发展,电磁问题变得越来越复杂,而计算机集群(Cluster)系统的迅速发展,为求解大规模复杂电磁问题提供了机遇。因此大力提升电磁算法的计算能力,适应当今信息科技发展的需求,将原来适用于单机运行的串行快速电磁算法发展到各种并行环境就成了非常重要的工作。

复杂模型电磁响应计算的速度是进行电磁资料反演成像的技术瓶颈,所以研究可控源电磁响应技术的并行算法具有重要的学术价值和应用前景。为此,笔者将并行计算引入到瞬变电磁响应的正演计算中。

1 层状瞬变电磁响应计算的并行基础

对于瞬变电磁场响应特征的分析,大多是采用将相应情况下的频率域结果经傅里叶变换转换到时间域的方式。Oristaglio等和Wang等[1]提出了地球物理勘探中瞬变电磁场的时域有限差分算法,即在每一时间步计算网格空间各点的场量,随着时间步的推进,就能直接模拟电磁波的传播及其与地质体的相互作用过程,使电磁场的时域特性被直接反映出来。但是这种方法在进行空间网格离散化时,必须满足数值色散对空间离散间隔的要求,即网格的最大尺寸要小于波长的十分之一,对于较大的电磁问题势必会产生大数量的网格,随着频率升高,单台PC机将很难提供足够的存储空间,且计算时间变长,计算性能降低。为了满足日益复杂的实际应用问题,发展并行计算已成为必然的趋势。而时域有限差分法的计算特点是,每一网格点上的电场(或磁场)只与其周围相邻网格点处的磁场(或电场)及其上一时间步的场值有关,这使得它特别适合并行计算。

在一维层状介质无耗的情况下,Hy和Ex的FDTD差分格式分别为:

图1 一维计算空间的分割及子区域间的场量变换

式中,E为电场强度,V/m;H为磁场强度,A/m;ε表示介质介电常数,F/m;μ表示磁导系数,H/m。电场和磁场在时间顺序上交替抽样,即抽样时间分别为Δt的整数倍和半整数倍,彼此相差半个时间步。

2 并行算法的实现

表1 瞬变电磁一维层状模型

笔者给出了一个一维层状大地模型,其层数为6层, 通过程序计算出层状大地的电位响应后,得到每层的电阻率如表1所示。笔者基于MPI平台,将原来的计算程序进行了并行化,并设计了4100个窗口,所用的语言为Fortran77。在程序设计中,负载分配和节点间通信很关键。

由于在算法的实际运行中,任务粒度越细,额外开销就越大,这会很大程度地减小加速比,而任务粒度越大,负载均匀性就相对要差些[4]。综合考虑,选择平均分配任务,即只考虑计算特征一致、均匀的负载,整个计算区域的计算方法相同。

2.1负载分配

进程id分的任务数为:

Nr = nt/numprocs+1

式中,numprocs为总的进程数。用MPI_PACK()将数据打包,然后用MPI_BCAST()函数把各网格点的数据分发到相关节点,接着用MPI_UNPACK()将数据解包进行计算。

实际上,各节点机在计算前的初始状态很难达到一致,并且节点机的计算能力还和系统的优化程度、系统资源在计算时的剩余量、网络的通信能力和各节点机的主频大小有关。因而,只能达到粗略的负载平衡。

2.2通信

在整个程序中,除了开始的数据分发和最后的数据收集外,各节点间要通信。频繁的数据通信对并行计算效率有很大影响,因此必须采用有效的方式来减少数据传送的通信耗时。笔者采用标准模式下的非阻塞通信,非阻塞式首先执行通信,然后计算不需要用到临区数据的区域,之后完成通信, 计算剩余区域,通信与计算同时进行,可以提高程序的执行效率。而数据发送和接收用MPI-SENDRECV 来实现操作,该语句将数据发送和数据接收合到一个调用中,不但简化了程序编写,同时由于该语句的操作是由通信系统来实现,系统会优化通信次序,从而避免不合理的通信次序,最大限度地避免死锁的产生。需要注意的就是收集各节点的数据之前要调用MPI_ Barrier()函数使通信同步[5,6],如果不同步则收集的数据可能不是预期的数据。

3 运 算

表2 程序在不同节点数下的运行结果

笔者所用的曙光4000L微机集群一共有64个节点,每个节点有2个CPU, CPU主频为218GHz,物理内存2G。其中1号为管理节点。由于并不是所有的节点都打开,在运算前首先用nprsh-on node.64 hostname对可用的机器配置进行了解,如果直接运算,那么所用的计算都在3号节点运行,则达不到并行的效果。

在不同节点下运行5次的平均时间作为记录数据,算得加速比和并行效率,结果见表2。根据表2,做出并行参数随结点变化图,如图2和图3。

图2 不同结点机数目下的计算耗时 图3 不同结点机数目下的加速比

从图2可以看出,当并行计算可以大幅度节省计算时间,随着节点数的增加,时间从1个节点的7.29s降至16个节点的0.56s,时间逐渐减少。从图3可以看出,并行加速比随着参与计算的结点增多而增大,当节点数增加到16时,加速比可达13左右,这证明了算法的正确性和高效性,性能得到了相当的提高, 可见并行计算对于瞬变电磁场的计算问题具有极大的实际应用价值。从图中还可看出这种增大趋势随着结点数的增多而趋缓,这也是符合并行计算普遍规律的。

4 结 语

在基于MPI的分布式网络并行编程环境下实现了并行化,并取得了较好的效果。提出的并行计算瞬变电磁问题的思路,具有广泛的应用价值,对于不同电磁勘探方法的计算有较好的指导意义,特别是对于计算量颇大的计算提供了一条新的算法思路。但瞬变电磁场计算中的问题还有待进一步深入研究。虽然实现了任意多个节点的并行计算,但还只限于简单的区域分割,只考虑计算特征一致、均匀的负载,即整个计算区域的计算方法相同[7]。这种情况下,计算区域大小与计算量是一致的。而如何将并行任务划分到各个节点进行运算是整个并行的关键,直接影响并行效率为了达到更实用的目标,所以后面的工作还应研究动态负载平衡下的任意维的区域分割。

[1]闫述,陈明生,傅君眉.瞬变电磁场的自接的数值分析[J].地球物理学报,2002,45(2):275~282.

[2] 薛正辉,杨仕明,高本庆,等.FDTD算法的网络并行运算实现[J].电子学报,2003,31(12): 1839~1843.

[3]郑奎松,葛德彪,葛宁.三维电磁散射的网络并行FDTD计算及加速比分析[A].2003年研究生学术年会论文集[C].西安:西安电子科技大学出版社,2003,11(7):13~16.

[4]莫则尧,袁国兴.消息传递并行编程环境[M].北京:科学出版社,2001.

[5]孙家旭,张林波,迟学斌,等.网络并行计算与分布式编程环境[M]. 北京:科学出版社,1996.

[6]Barry Wilkinson,Michael Allen.并行程序设计技术与应用(影印版)[M].北京:高等教育出版社,2002.26~32.

[7]梁小冰.基于MPI的电磁场时域有限差分法的网络并行研究[D]. 合肥:国防科学技术大学,2004.

[编辑] 洪云飞

2009-08-08

谢丽(1980-),女,2002年大学毕业,硕士,讲师,现主要从事电磁勘探和并行算法方面的研究工作。

O441.4

[MR(2000)主题分类号]78A25

A

1673-1409(2009)04-N022-03

猜你喜欢

并行算法电磁场结点
基于八数码问题的搜索算法的研究
地图线要素综合化的简递归并行算法
外加正交电磁场等离子体中电磁波透射特性
Ladyzhenskaya流体力学方程组的确定模与确定结点个数估计
一种基于动态调度的数据挖掘并行算法
电磁场与电磁波课程教学改革探析
基于GPU的GaBP并行算法研究
海洋可控源电磁场视电阻率计算方法
基于GPU的分类并行算法的研究与实现
基于Raspberry PI为结点的天气云测量网络实现