一种基于多机多进程的地理网格金字塔并行构建方法技术

技术编号:36606335 阅读:24 留言:0更新日期:2023-02-04 18:29
本发明专利技术涉及一种基于多机多进程的地理网格金字塔并行构建方法,包括如下步骤:步骤1、主进程将元数据和数据库配置相关信息进行合并之后使用组播的方式将属性信息发送到各个从进程中;步骤2、根据最大和最小层级切分瓦片数据;步骤3、主进程将瓦片元数据信息全量发送到指定的从进程中;步骤4、从进程的任务执行进度采用收集的方式,从进程接收分发的任务;步骤5、各个从进程循环执行数据校验;步骤6、各个从进程执行网格打码;步骤7、各个从进程执行网格数据入库;步骤8、各个从进程汇报任务状态:采用点对点的消息模型,实时向主进程汇报任务的处理状态和进度;步骤9、主进程收集从进程任务执行情况,等待全部进程结束。等待全部进程结束。等待全部进程结束。

【技术实现步骤摘要】
一种基于多机多进程的地理网格金字塔并行构建方法


[0001]本专利技术涉及导航定位领域,尤其是一种基于多机多进程的地理网格金字塔并行构建方法。

技术介绍

[0002]随着我国自发展北斗系统的广泛应用,北斗数据日益成为重要的数据源输入之一。北斗网格是适用于北斗系统终端输出的一种编码格式,具有我国完全自主知识产权,采用经纬度剖分,具有边界不重叠、网格正交、经纬一致、与传统数据规格兼容性好等特点,且能够进行点面一体化表征的特点。
[0003]全球任一空间几何对象都能够被北斗网格集合覆盖,北斗网格在空间无缝无叠、层次递归,与高性能并行计算分而治之的原理高度匹配,具有天然的并行计算优势。网格的空间划分进行空间数据计算任务划分,实现海量空间数据的网格并行化调度和计算。
[0004]MPI(Message Passing Interface)是独立于语言的通信协议,MPI是一种进程级的并行方式,它支持分布式存储。MPI是基于消息传递的并行编程,它提供了语义丰富的消息通信机制,包括点对点、组播和多播模式。用户程序利用这些接口进行进程之间的数据移动、聚集、规约和同步,常见的编程模式为单程序多数据模型(Single Instruction Multiple Data,SIMD)和主从模式。
[0005]一个进程可以通过指定另一个进程的rank序号以及一个独一无二的消息标签(tag)来发送消息给另一个进程。接受者可以发送一个接收特定标签标记的消息的请求(或者也可以完全不管标签,接收任何消息),然后依次处理接收到的数据。类似这样的涉及一个发送者以及一个接受者的通信被称作点对点(point

to

point)通信。
[0006]当然在很多情况下,某个进程可能需要跟所有其他进程通信。比如主进程想发一个广播给所有的从进程。在这种情况下,手动去写一个个进程点对点的信息传递就显得很笨拙。而且事实上这样会导致网络利用率低下。MPI有专门的接口来帮我们处理这类所有进程间的集体性(collective)通信。
[0007]在集群系统中,集群的各节点之间可以采用MPI编程模型进行程序设计,每个节点都有自己的内存,可以对本地的指令和数据直接进行访问,各节点之间通过互联网络进行消息传递,这样设计具有很好的可移植性,完备的异步通信功能,较强的可扩展性等优点。
[0008]OpenMP是一套支持跨平台共享内存方式的多线程并发的编程API,使用C,C++和Fortran语言,可以在大多数的处理器体系和操作系统中运行。OpenMP是一个跨平台的多线程实现,主线程(顺序的执行指令)生成一系列的子线程,并将任务划分给这些子线程进行执行。这些子线程并行的运行,由运行时环境将线程分配给不同的处理器。
[0009]OpenMP是基于共享内存架构的并行计算框架,更适合本地单台计算机的运算,由于使用线程间共享内存的方式协调并行计算,它在多核/多CPU结构上的效率很高、内存开销小、编程语句简洁直观。
[0010]MPI+OpenMP分布式混合并行框架能够很好的解决集群和单机上遇到的并行问题,
将任务划分成小任务,有MPI负责粗粒度的任务并行,将多个任务在多节点之间进行分发和共享。OpenMP负责细粒度的计算并行,每个进程获取小任务之后,再将任务分发成微任务,启动多个开销更小的子线程去并行处理,最大限度地将任务细分,资源利用最大化。
[0011]北斗剖分网格码是以GeoSOT为基础发展的适用于北斗系统终端输出的一种编码格式,与北斗系统的精度相适应,与北斗终端芯片的能力相匹配,作为以北斗系统为核心的PNT(定位、导航、授时)体系的一种基本输出,为地球空间万事万物的离散化位置赋值,其核心是将地球完整剖分成32级、无缝嵌套、最小尺度为1.5cm2的网格群,同时为每个网格赋予一个全球唯一的整型数编码。
[0012]GeoSOT网格具有我国完全自主知识产权,采用经纬度剖分,具有边界不重叠、网格正交、经纬一致、与传统数据规格兼容性好等特点,且能够进行点面一体化表征。GeoSOT将地球表面空间进行3次拓展,即将纬度(

90
°
~90
°
)和经度(

180
°
~180
°
)都拓展为(

256
°
~256
°
),将1
°
拓展为64

,将1

拓展为64

,实现等度、等分、等秒剖分。
[0013]在平面网格的基础上,通过高度维扩展,将上至地球外围52万km、下至近地心的地球全域空间剖分成数以兆亿个大到全球网格、小到厘米级网格的32级网格体元,网格形状相似、既无缝隙也不重叠,构成地球全域空间剖分网格基准框架。
[0014]北斗剖分网格码表征要素模型,用网格表征点、线、面要素时,要素与网格单元的数量比例不定。如可用一个网格单元表示一个点对象,用网格单元集合表征线、面对象。如图1所示,为北斗网格金字塔模型;
[0015]金字塔模型常用于大规模遥感影像可视化应用之上,采用不同分辨率的数据来提高渲染速度,从而在网络环境下实现大规模数据共享、服务和辅助决策支持。网格金字塔借鉴影像金字塔的思想,将全球矢量数据按照不同的层级进行切分成大小相同的瓦片,并将层级、行和列数据保存在数据库中,通过构建多key值索引,能够快速定位选中瓦片的网格信息。
[0016]如图2所示,随着层级的增高,瓦片数量变大,计算量也会变大,从而导致传统的串行计算方式远不能满足性能要求,因此,需要发挥多机多CPU的资源优势,将大量的网格瓦片分而治之,分配给不同的CPU核心进行网格计算,从而提升应用的整体性能。
[0017]分布式数据库是用计算机网络将物理上分散的多个数据库单元连接起来组成的一个逻辑上统一的数据库。每个被连接起来的数据库单元称为站点或节点。
[0018]目前,大数据领域常用的并行框架除了MPI之外,还有擅长离线计算的Hadoop和内存计算框架Spark。Hadoop是离线计算,基于磁盘,每次运算之后的结果需要存储在HDFS里面,下次再次使用时,仍需要从磁盘中读出进行计算,磁盘IO开销比较大;Spark适用于多次迭代的计算模型,诸如各种机器学习算法,由于内存的限制使得Spark处理数据规模远小于Hadoop。
[0019]基于并行框架的北斗网格并行计算目前还没有成型的应用,之所以选用MPI作为底层的并行框架,主要是对比了常用的并行框架,MPI更加轻量化,数据存储和数据计算是分开的,能够选用更加符合应用场景的存储组件。同时,使用MPI自由度更高,能够根据不同的应用场景来定制化数据分割算法,最大可能保证任务的负载匀衡。
[0020]同时,针对北斗网格构建的方法最常用的方式有两种。其一,将整个区域按照固定层级的进行打码入库,这种方法适合于小范围区域,遇本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多机多进程的地理网格金字塔并行构建方法,其特征在于,包括如下步骤:步骤1、主进程将元数据和数据库配置相关信息进行合并之后使用组播的方式将属性信息发送到各个从进程中;步骤2、根据最大和最小层级切分瓦片数据;步骤3、主进程将瓦片信息全量发送到指定的从进程中;步骤4、从进程的任务执行进度采用收集的方式,从进程接收分发的任务;步骤5、各个从进程循环执行数据校验,根据接收到的level,x,y获取网格瓦片的经纬度坐标,判断是否与待获取区域相交,如果不相交则抛弃该网格瓦片;步骤6、各个从进程执行网格打码,根据网格瓦片的经纬度坐标创建Polygon格式的geometry对象,调用网格打码函数,完成该瓦片的网格化构建。步骤7、各个从进程执行网格数据入库:将打码之后的结果保存到分布式数据库中;步骤8、各个从进程汇报任务状态:采用点对点的消息模型,实时向主进程汇报任务的处理状态和进度;步骤9、主进程收集从进程任务执行情况,等待全部进程结束。2.根据权利要求1所述的一种基于多机多进程的地理网格金字塔并行构建方法,其特征在于:所述步骤3中,主进程将瓦片信息全量发送到指定的从进程中,是采用MPI非阻塞异步通信的方式,当主进程向第一从进程发送任务详情时,不需要等待第一从进程将数据接收成功就可以直接返回,发送和接收的工作有MPI系统后台执行,继续向第二从进程发送任务,以此类推直至任务全部发送完成。3.根据权利要求1所述的一种基于多机多进程的地理网格金字塔并行构建方法,其特征在于:在关系型数据库中定义一个复合类型gridcell,用于表示北斗剖分中的一个2D/3D单元网格,北斗剖分网格分为2D网格和3D网格,其中2D网格由纬度、经度分别进行二进制剖分,然后通过...

【专利技术属性】
技术研发人员:张建学杨光辉
申请(专利权)人:中科星图股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1