一种面向CPU/GPU异构环境的协同并行空间插值算法

王鸿琰, 关雪峰, 吴华意

王鸿琰, 关雪峰, 吴华意. 一种面向CPU/GPU异构环境的协同并行空间插值算法[J]. 武汉大学学报 ( 信息科学版), 2017, 42(12): 1688-1695. DOI: 10.13203/j.whugis20150361
引用本文: 王鸿琰, 关雪峰, 吴华意. 一种面向CPU/GPU异构环境的协同并行空间插值算法[J]. 武汉大学学报 ( 信息科学版), 2017, 42(12): 1688-1695. DOI: 10.13203/j.whugis20150361
WANG Hongyan, GUAN Xuefeng, WU Huayi. A Collaborative Parallel Spatial Interpolation Algorithmon Oriented Towards the Heterogeneous CPU/GPU System[J]. Geomatics and Information Science of Wuhan University, 2017, 42(12): 1688-1695. DOI: 10.13203/j.whugis20150361
Citation: WANG Hongyan, GUAN Xuefeng, WU Huayi. A Collaborative Parallel Spatial Interpolation Algorithmon Oriented Towards the Heterogeneous CPU/GPU System[J]. Geomatics and Information Science of Wuhan University, 2017, 42(12): 1688-1695. DOI: 10.13203/j.whugis20150361

一种面向CPU/GPU异构环境的协同并行空间插值算法

基金项目: 

国家自然科学基金 41301411

湖北省自然科学基金 2015CFB399

详细信息
    作者简介:

    王鸿琰, 博士生, 主要从事高性能地理计算研究。wanghongyan@whu.edu.cn

    通讯作者:

    关雪峰, 博士, 讲师。guanxuefeng@whu.edu.cn

  • 中图分类号: P208

A Collaborative Parallel Spatial Interpolation Algorithmon Oriented Towards the Heterogeneous CPU/GPU System

Funds: 

The National Natural Science Foundation of China 41301411

Natural Science Foundation of Hubei Province 2015CFB399

More Information
  • 摘要: CPU/GPU异构混合系统是一种新型高性能计算平台,但现有并行空间插值算法仅依赖CPU或GPU进行加速,迫切需要研究协同并行空间插值算法以充分利用异构计算资源,进一步提升插值效率。以薄板样条函数插值为例,提出一种CPU/GPU协同并行插值算法以加速海量激光雷达(light detector & ranger,LiDAR)点云生成数字高程模型(DEM)。通过插值任务的分解与抽象封装以屏蔽底层硬件执行模式的差异性,同时在多级协同并行框架基础上设计了Greedy-SET动态调度策略,策略顾及底层硬件能力的差异性,以实现异构并行资源的充分利用和良好负载均衡。实验表明,协同并行插值算法在高性能工作站上取得19.6倍的加速比,相比单一CPU或GPU并行算法,其效率提升分别达到54%和44%,实现了高效的协同并行处理。
    Abstract: Nowadays the heterogeneous CPU/GPU systems become ubiquitous, but most of current parallel spatial interpolation algorithms exploit only one type of computation units to speedup the calculation and thus it results in parallel resources wasted. To address this problem, a collaborative parallel thin plate spline interpolation algorithm is proposed in this paper to accelerate DEM generation from massive LiDAR point clouds. In this collaborative parallel algorithm, the input point clouds are firstly decomposed into a collection of discrete blocks and encapsulated as general task objects to shield the heterogeneous execution models of different processing units. And then a special scheduling algorithm, named Greedy-SET, is also proposed to achieve better load balance based on the computing capabilities of CPU and GPU. Experimental results demonstrate that the proposed collaborative parallel algorithm can achieve the highest speedup times of approximately 19.6. The performance improvement ratios compared with pure CPU and GPU parallel algorithms are 54% and 44% respectively.
  • 目前,北斗导航卫星系统(BDS)已实现局域覆盖,随着系统建设的不断完善和应用的不断拓展,与之相关的各类数据处理软件的开发成为重要的研究内容。因此,自主开发北斗高精度数据处理软件,成为发展高精度位置服务的迫切任务[1-8]。因北斗导航卫星系统与GPS在星座构造、坐标框架、时间系统、信号频率等方面具有明显差异[9-15],现有的高精度GPS数据处理软件无法直接处理北斗数据。本文针对北斗高精度数据处理的系统设计、数据流、功能模块及高精度算法实现等进行了研究,研制开发了一套高精度北斗基线解算软件BGO(BeiDou Navigation Satellite System/Global Positioning System Office),并将其用于高速铁路高精度控制测量建网。通过与商业软件TGO(Trimble Geomatics Office)和TBC(Trimble Business Center),及高精度科研软件Bernese进行对比测试、性能分析,验证了该软件的正确性和有效性。

    北斗和GPS基线解算软件主要包含北斗基线处理、GPS基线处理及联合基线处理3大模块。各模块间相互独立,但使用相同的数据结构,且数据流基本一致。数据处理流程如图 1所示。

    图  1  BGO软件数据流
    Figure  1.  Data Stream of BGO Software

    基线解算之前,需选择有效双频观测数据,具体包含低高度角卫星剔除、观测值粗差剔除、星历未获取观测数据剔除等。剔除质量较差的观测数据可通过可视化的方式实现。通过双频数据组合有效消除电离层延迟影响,伪距消电离组合能算出测站精确至10 m内的概略位置,从而形成网络拓扑图,便于用户查看站点的平面分布。基线解算时,北斗与GPS独立系统数据处理算法相同;联合处理需选择统一的坐标和时间框架,随着多余观测数的增加,还需设置合理的模糊度固定限值。基线解算后,进行网平差,应剔除不合格基线,直至平差结果满足要求。

    高精度基线解算利用双差观测量建立误差方程,北斗双差观测量构造如式(1):

    $$ \mathit{\Delta} \nabla L^{{C_m}{C_n}}_{{S_i}{S_j}} = \left( {L^{{C_n}}_{{S_j}} - L^{{C_n}}_{{S_i}}} \right) - \left( {L^{{C_m}}_{{S_j}} - L^{{C_m}}_{{S_i}}} \right) $$ (1)

    式中,ΔL表示双差观测量;SiSj表示任意站点;CmCn表示任意北斗卫星。

    依据式(1)构建的双差观测量,建立误差方程,如式(2):

    $$ \left[ \begin{array}{l} \mathit{\Delta} \nabla \boldsymbol{\varPhi} \\ \mathit{\Delta} \nabla \boldsymbol{P} \end{array} \right] = \boldsymbol{BX} + \boldsymbol{A}\mathit{\Delta} \nabla \boldsymbol{N} + \boldsymbol{V} $$ (2)

    式中,ΔΦΔP分别表示卫星载波相位和伪距双差观测量;X表示基线向量;ΔN表示双差整周模糊度;BA为系数阵;V为残差向量。

    利用式(2)构建的误差方程,解算基线向量和双差整周模糊度浮点解。利用LAMBAD方法[16, 17]固定双差整周模糊度后去除。再利用载波相位观测值获取高精度基线向量结果。基线解算过程中,主要利用抗差估计的切比雪夫多项式拟合法[18]及MW-GF组合法[19]探测与修复周跳。

    对北斗和GPS双系统基线解算,只需将各系统的双差观测量误差方程叠加后平差计算,即可实现双系统联合基线解算。但需注意,星间差分需选择同一系统卫星,否则会引入系统间信号硬件延迟[20],影响双差整周模糊度的固定。另外,北斗和GPS在时间框架、坐标框架等存在一定差异,双系统联合解算需保证框架的统一。

    北斗和GPS时间转换公式如式(3):

    $$ {t_C} = {t_G}-14\;{\rm{s}} $$ (3)

    式中,tCtG分别表示北斗时和GPS时,两者均为原子时,起算原点不同[13]

    北斗和GPS坐标转换公式如式(4):

    $$ \begin{array}{c} \left[ {\begin{array}{*{20}{c}} {{X_C}}\\ {{Y_C}}\\ {{Z_C}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{X_G}}\\ {{Y_G}}\\ {{Z_G}} \end{array}} \right] + \left[ {\begin{array}{*{20}{c}} {{T_X}}\\ {{T_Y}}\\ {{T_Z}} \end{array}} \right] + \\ \left[ {\begin{array}{*{20}{c}} D&{ - {R_Z}}&{{R_Y}}\\ {{R_Z}}&D&{ - {R_X}}\\ { - {R_Y}}&{{R_X}}&D \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{X_G}}\\ {{Y_G}}\\ {{Z_G}} \end{array}} \right] \end{array} $$ (4)

    式中,北斗坐标(XCYCZC)与GPS坐标(XGYGZG)可通过七参数TXTYTZDRXRYRZ进行转换。北斗CGCS2000坐标系采用ITRF97框架2000历元的坐标和速度场,当前GPS WGS84坐标和ITRF08基本一致。因此,可利用ITRF97框架2000历元与ITRF08间转换的七参数(ITRF网站公布)实现北斗与GPS坐标框架的统一[11, 12]

    处理高速铁路CPI控制网时,通过读取观测文件和星历文件,单点定位生成控制网的基线网络拓扑图,如图 2所示。基线解算前,设置相关参数包括卫星截止高度角、误差限差参数、框架、对流层模型、电离层模型、模糊度Ratio值、同步最小观测历元数等。设置完成后,可选择北斗、GPS、联合3种模式进行基线解算。基线解算完成后,软件界面中将显示解算的基线分量及其精度,并可显示残差向量检核基线解算效果。

    图  2  BGO软件主界面
    Figure  2.  Software View of BGO

    为了测试BGO解算GPS基线的正确性,将其与TGO和Bernese软件处理结果进行了比较,得到57条GPS基线(基线最长6 667 m,最短446 m)的比较结果,如图 3所示。

    图  3  BGO、TGO、Bernese软件处理GPS基线分量比较
    Figure  3.  Comparing GPS Baseline Components from BGO, TGO and Bernese Software

    图 3(a)3(b)分别表示BGO软件与TGO、Bernese软件处理GPS基线分量的差值ΔX、ΔY、ΔZ图 3(a)中,BGO和TGO有52条基线在XYZ方向的分量差值均在2 cm内,有48条基线各分量差值在mm级。TGO解算少量基线验后方差分量超限,与BGO基线分量差值较大。图 3(b)中,BGO和Bernese有55条基线在XYZ方向的分量差值均在2 cm内,有49条基线各分量差值在mm级。

    图 4(a)~4(c)分别表示BGO、TGO、Bernese软件处理GPS基线的内符合精度σXσYσZ(BGO、TGO、Bernese软件基线解算精度分别精确至0.1 mm、1 mm和0.1 mm)。整体上,约90%的基线3个软件的解算精度相当。

    图  4  BGO、TGO、Bernese的GPS基线内符合精度比较
    Figure  4.  Comparing GPS Baseline Precision from BGO, TGO and Bernese Software

    为了测试BGO解算北斗与GPS联合基线的性能,本文选用美国Trimble的商业软件TBC与之进行比较。同上57条基线,每条基线观测数据均包含北斗与GPS观测数据。图 5展示了BGO和TBC处理北斗与GPS联合基线分量的差值ΔX、ΔY、ΔZ图 5可见,98%的基线分量差值分布在mm级,表明BGO软件处理联合基线能达到与TBC软件相当的水平。另外,两者内符合精度绝大部分均在mm级,故图 5中未加以比较。

    图  5  BGO与TBC软件处理北斗与GPS联合基线分量比较
    Figure  5.  Comparing BDS and GPS Combined Baseline Components from BGO and TBC Software

    由此可知,BGO软件处理GPS基线、北斗与GPS联合基线的内外符合精度能达到TGO、Bernese、TBC相当的水平。因此,以BGO软件处理GPS、北斗与GPS联合基线结果为参考值,分析该软件处理北斗基线结果的正确性和可靠性,如图 6图 7所示。图 6比较了北斗与GPS、联合基线分量的差值,图 7比较了北斗、GPS、联合基线解算的内符合精度。

    图  6  BGO软件处理北斗与GPS、联合基线分量比较
    Figure  6.  Comparing BDS, GPS and BDS/GPS Combined Baseline Components from BGO Software
    图  7  北斗、GPS、联合基线解的内符合精度统计
    Figure  7.  The Statistics of Precision of BDS, GPS and BDS/GPS Combined Baseline Solutions

    图 6(a)表示BGO软件处理北斗与GPS基线分量的差值ΔXΔYΔZ,其中有43条基线在XYZ方向上的分量差值ΔxΔyΔz在2 cm内,有31条基线在XYZ方向上的分量差值在mm级。图 6(b)表示BGO软件处理北斗与联合基线分量的差值,其中有54条基线在XYZ方向上的分量差值在2 cm内,有38条基线在XYZ方向上的分量差值在mm级(图 6中第6条基线北斗为浮点解,各分量差值结果较大,图中置为0)。

    图 7中,93%的联合基线在XYZ方向上的分量精度分别优于0.5 mm、1 mm、0.5 mm;约90%的北斗基线和95%的GPS基线在XYZ方向上的分量精度分别优于1 mm、2 mm、1 mm。由北斗、GPS、联合基线3者精度比较可知,在北斗试运行阶段,GPS基线内符合精度略优于北斗,北斗与GPS联合系统基线内符合精度明显高于独立系统。

    BGO具备网平差功能,根据网平差后的基线分量改正数、相对中误差、点位精度等判断基线解算结果的可靠性。对上述解算的北斗、GPS、联合基线分别进行无约束网平差。

    北斗、GPS、联合基线无约束网平差的平差改正数δXδYδZ绝大部分在±1 cm内,如图 8(a)~8(c)所示。最弱边相对中误差优于5.5 ppm(规范限值),具体见表 1。据图 8表 1及《高速铁路工程测量规范》[21]可知,BGO能合理稳定地解算北斗、GPS及联合基线,解算结果中的基线向量改正数、最弱边相对中误差、最弱点点位精度均满足CPI控制测量要求,各系统解算均能精确获得24个CPI控制点坐标。

    图  8  GPS、北斗、联合无约束网平差基线向量改正数
    Figure  8.  Baseline Vector Corrections from GPS, BDS and BDS/GPS Combined Unconstrained Adjustment
    表  1  GPS、北斗、联合无约束平差结果统计
    Table  1.  The Statistics of GPS, BDS and BDS/GPS Combined Unconstrained Adjustment Results
    解算模式 独立基线 多余观测数 控制点个数 最弱边相对中误差/ppm 最弱点点位精度/mm
    GPS 55 66 24 3.6 23.6
    北斗 51 57 24 3.1 26.9
    联合 57 72 24 3.7 17.9
    下载: 导出CSV 
    | 显示表格

    本文系统地研究了北斗与GPS联合基线解算的算法,自主开发了北斗高精度基线解算软件BGO。通过实测高铁CPI控制网的数据处理测试表明:软件能进行高精度地处理北斗与GPS数据, 以及北斗与GPS联合数据处理;GPS基线解算性能与天宝TGO软件相当,能达到与Bernese软件一致的精度;北斗与GPS基线处理能达到与TBC相当的水平。BGO最大的优势在于能对北斗和GPS进行联合解算,从而提高北斗或GPS单系统的基线解算合格率和精度。经高速铁路CPI控制网实例测试,证明该软件处理基线结果可用于高精度北斗和GPS测量控制网的数据处理。

  • 图  1   格网索引与邻近搜索

    Figure  1.   Illustration of Grid Index and Neighbor Search

    图  2   TPS任务抽象

    Figure  2.   Abstraction of TPS Task

    图  3   协同并行插值框架

    Figure  3.   Framework of the Collaborative Parallel Interpolation

    图  4   Greedy-SET任务调度策略

    Figure  4.   Pseudocode of Greedy-SET Scheduling Strategy

    图  5   不同并行模式在高性能工作站获取的加速比

    Figure  5.   Speedup of Different Parallel Modes on the Workstation

    图  6   协同并行TPS算法插值生成的栅格DEM

    Figure  6.   Raster DEM Interpolated by the Collaborative Parallel TPS Algorithm

    图  7   GPU有效利用率

    Figure  7.   Utilization Ratio of GPU Resources

    图  8   CG-TPS(Greedy-SET)相比C-TPS和G-TPS的效率提升

    Figure  8.   Efficiency Improvement of CG-TPS (Greedy-SET) Compared with C-TPS and G-TPS

    表  1   高性能工作站上各执行模式在不同空间划分粒度下的插值时间

    Table  1   Execution Time of Different Parallel Modes with Different Block Granularities on the Workstation

    空间划分粒度/mS-TPS/sC-TPS/sG-TPS/sCG-TPS (Greedy)/sCG-TPS (Greedy-SET)/s
    50015 003.51 629.85 327.61 293.81 285.4
    1 00015 000.81 632.92 380.6984.2981.5
    1 50014 970.71 635.41 762.9869.2862.6
    2 00014 999.01 643.51 522.1822.1817.9
    2 50014 991.01 648.51 448.6802.1787.8
    3 00015 044.71 675.11 371.1790.1767.0
    3 50015 034.51 674.61 324.3787.8773.2
    4 00015 101.01 689.31 310.1827.3774.3
    下载: 导出CSV
  • [1]

    Brovelli M, Cannata M. Digital Terrain Model Reconstruction in Urban Areas from Airborne Laser Scanning Data:the Method and an Example for Pavia (Northern Italy)[J]. Computers & Geosciences, 2004, 30(4):325-331 http://www.isprs.org/proceedings/XXXIV/part2/paper/006_014.pdf

    [2]

    Cheng T, Li D, Wang Q. On Parallelizing Universal Kriging Interpolation Based on OpenMP[C]. International Symposium on Distributed Computing and Applications to Business Engineering and Science (DCABES), Hong Kong, China, 2010

    [3]

    Guan X, Wu H. Leveraging the Power of Multi-core Platforms for Large-Scale Geospatial Data Processing:Exemplified by Generating DEM from Massive LiDAR Point Clouds[J]. Computers & Geosciences, 2010, 36(10):1276-1282 https://www.researchgate.net/publication/220163824_Leveraging_the...

    [4]

    Sharma G, Agarwala A, Bhattacharya B. A Fast Parallel Gauss Jordan Algorithm for Matrix Inversion Using CUDA[J]. Computers & Structures, 2013, 128:31-37 https://www.sciencedirect.com/science/article/pii/S0045794913002095

    [5]

    Preis T, Virnau P, Paul W, et al. GPU Accelerated Monte Carlo Simulation of the 2D and 3D Ising Model[J]. Journal of Computational Physics, 2009, 228(12):4468-4477 doi: 10.1016/j.jcp.2009.03.018

    [6]

    Jeon Y, Jung E, Min H, et al. GPU-Based Acceleration of an RNA Tertiary Structure Prediction Algorithm[J]. Computers in Biology and Medicine, 2013, 43(8):1011-1022 doi: 10.1016/j.compbiomed.2013.05.007

    [7]

    Li B, Liu G F, Liu H. A Method of Using GPU to Accelerate Seismic Pre-Stack Time Migration[J]. Chinese Journal of Geophysics, 2009, 52(1):242-249 doi: 10.1002/cjg2.v52.1

    [8] 刘二永, 汪云甲.基于CUDA的IDW并行算法及其实验分析[J].地球信息科学学报, 2011, 13(5):707-710 http://www.cqvip.com/QK/86408A/201105/39559353.html

    Liu Eryong, Wang Yunjia. Parallel IDW Algorithm Based on CUDA and Experimental Analysis[J]. Journal of Geo-information Science, 2011, 13(5):707-710 http://www.cqvip.com/QK/86408A/201105/39559353.html

    [9]

    Cheng T. Accelerating Universal Kriging Interpolation Algorithm Using CUDA-Enabled GPU[J]. Computers & Geosciences, 2013, 54(2013):178-183 https://www.researchgate.net/publication/256938812_Accelerating...

    [10]

    De Ravé E G, Jiménez-Hornero F J, Ariza-Villaverde A B, et al. Using General-Purpose Computing on Graphics Processing Units (GPGPU) to Accelerate the Ordinary Kriging Algorithm[J]. Computers & Geosciences, 2014, 64(2014):1-6 https://www.researchgate.net/publication/259508994_Using_general...

    [11]

    Beutel A, MØlhave T, Agarwal P K. Natural Neighbor Interpolation Based Grid DEM Construction Using a GPU[C]. The 18th SIGSPATIAL International Conference on Advances in Geographic Information Systems, San Jose, USA, 2010

    [12] 巨涛, 朱正东, 董小社.异构众核系统及其编程模型与性能优化技术研究综述[J].电子学报, 2015, 43(1):111-119 http://www.oalib.com/paper/4903205

    Ju Tao, Zhu Zhengdong, Dong Xiaoshe. The Feature, Programming Model and Performance Optimization Strategy of Heterogeneous Many-Core System:A Review[J]. Acta Electronica Sinica, 2015, 43(1):111-119 http://www.oalib.com/paper/4903205

    [13] 卢风顺, 宋君强, 银福康, 等. CPU/GPU协同并行计算研究综述[J].计算机科学, 2011, 38(3):5-9 http://www.docin.com/p-240893563.html

    Lu Fengshun, Song Junqiang, Yin Fukang, et al. Survey of CPU/GPU Synergetic Parallel Computing[J]. Computer Science, 2011, 38(3):5-9 http://www.docin.com/p-240893563.html

    [14]

    Reinders J. Intel Threading Building Blocks:Outfitting C for Multi-core Processor Parallelism[M]. Sebastopol:O' Reilly Media Inc., 2007

    [15]

    Jang H, Park A, Jung K. Neural Network Implementation Using CUDA and OpenMP[C]. International Conference on Digital Image Computing:Techniques and Applications (DICTA), Canberra, Australia, 2008

    [16]

    Mitas L, Mitasova H. Spatial Interpolation[J]. Geographical Information Systems:Principles, Techniques, Management and Applications, 1999, 1:481-492

    [17]

    Terzopoulos D. Regularization of Inverse Visual Problems Involving Discontinuities[J]. Pattern Analysis and Machine Intelligence, 1986, PAMI-8(4):413-424 doi: 10.1109/TPAMI.1986.4767807

  • 期刊类型引用(6)

    1. 柯文清 ,陈业滨 ,赵志刚 ,韩德志 ,郭仁忠 . 基于文献计量的新世纪地图可视化研究演变和热点分析. 地理与地理信息科学. 2025(01): 15-23 . 百度学术
    2. 于峰一泽,汤国安,陆鼎阳,林晓芬,胡光辉,沈婕,吴明光. 语言学视角下的地图演化. 地理学报. 2024(01): 171-186 . 百度学术
    3. 韩德志,郭仁忠,陈业滨,赵志刚,柯文清. 基于可视化维度理论的泛地图知识推荐方法. 地球信息科学学报. 2024(01): 110-120 . 百度学术
    4. 刘强,刘金花,王磊斌,陈鑫,赵志斌,赵晓艳,李英奎. 使用虚拟现实技术提高冰川地貌表达维度的研究. 冰川冻土. 2024(03): 1087-1098 . 百度学术
    5. 邓志钢,郭仁忠,陈业滨,马丁,赵志刚,朱维. 面向轨迹可视化的泛地图表达维度关联方法及应用. 测绘通报. 2024(11): 56-60+96 . 百度学术
    6. 柯婷,杨品福,任福,李连营,杨晨. 内河航行参考图地图符号形式化表达. 地理空间信息. 2024(12): 102-105 . 百度学术

    其他类型引用(4)

图(8)  /  表(1)
计量
  • 文章访问数:  1797
  • HTML全文浏览量:  249
  • PDF下载量:  497
  • 被引次数: 10
出版历程
  • 收稿日期:  2016-03-20
  • 发布日期:  2017-12-04

目录

/

返回文章
返回