A Collaborative Parallel Spatial Interpolation Algorithmon Oriented Towards the Heterogeneous CPU/GPU System
-
摘要: CPU/GPU异构混合系统是一种新型高性能计算平台,但现有并行空间插值算法仅依赖CPU或GPU进行加速,迫切需要研究协同并行空间插值算法以充分利用异构计算资源,进一步提升插值效率。以薄板样条函数插值为例,提出一种CPU/GPU协同并行插值算法以加速海量激光雷达(light detector & ranger,LiDAR)点云生成数字高程模型(DEM)。通过插值任务的分解与抽象封装以屏蔽底层硬件执行模式的差异性,同时在多级协同并行框架基础上设计了Greedy-SET动态调度策略,策略顾及底层硬件能力的差异性,以实现异构并行资源的充分利用和良好负载均衡。实验表明,协同并行插值算法在高性能工作站上取得19.6倍的加速比,相比单一CPU或GPU并行算法,其效率提升分别达到54%和44%,实现了高效的协同并行处理。
-
关键词:
- CPU/GPU异构环境 /
- 协同并行算法 /
- 空间插值 /
- 薄板样条插值函数 /
- LiDAR点云
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进行对比测试、性能分析,验证了该软件的正确性和有效性。
1 系统的设计与模块算法的实现
1.1 系统设计与数据流分析
北斗和GPS基线解算软件主要包含北斗基线处理、GPS基线处理及联合基线处理3大模块。各模块间相互独立,但使用相同的数据结构,且数据流基本一致。数据处理流程如图 1所示。
基线解算之前,需选择有效双频观测数据,具体包含低高度角卫星剔除、观测值粗差剔除、星历未获取观测数据剔除等。剔除质量较差的观测数据可通过可视化的方式实现。通过双频数据组合有效消除电离层延迟影响,伪距消电离组合能算出测站精确至10 m内的概略位置,从而形成网络拓扑图,便于用户查看站点的平面分布。基线解算时,北斗与GPS独立系统数据处理算法相同;联合处理需选择统一的坐标和时间框架,随着多余观测数的增加,还需设置合理的模糊度固定限值。基线解算后,进行网平差,应剔除不合格基线,直至平差结果满足要求。
1.2 高精度基线解算算法实现
高精度基线解算利用双差观测量建立误差方程,北斗双差观测量构造如式(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表示双差观测量;Si和Sj表示任意站点;Cm和Cn表示任意北斗卫星。
依据式(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表示双差整周模糊度;B和A为系数阵;V为残差向量。
利用式(2)构建的误差方程,解算基线向量和双差整周模糊度浮点解。利用LAMBAD方法[16, 17]固定双差整周模糊度后去除。再利用载波相位观测值获取高精度基线向量结果。基线解算过程中,主要利用抗差估计的切比雪夫多项式拟合法[18]及MW-GF组合法[19]探测与修复周跳。
对北斗和GPS双系统基线解算,只需将各系统的双差观测量误差方程叠加后平差计算,即可实现双系统联合基线解算。但需注意,星间差分需选择同一系统卫星,否则会引入系统间信号硬件延迟[20],影响双差整周模糊度的固定。另外,北斗和GPS在时间框架、坐标框架等存在一定差异,双系统联合解算需保证框架的统一。
北斗和GPS时间转换公式如式(3):
$$ {t_C} = {t_G}-14\;{\rm{s}} $$ (3) 式中,tC和tG分别表示北斗时和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) 式中,北斗坐标(XC,YC,ZC)与GPS坐标(XG,YG,ZG)可通过七参数TX、TY、TZ、D、RX、RY、RZ进行转换。北斗CGCS2000坐标系采用ITRF97框架2000历元的坐标和速度场,当前GPS WGS84坐标和ITRF08基本一致。因此,可利用ITRF97框架2000历元与ITRF08间转换的七参数(ITRF网站公布)实现北斗与GPS坐标框架的统一[11, 12]。
2 BGO数据处理实例与性能测试
2.1 高速铁路CPI控制网基线解算
处理高速铁路CPI控制网时,通过读取观测文件和星历文件,单点定位生成控制网的基线网络拓扑图,如图 2所示。基线解算前,设置相关参数包括卫星截止高度角、误差限差参数、框架、对流层模型、电离层模型、模糊度Ratio值、同步最小观测历元数等。设置完成后,可选择北斗、GPS、联合3种模式进行基线解算。基线解算完成后,软件界面中将显示解算的基线分量及其精度,并可显示残差向量检核基线解算效果。
2.2 BGO、TGO、Bernese软件处理GPS基线结果比较
为了测试BGO解算GPS基线的正确性,将其与TGO和Bernese软件处理结果进行了比较,得到57条GPS基线(基线最长6 667 m,最短446 m)的比较结果,如图 3所示。
图 3(a)、3(b)分别表示BGO软件与TGO、Bernese软件处理GPS基线分量的差值ΔX、ΔY、ΔZ。图 3(a)中,BGO和TGO有52条基线在X、Y、Z方向的分量差值均在2 cm内,有48条基线各分量差值在mm级。TGO解算少量基线验后方差分量超限,与BGO基线分量差值较大。图 3(b)中,BGO和Bernese有55条基线在X、Y、Z方向的分量差值均在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个软件的解算精度相当。
2.3 BGO、TBC软件处理北斗与GPS联合基线结果
为了测试BGO解算北斗与GPS联合基线的性能,本文选用美国Trimble的商业软件TBC与之进行比较。同上57条基线,每条基线观测数据均包含北斗与GPS观测数据。图 5展示了BGO和TBC处理北斗与GPS联合基线分量的差值ΔX、ΔY、ΔZ。图 5可见,98%的基线分量差值分布在mm级,表明BGO软件处理联合基线能达到与TBC软件相当的水平。另外,两者内符合精度绝大部分均在mm级,故图 5中未加以比较。
由此可知,BGO软件处理GPS基线、北斗与GPS联合基线的内外符合精度能达到TGO、Bernese、TBC相当的水平。因此,以BGO软件处理GPS、北斗与GPS联合基线结果为参考值,分析该软件处理北斗基线结果的正确性和可靠性,如图 6和图 7所示。图 6比较了北斗与GPS、联合基线分量的差值,图 7比较了北斗、GPS、联合基线解算的内符合精度。
图 6(a)表示BGO软件处理北斗与GPS基线分量的差值ΔX、ΔY、ΔZ,其中有43条基线在X、Y、Z方向上的分量差值Δx、Δy、Δz在2 cm内,有31条基线在X、Y、Z方向上的分量差值在mm级。图 6(b)表示BGO软件处理北斗与联合基线分量的差值,其中有54条基线在X、Y、Z方向上的分量差值在2 cm内,有38条基线在X、Y、Z方向上的分量差值在mm级(图 6中第6条基线北斗为浮点解,各分量差值结果较大,图中置为0)。
图 7中,93%的联合基线在X、Y、Z方向上的分量精度分别优于0.5 mm、1 mm、0.5 mm;约90%的北斗基线和95%的GPS基线在X、Y、Z方向上的分量精度分别优于1 mm、2 mm、1 mm。由北斗、GPS、联合基线3者精度比较可知,在北斗试运行阶段,GPS基线内符合精度略优于北斗,北斗与GPS联合系统基线内符合精度明显高于独立系统。
2.4 BGO基线网平差及其精度分析
BGO具备网平差功能,根据网平差后的基线分量改正数、相对中误差、点位精度等判断基线解算结果的可靠性。对上述解算的北斗、GPS、联合基线分别进行无约束网平差。
北斗、GPS、联合基线无约束网平差的平差改正数δX、δY、δZ绝大部分在±1 cm内,如图 8(a)~8(c)所示。最弱边相对中误差优于5.5 ppm(规范限值),具体见表 1。据图 8、表 1及《高速铁路工程测量规范》[21]可知,BGO能合理稳定地解算北斗、GPS及联合基线,解算结果中的基线向量改正数、最弱边相对中误差、最弱点点位精度均满足CPI控制测量要求,各系统解算均能精确获得24个CPI控制点坐标。
表 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 3 结语
本文系统地研究了北斗与GPS联合基线解算的算法,自主开发了北斗高精度基线解算软件BGO。通过实测高铁CPI控制网的数据处理测试表明:软件能进行高精度地处理北斗与GPS数据, 以及北斗与GPS联合数据处理;GPS基线解算性能与天宝TGO软件相当,能达到与Bernese软件一致的精度;北斗与GPS基线处理能达到与TBC相当的水平。BGO最大的优势在于能对北斗和GPS进行联合解算,从而提高北斗或GPS单系统的基线解算合格率和精度。经高速铁路CPI控制网实例测试,证明该软件处理基线结果可用于高精度北斗和GPS测量控制网的数据处理。
-
表 1 高性能工作站上各执行模式在不同空间划分粒度下的插值时间
Table 1 Execution Time of Different Parallel Modes with Different Block Granularities on the Workstation
空间划分粒度/m S-TPS/s C-TPS/s G-TPS/s CG-TPS (Greedy)/s CG-TPS (Greedy-SET)/s 500 15 003.5 1 629.8 5 327.6 1 293.8 1 285.4 1 000 15 000.8 1 632.9 2 380.6 984.2 981.5 1 500 14 970.7 1 635.4 1 762.9 869.2 862.6 2 000 14 999.0 1 643.5 1 522.1 822.1 817.9 2 500 14 991.0 1 648.5 1 448.6 802.1 787.8 3 000 15 044.7 1 675.1 1 371.1 790.1 767.0 3 500 15 034.5 1 674.6 1 324.3 787.8 773.2 4 000 15 101.0 1 689.3 1 310.1 827.3 774.3 -
[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)