留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

利用MPI并行算法实现球谐综合的效率分析

崔家武 周波阳 罗志才 张兴福

崔家武, 周波阳, 罗志才, 张兴福. 利用MPI并行算法实现球谐综合的效率分析[J]. 武汉大学学报 ( 信息科学版), 2019, 44(12): 1802-1807. doi: 10.13203/j.whugis20180165
引用本文: 崔家武, 周波阳, 罗志才, 张兴福. 利用MPI并行算法实现球谐综合的效率分析[J]. 武汉大学学报 ( 信息科学版), 2019, 44(12): 1802-1807. doi: 10.13203/j.whugis20180165
CUI Jiawu, ZHOU Boyang, LUO Zhicai, ZHANG Xingfu. Efficiency Analysis of Spherical Harmonic Synthesis Based on MPI Parallel Algorithm[J]. Geomatics and Information Science of Wuhan University, 2019, 44(12): 1802-1807. doi: 10.13203/j.whugis20180165
Citation: CUI Jiawu, ZHOU Boyang, LUO Zhicai, ZHANG Xingfu. Efficiency Analysis of Spherical Harmonic Synthesis Based on MPI Parallel Algorithm[J]. Geomatics and Information Science of Wuhan University, 2019, 44(12): 1802-1807. doi: 10.13203/j.whugis20180165

利用MPI并行算法实现球谐综合的效率分析

doi: 10.13203/j.whugis20180165
基金项目: 

国家自然科学基金 41504013

国家自然科学基金 41674006

武汉大学地球空间环境与大地测量教育部重点实验室开放基金 14-01-03

详细信息
    作者简介:

    崔家武, 硕士生, 主要从事测量数据处理研究。864885814@qq.com

    通讯作者: 周波阳, 博士, 助理研究员。wdzbyang@163.com
  • 中图分类号: P228

Efficiency Analysis of Spherical Harmonic Synthesis Based on MPI Parallel Algorithm

Funds: 

The National Natural Science Foundation of China 41504013

The National Natural Science Foundation of China 41674006

the Open Research Fund of Key Laboratory of Geospace Environment and Geodesy, Ministry of Education, Wuhan University 14-01-03

More Information
    Author Bio:

    CUI Jiawu, postgraduate, majors in measurement data processing. E-mail: 864885814@qq.com

    Corresponding author: ZHOU Boyang, PhD, assistant researcher. E-mail: wdzbyang@163.com
  • 摘要: 分析了求解地球重力场参量的球谐综合计算公式,引入数组预存再调用方法来避免传统算法中对cos()、sin()及勒让德函数的递推系数的重复计算问题,并结合MPI(message passing interface)并行技术来提高计算效率。实验采用2 160阶次的EGM2008模型,以DELL PowerEdge R730服务器和超算“天河二号”为计算平台,计算了分辨率1°和5'的网格重力异常。结果表明,数组预存再调用的方式减少了中央处理器(central processing unit,CPU)的计算工作量,但同时增加了内存的访问次数,适用于CPU性能一般而内存频率较高的计算平台。MPI并行技术可充分发挥计算机的多核优势,并在进程个数等于逻辑CPU的个数时获得最大加速比。
  • 图  1  纬度分块并行计算

    Figure  1.  Parallel Computation of Latitude Blocks

    图  2  服务器上不同方案串行及并行的加速比

    Figure  2.  Serial and Parallel Speedup Ratios of Different Schemes on the Server

    图  3  超算平台上不同方案串行及并行的加速比

    Figure  3.  Serial and Parallel Speedup Ratios of Different Schemes on the Supercomputer

    表  1  服务器上不同方案的内存耗用

    Table  1.   Memory of Different Schemes on the Server

    进程 算例1/MB 算例2/MB
    方案1 方案2 方案3 方案1 方案2 方案3
    1 179 194 274 195 354 444
    10 1 796 1 894 2 680 2 077 3 504 4 291
    20 3 596 3 813 5 359 3 934 6 791 8 310
    30 5 396 5 735 8 033 5 791 10 074 12 361
    60 10 808 11 517 16 096 11 378 19 941 24 512
    90 16 253 17 332 24 159 16 973 29 826 38 658
    180 35 484 41 724 51 323 38 399 61 011 74 722
    下载: 导出CSV

    表  2  服务器上不同方案计算时间

    Table  2.   Time of Different Schemes on the Server

    进程 算例1/s 算例2/s
    方案1 方案2 方案3 方案1 方案2 方案3
    1 19 260 12 162 11 311 274 533 190 403 186 479
    10 2 455 1 698 1 492 39 819 33 592 21 298
    20 1 677 1 368 1 239 20 677 16 852 15 697
    30 1 169 1 024 978 14 226 12 695 12 402
    60 1 189 1 103 980 15 047 14 186 14 363
    90 1 202 1 091 1 115 15 010 16 826 15 942
    180 1 535 1 773 2 788 15 817 19 569 20 440
    下载: 导出CSV

    表  3  超算平台上不同方案计算耗时

    Table  3.   Calculation Time of Different Schemes on the Supercomputer

    进程 算例1/s 算例2/s
    方案1 方案2 方案3 方案1 方案2 方案3
    1 2 035 2 014 1 964 24 408 52 328 52 371
    10 247 242 242 2 875 6 278 6 171
    20 134 127 125 1 457 3 124 3 123
    30 92 86 86 982 2 090 2 090
    60 49 46 46 512 1 058 1 063
    90 35 33 33 347 716 714
    180 21 20 20 186 403 412
    下载: 导出CSV
  • [1] 罗志才, 宁津生, 晁定波.卫星重力梯度分量的球谐综合[J].武汉测绘科技大学学报, 1996, 21(2): 103-108 http://www.cnki.com.cn/Article/CJFDTotal-WHCH199602000.htm

    Luo Zhicai, Ning Jinsheng, Chao Dingbo. Spherical Harmonic Synthesis on Satellite Gravity Gradient Component[J]. Journal of Wuhan Technical University of Surveying and Mapping, 1996, 21(2): 103-108 http://www.cnki.com.cn/Article/CJFDTotal-WHCH199602000.htm
    [2] 吴星, 张传定, 赵德军, 等.广义球谐函数定积分计算方法的改进[J].测绘学院学报, 2005, 22(1): 17-20 doi:  10.3969/j.issn.1673-6338.2005.01.006

    Wu Xing, Zhang Chuanding, Zhao Dejun, et al. Improvements on the Computation of Fixed Integral of Generalized Spherical Harmonics[J]. Journal of Institute of Surveying and Mapping, 2005, 22(1): 17-20 doi:  10.3969/j.issn.1673-6338.2005.01.006
    [3] 王建强, 赵国强, 朱广彬.常用超高阶次缔合勒让德函数计算方法对比分析[J].大地测量与地球动力学, 2009, 29(2): 126-130 http://d.old.wanfangdata.com.cn/Periodical/dkxbydz200902028

    Wang Jianqiang, Zhao Guoqiang, Zhu Guangbin. Contrastive Analysis of Common Computing Methods of Ultra-high Degree and Order Fully Normalized Associated Legendre Function[J]. Journal of Geodesy and Geodynamics, 2009, 29(2): 126-130 http://d.old.wanfangdata.com.cn/Periodical/dkxbydz200902028
    [4] 李新星.超高阶地球重力场模型的构建[D].郑州: 信息工程大学, 2013 http://cdmd.cnki.com.cn/Article/CDMD-90005-1013353698.htm

    Li Xinxing. Building of an Ultra-High-Degree Geopotential Model[D]. Zhengzhou: Information Engineering University, 2013 http://cdmd.cnki.com.cn/Article/CDMD-90005-1013353698.htm
    [5] 王建强, 李建成, 王正涛, 等.球谐函数变换快速计算扰动引力[J].武汉大学学报·信息科学版, 2013, 38(9): 1 039-1 043 http://d.old.wanfangdata.com.cn/Periodical/whchkjdxxb201309007

    Wang Jianqiang, Li Jiancheng, Wang Zhengtao, et al. Pole Transform of Spherical Harmonic Function to Quickly Calculate Gravity the Disturbance on Earth-Orbiting Satellites[J]. Geomatics and Information Science of Wuhan University, 2013, 38(9): 1 039-1 043 http://d.old.wanfangdata.com.cn/Periodical/whchkjdxxb201309007
    [6] 多加拉J, 福克斯G, 肯尼迪K, 等.并行计算综论[M].莫则尧, 陈军, 曹小林.北京: 电子工业出版社, 2005

    Dongarra J, Fox G, Kennedy K, et al. Sourcebook of Parallel Computing[M]//Mo Zeyao, Chen Jun, Cao Xiaolin. Beijing: Publishing House of Electronics Industry, 2005
    [7] 邹贤才, 李建成, 汪海洪, 等. OpenMP并行计算在卫星重力数据处理中的应用[J].测绘学报, 2010, 39(6): 636-641 http://d.old.wanfangdata.com.cn/Periodical/chxb201006015

    Zou Xiancai, Li Jiancheng, Wang Haihong, et al. Application of Parallel Computing with OpenMP in Data Processing for Satellite Gravity[J]. Acta Geodaetica et Cartographica Sinica, 2010, 39(6): 636-641 http://d.old.wanfangdata.com.cn/Periodical/chxb201006015
    [8] Bakhtin V A, Kryukov V A, Chetverushkin B N, et al. Extension of the DVM Parallel Programming Model for Clusters with Heterogeneous Nodes[J]. Doklady Mathematics, 2012, 84(3):879-881 http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=cb8bddb1ca2a54e2b3b83e660113662e
    [9] 莫则尧, 袁国兴.消息传递并行编程环境MPI[M].北京:科学出版社, 2006

    Mo Zeyao, Yuan Guoxing. Message Passing Interface MPI Parallel Programming Environment[M]. Beijing: Science Press, 2006
    [10] Baboulin M. Solving Large Dense Linear Least Squares Problems on Parallel Distributed Computers. Application to the Earth's Gravity Field Computation[D]. Toulouse: Centre Européen de Recherche et Formation Avancées en Calcul Scientifique, 2006
    [11] 周浩, 钟波, 罗志才, 等. OpenMP并行算法在卫星重力场模型反演中的应用[J].大地测量与地球动力学, 2011, 31(5): 123-127 http://d.old.wanfangdata.com.cn/Periodical/dkxbydz201105027

    Zhou Hao, Zhong Bo, Luo Zhicai, et al. Application of Parallel Algorithms Based on OpenMP to Satellite Gravity Field Recovery[J]. Journal of Geodesy and Geodynamics, 2011, 31(5): 123-127 http://d.old.wanfangdata.com.cn/Periodical/dkxbydz201105027
    [12] 周浩, 罗志才, 钟波, 等.利用最小二乘直接法反演卫星重力场模型的MPI并行算法[J].测绘学报, 2015, 44(8): 833-839, 857

    Zhou Hao, Luo Zhicai, Zhong Bo, et al. MPI Parallel Algorithm in Satellite Gravity Field Model Inversion on the Basis of Least Square Method[J]. Acta Geodaetica et Cartographica Sinica, 2015, 44(8): 833-839, 857
    [13] 陈秋杰, 沈云中, 张兴福. MKL和OpenMP多核并行算法解算高阶地球重力场的效率分析[J].大地测量与地球动力学, 2012, 32(5): 118-123

    Chen Qiujie, Shen Yunzhong, Zhang Xingfu. Analysis of Efficiency of Applying MKL and Open MP Polynuclear Parallel Algorithms to Recovery of High Degree Earth's Gravity Field[J]. Journal of Geodesy and Geodynamics, 2012, 32(5): 118-123
    [14] 聂琳娟, 申文斌, 王正涛, 等.基于超级计算机平台的并行解技术在卫星重力测量中的应用[J].大地测量与地球动力学, 2012, 32(2): 64-68, 73 http://d.old.wanfangdata.com.cn/Periodical/dkxbydz201202015

    Nie Linjuan, Shen Wenbin, Wang Zhengtao, et al. Applications of Parallel Solutions Technology in Satellite Gravity Measurement[J]. Journal of Geodesy and Geodynamics, 2012, 32(2): 64-68, 73 http://d.old.wanfangdata.com.cn/Periodical/dkxbydz201202015
    [15] Wu Y, Zhou H, Zhong B, et al. Regional Gravity Field Recovery Using the GOCE Gravity Gradient Tensor and Heterogeneous Gravimetry and Altimetry Data[J]. Journal of Geophysical Research: Solid Earth, 2017, 122(8): 6 928-6 952 doi:  10.1002/2017JB014196
    [16] Geist G A, Kohl J A, Papadopoulos P M. PVM and MPI: A Comparison of Features[J]. Calculateurs Paralleles, 1996, 8(2): 137-150
    [17] 祁昆仑, 陈玉敏, 吴华意, 等. MPI+OpenMP环境下的特征函数空间滤值并行化方法研究[J].武汉大学学报·信息科学版, 2013, 38(6): 742-745 http://d.old.wanfangdata.com.cn/Periodical/whchkjdxxb201306024

    Qi Kunlun, Chen Yumin, Wu Huayi, et al. Parallel Processing in Eigenfunction-based Spatial Filtering Using MPI+OpenMP Hybrid Parallelization[J]. Geomatics and Information Science of Wuhan University, 2013, 38(6): 742-745 http://d.old.wanfangdata.com.cn/Periodical/whchkjdxxb201306024
    [18] Du C, Sun X H S. MPI-Mitten: Enabling Migration Technology in MPI[C]. IEEE International Symposium on Cluster Computing and the Grid, Singapore, 2006 https://ieeexplore.ieee.org/document/1630790
    [19] 刘缵武, 张敬伟, 刘世晗, 等.缔和勒让德函数的计算和球谐级数的截断误差分析[J].海洋测绘, 2012, 32(3): 1-4 doi:  10.3969/j.issn.1671-3044.2012.03.001

    Liu Zuanwu, Zhang Jingwei, Liu Shihan, et al. The Computation of Associated Legendre Functions and Truncation Errors of Spherical Harmonic Series[J]. Hydrographic Surveying and Charting, 2012, 32(3): 1-4 doi:  10.3969/j.issn.1671-3044.2012.03.001
    [20] 吴星, 刘雁雨.多种超高阶次缔合勒让德函数计算方法的比较[J].测绘科学技术学报, 2006, 23 (3): 188-191 doi:  10.3969/j.issn.1673-6338.2006.03.010

    Wu Xing, Liu Yanyu. Comparison of Computing Methods of the Ultra High Degree and Order[J]. Journal of Zhengzhou Institute of Surveying and Mapping, 2006, 23(3): 188-191 doi:  10.3969/j.issn.1673-6338.2006.03.010
  • [1] 王正涛, 倪港骅, 申文斌, 刘聪.  基于“浅层海水”质量法确定海洋内部层面重力值 . 武汉大学学报 ( 信息科学版), 2022, 47(10): 1766-1774. doi: 10.13203/j.whugis20220616
    [2] 黄谟涛, 刘敏, 欧阳永忠, 邓凯亮, 马越原, 翟国君, 吴太旗.  海洋重力场特征统计模型计算与分析 . 武汉大学学报 ( 信息科学版), 2019, 44(3): 317-327. doi: 10.13203/j.whugis20160529
    [3] 张强, 赵齐乐.  OpenMP并行计算在全球电离层反演中的应用 . 武汉大学学报 ( 信息科学版), 2018, 43(2): 227-233, 240. doi: 10.13203/j.whugis20160065
    [4] 李坚, 李德仁, 邵振峰.  一种并行计算的流数据Delaunay构网算法 . 武汉大学学报 ( 信息科学版), 2013, 38(7): 794-798.
    [5] 朱广彬, 李建成, 文汉江, 徐新禹.  极空白对三类重力梯度边值问题球谐分析解的影响分析 . 武汉大学学报 ( 信息科学版), 2012, 37(3): 290-293.
    [6] 赵齐乐, 郭靖, 柳响林, 施闯.  利用星载GPS历元差分计算的平均加速度反演地球重力场 . 武汉大学学报 ( 信息科学版), 2009, 34(10): 1168-1171.
    [7] 徐新禹, 李建成, 姜卫平, 邹贤才.  由重力场模型快速计算沿轨重力梯度观测值 . 武汉大学学报 ( 信息科学版), 2009, 34(2): 226-230.
    [8] 曹月玲, 王解先.  利用球冠谐分析拟合GPS水准高程 . 武汉大学学报 ( 信息科学版), 2008, 33(7): 740-743.
    [9] 罗佳, 施闯, 邹贤才, 汪海洪.  现有SST重力场模型的比较研究 . 武汉大学学报 ( 信息科学版), 2006, 31(7): 594-598.
    [10] 陶本藻.  地球重力场平差模型误差的控制 . 武汉大学学报 ( 信息科学版), 2003, 28(6): 668-670,709.
    [11] 宁津生.  跟踪世界发展动态致力地球重力场研究 . 武汉大学学报 ( 信息科学版), 2001, 26(6): 471-474,486.
    [12] 王东明, 朱灼文.  重力场中的大地奇异性问题 . 武汉大学学报 ( 信息科学版), 1999, 24(2): 99-102,111.
    [13] 王东明, 朱灼文.  重力场的内蕴特性 . 武汉大学学报 ( 信息科学版), 1999, 24(1): 40-44.
    [14] 宁津生, 李金文, 晁定波.  各向异性局部重力场计算的谱方法 . 武汉大学学报 ( 信息科学版), 1998, 23(3): 227-229,278.
    [15] 罗志才, 晁定波, 宁津生.  重力梯度张量的球谐分析 . 武汉大学学报 ( 信息科学版), 1997, 22(4): 346-349.
    [16] 李鸣山, 吕芝艳.  广义回溯方法及并行计算机系统的最优任务调度 . 武汉大学学报 ( 信息科学版), 1996, 21(1): 90-95.
    [17] 罗志才, 宁津生, 晁定波.  卫星重力梯度分量的球谐综合 . 武汉大学学报 ( 信息科学版), 1996, 21(2): 103-108.
    [18] 宁津生, 李建成, 晁定波, 管泽霖.  WDM94360阶地球重力场模型研究 . 武汉大学学报 ( 信息科学版), 1994, 19(4): 283-291.
    [19] 黄谟涛, 翟国君, 管铮.  高斯积分在地球重力场数值计算中的应用 . 武汉大学学报 ( 信息科学版), 1993, 18(3): 22-29.
    [20] 李呜山.  TQ-16计算机ALGOL编译系统数组存贮动态分配 . 武汉大学学报 ( 信息科学版), 1980, 5(2): 65-71.
  • 加载中
图(3) / 表(3)
计量
  • 文章访问数:  1066
  • HTML全文浏览量:  177
  • PDF下载量:  110
  • 被引次数: 0
出版历程
  • 收稿日期:  2018-09-11
  • 刊出日期:  2019-12-05

利用MPI并行算法实现球谐综合的效率分析

doi: 10.13203/j.whugis20180165
    基金项目:

    国家自然科学基金 41504013

    国家自然科学基金 41674006

    武汉大学地球空间环境与大地测量教育部重点实验室开放基金 14-01-03

    作者简介:

    崔家武, 硕士生, 主要从事测量数据处理研究。864885814@qq.com

    通讯作者: 周波阳, 博士, 助理研究员。wdzbyang@163.com
  • 中图分类号: P228

摘要: 分析了求解地球重力场参量的球谐综合计算公式,引入数组预存再调用方法来避免传统算法中对cos()、sin()及勒让德函数的递推系数的重复计算问题,并结合MPI(message passing interface)并行技术来提高计算效率。实验采用2 160阶次的EGM2008模型,以DELL PowerEdge R730服务器和超算“天河二号”为计算平台,计算了分辨率1°和5'的网格重力异常。结果表明,数组预存再调用的方式减少了中央处理器(central processing unit,CPU)的计算工作量,但同时增加了内存的访问次数,适用于CPU性能一般而内存频率较高的计算平台。MPI并行技术可充分发挥计算机的多核优势,并在进程个数等于逻辑CPU的个数时获得最大加速比。

English Abstract

崔家武, 周波阳, 罗志才, 张兴福. 利用MPI并行算法实现球谐综合的效率分析[J]. 武汉大学学报 ( 信息科学版), 2019, 44(12): 1802-1807. doi: 10.13203/j.whugis20180165
引用本文: 崔家武, 周波阳, 罗志才, 张兴福. 利用MPI并行算法实现球谐综合的效率分析[J]. 武汉大学学报 ( 信息科学版), 2019, 44(12): 1802-1807. doi: 10.13203/j.whugis20180165
CUI Jiawu, ZHOU Boyang, LUO Zhicai, ZHANG Xingfu. Efficiency Analysis of Spherical Harmonic Synthesis Based on MPI Parallel Algorithm[J]. Geomatics and Information Science of Wuhan University, 2019, 44(12): 1802-1807. doi: 10.13203/j.whugis20180165
Citation: CUI Jiawu, ZHOU Boyang, LUO Zhicai, ZHANG Xingfu. Efficiency Analysis of Spherical Harmonic Synthesis Based on MPI Parallel Algorithm[J]. Geomatics and Information Science of Wuhan University, 2019, 44(12): 1802-1807. doi: 10.13203/j.whugis20180165
  • 由地球重力场模型计算扰动位、重力异常、高程异常等重力场参量的方法称为球谐综合法。当采用高阶次地球重力场模型串行计算大规模格网时,球谐综合法的计算工作量大,耗时长。为加快数据处理速度,不少学者从算法上进行了优化,在一定程度上提高了计算效率[1-5]。并行计算是高性能计算领域使用最为广泛的一种技术[6],它的基本思想是采用多个处理器来协同求解同一个问题。利用并行计算技术突破大规模重力数据处理的瓶颈、提高计算效率已逐渐成为一项共识[7]。典型的并行编程环境主要有MPI(message passing interface)、OpenMP(open multi-processing)、HPF(high performance Fortran)、CUDA (compute unified device architecture)等[8-9],其中MPI、OpenMP是物理大地测量领域较为常用的两种并行模型[10-16]

    MPI、OpenMP分别为基于消息传递和共享内存的并行编程模型[17],其中OpenMP具有易编程、内存开销小等特点,但仅能在1个计算节点内并行;MPI采取分布式内存并行,计算作业可以在1个或者多个节点内并行,适用于个人计算机、服务器、计算机集群、超算等;而MPI具有移植性强、拓展性好、通信函数丰富等优点,是目前可信赖的高效率大规模并行计算平台[16, 18]。因此,本文将适用范围更广、并行潜能更大的MPI运用于大规模格网重力场参量的球谐综合计算中。

    • 地球重力场一般可通过扰动重力场进行研究,地球外部任意一点的扰动位T的球谐级数可表示为:

      $$ T\left( {r,\theta ,\lambda } \right) = \frac{{GM}}{r}{\left( {\frac{R}{r}} \right)^n}\sum\limits_{m = 0}^n {\left( {\bar C_{nm}^*\cos \left( {m\lambda } \right) + \bar S_{nm}^ * \sin \left( {m\lambda } \right)} \right)} {\bar P_{nm}}\left( {\cos \theta } \right) $$ (1)

      式中,$\bar P_{nm}^{}\left( {{\rm{cos}}\theta } \right) $为完全规格化的缔合勒让德函数;其余变量含义可参考文献[1]。常用的缔合勒让德函数计算方法主要有标准前向列推法、标准前向行推法、Belikov列推法和跨阶次递推法,其中跨阶次递推法计算量大、精度高、稳定性好[4, 19-20],故本文采用跨阶次递推法计算缔合勒让德函数:

      $$ \begin{array}{*{20}{l}} \begin{array}{l} {{\bar P}_{nm}}\left( {{\rm{cos}}\theta } \right) = {\alpha _{nm}}{{\bar P}_{n - 2, m}}\left( {{\rm{cos}}\theta } \right) + \\ \;\;\;\;\;\;{\beta _{nm}}{{\bar P}_{n - 2, m - 2}}\left( {{\rm{cos}}\theta } \right) - {\gamma _{nm}}{{\bar P}_{n, m - 2}}\left( {{\rm{cos}}\theta } \right), {\rm{}} \end{array}\\ {\;\;\;\;\;\;\forall n > m \ge 2} \end{array} $$ (2)

      式中, αnmβnmγnm为递推系数,具体计算公式参见文献[3]。

      对式(1)中的扰动位T进行简单的数学变换可以得到重力异常、高程异常、垂线偏差等地球重力场参量。以重力异常Δg为例,将正常椭球面做球近似假设,则T与Δg之间的关系式可表示为:

      $$ {\rm{\Delta }}g = - \frac{{\partial T}}{{\partial r}} - \frac{2}{R}T $$ (3)

      将式(1)代入式(3),可得到Δg的球谐展开式:

      $$ \begin{array}{l} \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\Delta g\left( {r,\theta ,\lambda } \right) = \\ \frac{{GM}}{{{r^2}}}\sum\limits_{n = 2}^N {\left( {n - 1} \right)} {\left( {\frac{R}{r}} \right)^n}\sum\limits_{m = 0}^n {\left( {\bar C_{nm}^*\cos \left( {m\lambda } \right) + } \right.} \\ \;\;\;\;\;\;\;\;\;\;\;\;\left. {\bar S_{nm}^*\sin \left( {m\lambda } \right)} \right){{\bar P}_{nm}}\left( {\cos \theta } \right) \end{array} $$ (4)
    • 方案1  在球谐综合中,勒让德函数$ {\bar P_{nm}}\left( {{\rm{cos}}\theta } \right)$的计算占整个计算量的大部分[20]。由于$ {\bar P_{nm}}\left( {{\rm{cos}}\theta } \right)$与纬度相关,在利用球谐函数计算格网重力场参量时,为避免$ {\bar P_{nm}}\left( {{\rm{cos}}\theta } \right)$重复计算,一般逐纬度计算,在计算同一纬度的重力场参量时,仅一次计算$ {\bar P_{nm}}\left( {{\rm{cos}}\theta } \right)$。

      方案2  由式(4)可知,cos()、sin ()两项与经度相关。为提高计算效率,将cos()、sin()预先算好并存放到数组中,再通过调用的方式参与计算。此项措施联合方案1在本文中标记为方案2。

      假定全球纬度带条数为M,经度带条数为2M,参考阶次取为N,则这两项的计算次数为${\rm{Num}} = {M^2} \times \left( {2 + N} \right) \times \left( {N - 1} \right) $;而通过数组预存的方式,计算次数仅为${\rm{Nu}}{{\rm{m}}^{\rm{*}}} = 2MN $次,其运算压缩比为$ Z=M(2+N)(N-1)/2N$。

      方案3  由文献[3]可知,缔合勒让德函数的3个系数αnmβnmγnm与经纬度无关,只与阶次相关。由于同一纬度所有阶次的${\bar P_{nm}}\left( {{\rm{cos}}\theta } \right) $值通过递推的方式一次性求得,因此这3个系数在同一条纬度带上并没有重复计算,但在不同纬度带上进行了重复计算。为此,在方案2的基础上,进一步对αnmβnmγnm进行数组预存,记为方案3。不难发现,在αnmβnmγnm的处理上,方案3相对于方案2的运算压缩比为Z=M

    • MPI可以通过分解任务实现多进程并行计算。由式(4)可知,在逐纬度计算时,纬度条带之间的计算是相互独立的,利用MPI将大规模格网重力异常按纬度条带分配给各个进程,在计算结束后收集各个进程的结果,避免了额外的通信开销。

      在进行任务分解时有两种模式可选,一种是按纬度分块分解,即每一个进程负责处理一块连续的纬度带,如图 1所示。另一种是按纬度循环分解,以进程P0为例,假设进程个数为n,则进程P0负责计算的纬度带为W1W1+nW1+kn。在任务无法均等分配时,两种模式的进程任务量有所差异,但最高任务量相同。由于MPI的数据收集函数MPI_Gather()是按进程编号由小到大进行收集,即先将P0中的所有计算结果存放到一维数组中,然后逐个存放其他进程的数据,当采取按纬度分块分解模式时,收集到的结果可直接输出;而按纬度循环分解模式收集的结果需要进行复杂的顺序变换才可以输出,本文采取按纬度分块对任务进行分解。

      图  1  纬度分块并行计算

      Figure 1.  Parallel Computation of Latitude Blocks

      由于MPI采用分布式内存数据存储模式,随着进程数P增加,各项系数运算压缩比下降Z/P,内存耗用倍增,尤其是方案3耗用内存较多,在一定程度上会影响计算性能,为了获得最优方案组合,对方案1~3均进行并行分析。

    • 本实验采用EGM2008重力场模型,取至2 160阶次,并设置了两组算例。算例1计算了全球格网1°×1°的重力异常,算例2计算了跨纬度15°、跨经度360°的5'×5'格网的重力异常(即格网个数为180×4 320)。

      本实验计算平台之一为广东工业大学3S技术实验室配置的DELL PowerEdge R730服务器,该服务器配置有2个物理中央处理器(central processing unit,CPU)(E5-2630L,主频1.80 GHz,每个CPU 8核,共16核),32个逻辑CPU,内存32 GB,内存频率2 133 MHz,搭载Red Hat Enterprise Linux server release 6.7操作系统。程序并行环境为MPI 3.0.4,编译器为GCC 4.4.7,编程语言为C++。

      为评价并行算法和数组预存再调用方法对计算过程的优化作用,引入加速比SP

      $$ {S_P} = \frac{{T_1^S}}{{T_i^P}} $$ (5)

      式中,P(P≥1)表示进程个数;$ T_1^S$为方案1的串行执行时间;$ {T_i^P}$为方案i(i =1, 2, 3)采用P个进程时的执行时间。本文中的加速比皆是相对于方案1的串行耗时。

      按照上文3种方案,分别实现串行及并行运算。当进程个数相同时,3种方案的CPU使用率一致,皆为3.125P%(P为进程数,3.125P≤100,而3.125%实际上是1个逻辑CPU占总逻辑CPU个数(32)的百分比,这说明了逻辑CPU的启动个数与进程个数相等(在进程个数不超过逻辑CPU个数的情况下)。表 1为两个算例中3种方案对应进程数的内存耗用情况。由表 1可知,在内存充足的情况下,3种方案的内存耗用与进程数P存在良好的线性关系,算例1分别约为180P、193P、268P,算例2分别约为190P、332P、410P。在算例1中,当进程个数增加到180时,3种方案均遭遇内存不足(内存空间31 714 MB),硬盘交换空间分别为3 316 MB、10 010 MB、19 609 MB;在算例2中,方案3在开启90个进程时,硬盘交换空间为6 944 MB,在开启180个进程时,3种方案的硬盘交换空间分别为6 685 MB、29 297 MB、43 008 MB。

      表 1  服务器上不同方案的内存耗用

      Table 1.  Memory of Different Schemes on the Server

      进程 算例1/MB 算例2/MB
      方案1 方案2 方案3 方案1 方案2 方案3
      1 179 194 274 195 354 444
      10 1 796 1 894 2 680 2 077 3 504 4 291
      20 3 596 3 813 5 359 3 934 6 791 8 310
      30 5 396 5 735 8 033 5 791 10 074 12 361
      60 10 808 11 517 16 096 11 378 19 941 24 512
      90 16 253 17 332 24 159 16 973 29 826 38 658
      180 35 484 41 724 51 323 38 399 61 011 74 722

      表 2为算例1、算例2中3种方案串行及并行的运算时长。由表 2可知,在串行计算中,通过将系数预存调用的方式,可大幅度提高计算效率,方案2、3相对方案1在算例1中的加速比分别为1.58、1.70,在算例2中分别为1.44、1.47。并行计算中,3种方案均在进程数为30时获得最短计算时长,在算例1中由19 260 s分别减少至1 169 s、1 024 s、978 s,最大加速比分别为16.48、18.81、19.69;在算例2中由274 533 s分别减少至14 226 s、12 695 s、12 402 s,最大加速比分别为19.30、21.63、22.14。

      表 2  服务器上不同方案计算时间

      Table 2.  Time of Different Schemes on the Server

      进程 算例1/s 算例2/s
      方案1 方案2 方案3 方案1 方案2 方案3
      1 19 260 12 162 11 311 274 533 190 403 186 479
      10 2 455 1 698 1 492 39 819 33 592 21 298
      20 1 677 1 368 1 239 20 677 16 852 15 697
      30 1 169 1 024 978 14 226 12 695 12 402
      60 1 189 1 103 980 15 047 14 186 14 363
      90 1 202 1 091 1 115 15 010 16 826 15 942
      180 1 535 1 773 2 788 15 817 19 569 20 440

      为了直观地比较3种方案的并行性能,图 2展示了3种方案的并行加速比。由图 2可知,在算例1和算例2中,各方案的加速比在进程数为30时达到峰值。随着进程数进一步增加,加速比开始缓慢下降,原因在于实验服务器共拥有32个逻辑CPU,而每个逻辑CPU同一时刻只能运行1个进程,当进程个数超出逻辑CPU的个数时,进程之间会出现替换使用逻辑CPU的情况,此时继续增加进程并不能进一步缩短计算耗时;相反,计算资源的过度分散将会降低计算性能。另外,进程数越多,并行的开销时间也越多,反而会拖慢计算速度,因此并行进程的最优个数为逻辑CPU的个数。

      图  2  服务器上不同方案串行及并行的加速比

      Figure 2.  Serial and Parallel Speedup Ratios of Different Schemes on the Server

      图 2可知,整体上方案3的加速比优于方案2,方案1最差。但当进程数增加到90或180以后,方案1的加速比优于方案2和方案3,其原因一是方案2和方案3的预存系数运算压缩比随着进程数增加而减小(每个进程需要对方案2或方案3所述的预存系数进行独立预存);二是结合表 1可知,当进程数增加到90或180后,方案2、方案3面临内存严重不足问题,进程部分内存被释放到swap分区中,频繁的页面调度和交换增加了磁盘负载,大大降低了计算效率,而方案1的swap分区交换内存相对于方案2、方案3则要小得多,故其加速比、相对效率反而优于方案2、方案3。

      为进一步验证上述结论,本文也在中山大学超算平台“天河二号”上进行了实验。“天河二号”每个节点配置两颗主频为2.2 GHz的Intel Xeon E5-2692 V2系列CPU,共24核,48个逻辑CPU,内存为128 GB,内存频率为1 333 MHz,并配有3个Xeon Phi 57核心的协处理器(运算加速卡)。程序并行环境为MPI 3.1,编译器为GCC 4.4.7,编程语言为C++。值得注意的是,“天河二号”可以根据进程个数动态分配节点,并始终满足分配的逻辑CPU个数大于等于进程个数。

      表 3可知,由于“天河二号”节点的计算资源充足,在两个算例中,3种方案的计算耗时均随着进程数的增加一直减少。图 3中算例1中3种方案之间的差距很小,方案2、方案3略优于方案1;算例2中方案1则明显要优于方案2和方案3,其加速比约为方案2和方案3的两倍。这是由于“天河二号”每一节点的计算速度快(达422.4 Gflops),并且配有运算加速卡,其运算的瓶颈并不在于CPU,因此通过预存数组(即减少CPU运算工作量)所减少的计算耗时很小;相反,随着格网分辨率的提高,预存数组急剧增大,庞大的数组无法在高速缓存器中完全驻留,CPU在调用数组时需要频繁访问内存。

      表 3  超算平台上不同方案计算耗时

      Table 3.  Calculation Time of Different Schemes on the Supercomputer

      进程 算例1/s 算例2/s
      方案1 方案2 方案3 方案1 方案2 方案3
      1 2 035 2 014 1 964 24 408 52 328 52 371
      10 247 242 242 2 875 6 278 6 171
      20 134 127 125 1 457 3 124 3 123
      30 92 86 86 982 2 090 2 090
      60 49 46 46 512 1 058 1 063
      90 35 33 33 347 716 714
      180 21 20 20 186 403 412

      图  3  超算平台上不同方案串行及并行的加速比

      Figure 3.  Serial and Parallel Speedup Ratios of Different Schemes on the Supercomputer

      由上文可知,“天河二号”内存频率与CPU主频的比值为0.606。因此在算例2中,其访问内存增加的时间要远多于CPU减少的时间;而在DELL服务器上,内存频率与CPU主频的比值为1.185。两个算例中预存数组在DELL服务器上均取得了良好效果。

    • 本文以2 160阶次的EGM2008模型为例,基于MPI实现了按纬度带分解并行计算格网重力异常,通过对MPI并行、MPI结合数组预存调用等方案的运行效率进行分析比较,得出如下结论。

      相比串行计算,MPI并行计算能充分利用多核计算机资源,大幅度缩短计算时长;增加进程数可以进一步分解计算任务量,但由于1个逻辑CPU同一时刻只能运行1个进程,当进程个数超出逻辑CPU个数时,各进程需要替换使用逻辑CPU,故在此基础上继续增加进程已失去意义,相反,进程数越多,并行的开销时间也越多,反而会增加整体计算耗时。因此建议开启的进程个数取为逻辑CPU的个数。此外,应尽量避免内存耗用超出计算平台内存。

      对cos()、sin ()以及缔合勒让德函数系数αnmβnmγnm采取数组预存调用的方式可有效减少CPU的运算工作量,但会增加内存的访问次数,建议在CPU性能一般而内存性能相对较好的计算平台上采用,CPU与内存的性能衡量可参照文中的两个计算平台。

      本文中提出的数组预存调用方式以及逐纬度分块并行计算模式适用于采用球谐综合法计算扰动位、重力扰动、垂线偏差、高程异常、大地水准面高等重力场参量。

参考文献 (20)

目录

    /

    返回文章
    返回