留言板

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

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

基于超算的全球电离层模型快速并行解算

施闯 王成 张涛

施闯, 王成, 张涛. 基于超算的全球电离层模型快速并行解算[J]. 武汉大学学报 ● 信息科学版, 2018, 43(12): 2093-2098. doi: 10.13203/j.whugis20180114
引用本文: 施闯, 王成, 张涛. 基于超算的全球电离层模型快速并行解算[J]. 武汉大学学报 ● 信息科学版, 2018, 43(12): 2093-2098. doi: 10.13203/j.whugis20180114
SHI Chuang, WANG Cheng, ZHANG Tao. Rapid Parallel Estimation of Global Ionospheric Model Based on Supercomputer[J]. Geomatics and Information Science of Wuhan University, 2018, 43(12): 2093-2098. doi: 10.13203/j.whugis20180114
Citation: SHI Chuang, WANG Cheng, ZHANG Tao. Rapid Parallel Estimation of Global Ionospheric Model Based on Supercomputer[J]. Geomatics and Information Science of Wuhan University, 2018, 43(12): 2093-2098. doi: 10.13203/j.whugis20180114

基于超算的全球电离层模型快速并行解算

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

国家自然科学基金 41804026

国家重点研发计划 2016YFB0501802

详细信息
    作者简介:

    施闯, 博士, 教授, 国家杰出青年, 主要从事卫星导航定位理论与方法研究。shi@whu.edu.cn

    通讯作者: 王成, 博士。acex@foxmail.com
  • 中图分类号: P228

Rapid Parallel Estimation of Global Ionospheric Model Based on Supercomputer

Funds: 

The National Natural Science Foundation of China 41804026

the National Key Research and Development Program of China 2016YFB0501802

More Information
    Author Bio:

    SHI Chuang, PhD, professor, National Distinguished Young Scholar, specializes in space geodesy and GNSS positioning and navigation. E-mail: shi@whu.edu.cn

    Corresponding author: WANG Cheng, PhD. E-mail: acex@foxmail.com
图(4) / 表(3)
计量
  • 文章访问数:  552
  • HTML全文浏览量:  27
  • PDF下载量:  185
  • 被引次数: 0
出版历程
  • 收稿日期:  2018-08-23
  • 刊出日期:  2018-12-05

基于超算的全球电离层模型快速并行解算

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

    国家自然科学基金 41804026

    国家重点研发计划 2016YFB0501802

    作者简介:

    施闯, 博士, 教授, 国家杰出青年, 主要从事卫星导航定位理论与方法研究。shi@whu.edu.cn

    通讯作者: 王成, 博士。acex@foxmail.com
  • 中图分类号: P228

摘要: 为应对日益丰富的观测数据以及数据再处理对高性能计算的需求,开发了基于OpenMP以及MPI(Message Passing Interface)并行计算的全球电离层快速建模算法。采用武汉大学超级计算机对全球电离层建模效率进行了不同并行计算方案的实验。结果表明,采用多节点MPI并行计算能够极大地提高数据处理效率,相比传统单节点串行计算提高了近30倍,相比单节点OpenMP并行计算提高了近3~4倍。MPI并行计算方案充分利用了丰富的计算机资源来提高全球电离层建模效率,对电离层建模算法的快速测试、产品的重新再处理具有重要作用,对多系统全球导航卫星系统(Global Navigation Satellite System,GNSS)快速精密定轨、大规模GNSS网解也有较好的参考价值。

English Abstract

施闯, 王成, 张涛. 基于超算的全球电离层模型快速并行解算[J]. 武汉大学学报 ● 信息科学版, 2018, 43(12): 2093-2098. doi: 10.13203/j.whugis20180114
引用本文: 施闯, 王成, 张涛. 基于超算的全球电离层模型快速并行解算[J]. 武汉大学学报 ● 信息科学版, 2018, 43(12): 2093-2098. doi: 10.13203/j.whugis20180114
SHI Chuang, WANG Cheng, ZHANG Tao. Rapid Parallel Estimation of Global Ionospheric Model Based on Supercomputer[J]. Geomatics and Information Science of Wuhan University, 2018, 43(12): 2093-2098. doi: 10.13203/j.whugis20180114
Citation: SHI Chuang, WANG Cheng, ZHANG Tao. Rapid Parallel Estimation of Global Ionospheric Model Based on Supercomputer[J]. Geomatics and Information Science of Wuhan University, 2018, 43(12): 2093-2098. doi: 10.13203/j.whugis20180114
  • 全球导航卫星系统(Global Navigation Sate- llite System, GNSS)是目前测量电离层总电子含量(total electron content, TEC)精度最高的观测手段。采用GNSS地面跟踪观测数据可对电离层进行长期连续监测,通过建立全球、区域电离层模型可揭示电离层TEC的时空分布特征及变化规律,并为单频GNSS接收机用户提供电离层延迟改正,从而提高导航定位精度[1]。自1998年以来,国际卫星导航服务机构(international GNSS service, IGS)电离层工作组根据全球IGS跟踪站观测数据建立全球电离层模型并提供较高精度的全球电离层产品,为电离层研究和卫星导航定位奠定了良好的基础[2]。2016年,中国科学院和武汉大学加入IGS电离层工作组,进一步提高了全球电离层产品的精度和可靠性[3]。GNSS的发展,尤其是我国北斗卫星导航系统全球组网的迅速发展,将带来更加丰富的电离层观测资料,促进全球电离层模型精度的进一步提升。一方面,日益丰富的观测数据会使得数据处理的时间不断增加,从而影响电离层产品的快速发布。目前,IGS电离层工作组各分析中心的快速产品、最终产品分别延迟大约1~2 d、3~10 d。另一方面,数据处理策略的调整与算法的更新有利于进一步提升全球电离层产品精度。而数据再处理是十分耗时的工作,因此,如何大幅提高全球电离层的建模效率是当前迫切需要解决的问题。并行计算是一种同时利用更多的计算资源来提高数据处理效率的有效途径。其中,利用OpenMP多线程并行计算来加速数据处理已应用于多个学科领域,如卫星重力数据处理、卫星遥感反演、地球重力场反演等[4-8]。但是,仅采用单处理器难以满足大规模的科学与工程计算。超级计算机能够用于重大的科学研究、国防尖端技术和国民经济领域的大型计算与数据处理任务。本文将探讨利用超级计算机丰富的计算资源来提高全球电离层建模效率的方法,对电离层建模的策略及算法测试以及数据再处理与分析等具有重要的现实意义。

    • 超级计算机主要用于国家高科技领域和尖端技术研究,是国家科技发展水平和综合国力的重要标志。中国超级计算机进入全球超级计算机500强的数量已达160多台。截止到2018年6月,中国“神威·太湖之光”以每秒9.3亿亿次的浮点运算速度一直位居世界第一,“天河二号”以每秒3.39亿亿次排行第二。另外,部分科研院所及高校也建设了不同规模的超算中心。武汉大学超算中心由415台机架服务器、7 632颗CPU组成,计算能力超过3万台普通个人计算机,秒算接近300万亿次。该中心是武汉大学2015年重点建设的教学科研支撑服务平台,除承担大规模科学计算和工程计算任务外,也将以其强大的数据处理和存储能力为社会提供云计算服务,支持重大课题或协作研发项目。

      利用超算执行计算任务主要有两种方式:①将总任务划分为多个子任务分别提交到多个节点执行,每个子任务仅在一个节点执行,简称为多任务单节点并行。②将单个任务的数据处理提交到多个节点执行,简称为单任务多节点并行。多任务单节点并行时,每个子任务也可采用OpenMP实现多线程并行计算,而单任务多节点并行则需要多个节点进行消息传递。对于历年的数据再处理,任务数量较大,推荐采用多任务单节点并行;而对于少量任务,如算法测试等,采用单任务多节点并行计算更为合适。

      Message Passing Interface (MPI)是一种消息传递接口的标准,它的具体实现主要有Intel MPI、MPICH、OpenMPI等,支持Fortran和C/C++编程语言。MPI的本质功能是为多个计算节点中进程间通信提供基础,具有实用、高效和灵活的特点。利用MPI实现多节点并行计算的基本路线较为清晰,首先启动MPI环境,主程序将任务划分为多个子任务,并将消息发送给其他节点;然后各节点接收消息并执行各自的计算任务,完成任务后发送消息给主程序;最后主程序接收其他节点消息,结束MPI环境,输出相应结果。一般情况下,MPI并行计算的执行过程如图 1所示,其中主程序所在的节点标识号为0。

      图  1  MPI并行计算的执行过程

      Figure 1.  The Executing Process of MPI Parallel Computing

    • 在日固地磁参考系下的球谐展开进行建模,所有观测卫星和地面测站的差分码偏差(diffe-rential code bias,DCB)和球谐系数一起参与解算[9-10]。建模的基础理论推导如下:首先由GNSS基础观测方程可知:

      $$ P = {\rho _0} + c\left( {\Delta {t_r} - \Delta {t_s}} \right) + T + I + c\left( {{b_r} + {b_s}} \right) + \varepsilon $$ (1)

      式中,P为伪距观测值;ρ0为卫星至接收机的几何距离;c为光速;Δtr为接收机钟差;Δts为卫星钟差;T为对流层延迟;I为电离层延迟;br为接收机硬件延迟;bs为卫星硬件延迟;ε为测量噪声。由双频P码测量可得:

      $$ {P_1} - {P_2} = {I_1} - {I_2} + c(b_1^r - b_2^r + b_1^s - b_2^s) $$ (2)

      进而得:

      $$ \begin{array}{l} {P_1} - {P_2} = \frac{{40.3\left( {f_2^2 - f_1^2} \right)}}{{f_1^2f_2^2}}{\rm{STEC}} + \\ \;\;\;\;\;\;\;\;c({\rm{DC}}{{\rm{B}}_r} + {\rm{DC}}{{\rm{B}}_s}) \end{array} $$ (3)

      式中,f1f2为双频载波相位的频率;STEC为斜路径总电子含量;DCBr为接收机差分码偏差;DCBs为卫星差分码偏差。

      投影函数采用与CODE(the Center for Orbit Determination in Europe)相同的MSLM(modified single-layer model mapping function):

      $$ m\left( z \right) = \frac{1}{{\cos z'}}, \sin z' = \frac{R}{{R + H}}\sin \left( {\alpha z} \right) $$ (4)

      式中,m为投影函数;z为测站天顶距;z'为电离层穿刺点处的天顶距;R为地球半径;H为假设的电离层薄层高度。当α=0.978 2,H=506.7 km时,该投影函数与喷气推进实验室(Jet Propulsion Laboratory, JPL)的ESM(Extended Slab Model)投影函数符合得最好。

      用于描述天顶总电子含量的球谐模型为:

      $$ \begin{array}{l} {\rm{VTEC}}\left( {\varphi , \lambda } \right) = \mathop \sum \limits_{n = 0}^{{n_{\max }}} \mathop \sum \limits_{m = 0}^n {{\tilde P}_{nm}}\left( {\sin \varphi } \right)({a_{nm}}\cos \left( {m\lambda } \right) + \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{b_{nm}}\sin \left( {m\lambda } \right)) \end{array} $$ (5)

      式中,VTEC为天顶总电子含量;φ为地磁纬度;λ为日固经度;nm为球谐模型的阶次;$ {\tilde P_{nm}}$为标准化勒让德多项式;anmbnm为待求的球谐系数。

      将式(4)、式(5)代入式(3),得到全球电离层模型的观测方程:

      $$ \begin{array}{l} {\rm{VTEC}} + \frac{{f_1^2f_2^2}}{{40.3\left( {f_2^2 - f_1^2} \right)}}\cos z' \cdot c({\rm{DC}}{{\rm{B}}_r} + \\ {\rm{DC}}{{\rm{B}}_s}) = \frac{{f_1^2f_2^2}}{{40.3\left( {f_2^2 - f_1^2} \right)}}\cos z' \cdot ({P_1} - {P_2}) \end{array} $$ (6)

      本文在建模过程中采用的模型阶次为15×15,单天解包含13组待估球谐系数,卫星(32颗)和测站接收机(330个)的DCB一天内作为一个未知常量,并设所有观测卫星DCB之和为零,总共解算参数16×16×13+330+32=3 690个。

    • 结合全球电离层建模的基础理论与MPI并行计算技术,可将基于超算的全球电离层快速建模过程分为以下步骤。

      1) 主程序将总任务均衡划分为多个子任务,即将参与全球电离层建模的330个GNSS接收机观测文件尽可能平均地提交给参与计算任务的各个节点进行处理。如有10个节点参与计算,那么每个节点仅需处理33个观测文件。

      2) 主程序进入MPI环境,将划分的子任务作为消息发送给参与任务的多个节点。消息内容为字符串(各个节点需要处理的文件列表)。

      3) 参与任务的各个节点接收消息后开始对各自分配的观测文件执行数据预处理任务,包括数据质量检核、周跳探测、相位平滑伪距等。

      4) 各节点完成数据预处理任务后继续执行核心计算任务,包括与RINEX(receiver indepen-dent exchange format)观测数据的读取、电离层穿刺点及勒让德多项式的计算、法方程的叠加等。这部分计算任务主要根据上文全球电离层建模基础理论来实现。

      5) 各节点执行完各自的任务后,发消息给主程序所在节点并告知已完成计算任务;

      6) 主程序接收各节点发送的信息并确认所有子任务均执行完毕后结束MPI环境,开始合并且解算法方程,然后根据求解的球谐系数计算TEC,并以IONEX(ionosphere exchange format)格式输出全球电离层产品。

      根据全球电离层建模的基础理论可知,该方案的核心计算在于读取GNSS观测文件,获取电离层穿刺点及勒让德多项式并叠加到法方程。该计算过程相当耗时,而采用超级计算机多个节点可同时并行地执行这部分计算,节省大量时间。同时,单个节点上也采用OpenMP多线程并行计算,将接收的任务再一次均衡划分给各个线程去执行计算,进一步提升了数据处理效率。所以,理论上这种并行计算方案比传统的串行计算效率可提升n×m倍(其中,n为节点数,m为CPU核心数)。当然,实际情况中由于任务不可能被100%均衡划分,主程序包括一部分串行计算,且不同节点CPU性能可能存在差异等原因导致数据处理效率提升倍数低于理论值。

    • 本文采用武汉大学超算中心的3个计算分区(分别是hpxg、hpib、fat)进行实验。其中hpxg与hpib分区节点的配置为CPU型号Intel Xeon E5-2630, 主频2.4 GHz,16核,内存96 GB DDR4,硬盘240 GB SSD;fat分区节点的配置为CPU型号Intel(R) Xeon(R) CPU E7-8880, 主频2.2 GHz,176核,内存4 TB DDR4,硬盘500 GB SSD、8 TB HDD。实验采用2016年某天全球约330个IGS站的全球定位系统(global positioning system, GPS)观测数据来建立全球电离层球谐函数模型。

    • 由于单个计算节点存在16个核心,可以采用多线程技术来提高数据处理效率。Windows、Linux、Mac OS等主流操作系统对多线程均有较好的支持。如Windows以Win32 API提供多线程应用程序开发所需的接口函数,Linux也定义了有关线程创建和操作的API(application interface),形成POSIX thread通用线程库。而OpenMP则更加易用且跨平台表现良好,十分易于将现有的串行程序改写为多线程并行计算程序。OpenMP不用像Win32 API和POSIX thread编写创建、关闭线程等基础操作代码,只需在循环前加上相应的制导语句即可激活多线程并行计算。在超算中心hpxg分区提交任务测试不同线程数量时的数据处理效率,如图 2表 1所示。

      图  2  hpxg分区不同线程数量时建模的数据处理耗时

      Figure 2.  Time Consumption of the Modeling with Different Number of Threads Under hpxg Section

      表 1  hpxg分区不同线程数时建模所消耗的时间

      Table 1.  Time Consumption Table of the Modeling with Different Number of Threads Under hpxg Section

      线程数 时间/min
      1 121.87
      2 58.88
      4 36.97
      8 19.90
      12 14.52
      16 12.77

      图 2表 1可知,仅采用单线程时,整个数据处理时间大约需耗时2 h,而采用两个线程时,所需时间减少一半(约1 h)。随着线程数的增加,相应的耗时也近似呈比例下降。当线程数为16时,耗时最少为12.77 min,数据处理效率约为单线程时的10倍。值得注意的是,由于CPU的计算资源是固定的,线程数应保持与CPU核心数一致才能最大程度地发挥多线程的并行计算效能,如增加更多的线程数反而会造成线程对CPU资源的争抢,从而浪费时间,降低效率。此外,一方面不可能对各线程实现100%的均衡负载,另一方面主程序也不太可能完全并行执行,一定存在部分串行计算过程。因此,应尽可能地将串行计算部分更改为并行计算来提升数据处理效率。

    • fat节点有着比普通节点更强大的处理器、更大的内存,一般用来处理大内存需求应用的计算任务。在超算中心fat分区提交任务测试不同线程数量时的数据处理效率,如图 3表 2所示。

      图  3  fat分区不同线程数量时建模的数据处理耗时

      Figure 3.  Time Consumption of the Modeling with Different Number of Threads Under fat Section

      表 2  fat分区不同线程数时建模所消耗的时间表

      Table 2.  Time Consumption Table of the Modeling with Different Number of Threads Under fat Section

      线程数 时间/min
      1 153.34
      2 79.51
      4 43.31
      8 27.09
      16 15.20
      32 9.28
      64 7.17
      120 6.75
      176 8.41

      图 3表 2可知,随着线程数量的增加,数据处理所需时间逐渐降低,尤其从单线程到少数多个线程时,效率成倍提升。当采用单线程时,fat分区数据处理耗时(约2.5 h)比hpxg分区(约2 h)更多的主要原因在于fat分区节点的CPU主频(2.2 GHz)低于hpxg分区(2.4 GHz)。但当线程数超过一定数量(大约48)时,数据处理耗时几乎不再发生显著的变化,这表明fat分区有待进一步优化资源,以提升并行计算性能。

    • 根据上述实验可知,采用单节点多线程并行计算对于提升数据处理效率比较有限,主要原因在于CPU的资源较少。如能够采用多个计算节点,则有望更大地提高全球电离层建模效率,对于电离层模型的重新再处理与分析有着重要的作用。采用MPI并行技术方案将全球电离层模型解算任务分别提交到不同数量的节点进行联合数据处理,且各节点也采用OpenMP多线程并行计算,总体耗时及各节点平均耗时如图 4表 3所示。

      图  4  不同节点数量时MPI并行计算总耗时和各节点平均耗时

      Figure 4.  Total Time Consumption and Average Time Consumptionof Nodes by Using MPI Parallel Computing with Different Number of Nodes

      表 3  不同节点数量时建模的数据处理耗时

      Table 3.  Time Consumption of the Modeling with Different Number of Nodes

      节点数 总耗时/min 平均耗时/min
      2 10.54 5.48
      4 5.34 2.87
      6 4.47 1.96
      8 4.12 1.51
      10 3.75 1.36
      12 3.42 0.96
      14 3.43 0.99
      16 3.34 1.01
      18 3.48 0.93
      20 3.50 0.80

      图 4表 3可知,采用多个节点的分布式并行计算比仅使用单节点的数据处理效率有了显著提升,随着参与计算任务节点数的增加,数据处理总耗时和各节点平均耗时均呈比例下降。采用多节点MPI并行计算效率(耗时约3.5 min)比单节点串行计算(耗时约2 h)提高了30多倍,比单节点并行计算也提高了3~4倍。当节点数大于12个后,数据处理效率并没有显著提升,主要原因有:①节点增加到一定数量后,每个节点分配的任务量已不再减少,计算量保持一致;②不论参与计算的节点数有多少,串行计算部分占用了大约2 min,使得总耗时不再进一步减少。若进一步提高效率,则需要尽可能将串行计算部分改为并行计算。

    • 上述实验表明,利用超级计算机采用MPI并行计算,可充分利用丰富的计算资源,极大地提高数据处理效率。为了提高计算效能,应均衡划分计算任务,从而减少因个别节点任务过载而出现等待的情况,尽可能让各节点的任务以及每个线程的计算任务量均衡负载。对总任务进行分析,计算出效率最高时所需的节点资源,避免造成浪费,节省的资源可供其他用户使用。同时,还应根据计算任务的特点来确定提交任务到合适的分区节点,如全球电离层模型的再处理(十几年的观测数据)任务应采取单节点OpenMP并行计算方案,将历年以单天解为单元任务分配到多个节点上各自独立地进行数据处理;如果仅对算法进行测试,需要快速获得解算结果等小型计算任务,可采用MPI多节点分布式并行计算方案。此外,应尽可能将多任务通过循环方式实现而减少提交任务的次数,以免造成超算管理系统负载过多而假死的情况, 影响其他用户的正常使用。

    • 随着多系统多频GNSS的发展,日益丰富的观测数据让全球电离层建模面临如何大幅提高解算效率的问题。并行计算是解决此类问题的一种有效途径。本文采用武汉大学超级计算机中3个典型计算分区对OpenMP以及MPI并行计算在全球电离层建模的应用进行了详细实验与分析。实验结果表明,采用单节点OpenMP多线程并行计算可显著提高全球电离层建模效率,效率相比单线程提高近10倍;采用多节点MPI并行计算,充分利用了丰富的计算资源,使得计算效率进一步提升,效率相比单节点串行提高约30倍,相比单节点并行提高约3~4倍。在使用并行计算方案时,应尽可能让每个线程的任务均衡负载,同时让计算过程最大程度地并行化以实现更高性能计算。本文中实验内容与讨论对电离层建模算法的快速测试以及历年产品的重新再处理与分析等具有重要作用,对多系统GNSS快速精密定轨、大规模GNSS网解等也有较好的参考价值。

参考文献 (10)

目录

    /

    返回文章
    返回