一种面向独立计算特征的矢量数据地理信息并行编程方法与流程

文档序号:16734868发布日期:2019-01-28 12:33阅读:443来源:国知局
一种面向独立计算特征的矢量数据地理信息并行编程方法与流程

本发明涉及高性能地理信息处理技术领域,具体来说涉及一种面向独立计算特征的矢量数据地理信息并行编程方法。



背景技术:

近年计算机计算能力迅速提高,尤其是多核计算机和并行计算集群开始普及,但传统gis的串行算法却难以充分利用这些先进的计算资源。虽然gis算法并行化已经有20年历史,但大多数限于单个栅格算法的并行化,对矢量算法则仅限于简单或典型的空间分析算法,如最短路径分析、叠加分析等。gis算法,尤其是矢量算法,存在并行编程困难的问题。其实质在于:

1)地理空间数据结构与访问模式复杂

gis数据实体种类繁多,从大类上可分为栅格和矢量两种。矢量数据结构复杂,对象之间的拓扑关系紧凑、对象的空间覆盖范围广、对象的存储大小不固定;栅格数据也同时具有本地相关、局部相关、整体相关等多种算法相关性,使得目前还没有一种公认的较为完善的数据划分策略以及复杂的数据访问模式。

2)对开发人员要求较高

目前主流的并行编程语言复杂多样,有map-reduce、mpi、openmp、cuda等多种并行方式,并行编程模式也有数据并行模式、流水线并行模式、主从并行模式等多种模式,在具体编程过程中有涉及多节点并行、多核并行、消息传递和共享内存等,使得并行编程难度大。这要求地理信息处理专家在处理复杂的地理操作时,还必须具备充分的并行系统结构知识。利用低级的并行编程语言如mpi进行数据划分、并行任务分解、同步和进程通信,涉及的并行函数繁多、编程逻辑复杂,这使得并行编程变得相当繁琐而困难。

而在众多的矢量算法中,从并行角度而言,有一类算法称之为独立计算,或几何对象单独计算模式,即结果数据集可以由输入数据集中每个几何对象独立计算得出,与其它几何对象无关,其数据并行性最好。包括平行线计算、弧段分割,属性更改等算法。

因此,亟需研发一种面向独立计算特征的矢量数据地理信息快速并行编程方法,在程序开发层次解决矢量空间分析算法并行编程困难的问题。



技术实现要素:

针对相关技术中的问题,本发明提出一种面向独立计算特征的矢量数据地理信息并行编程方法,通过提高并行开发的抽象层次,屏蔽了复杂的并行过程,在程序开发层次解决了几何对象单独计算类矢量空间分析算法并行编程困难的问题。

为了实现上述技术目的,本发明的技术方案是这样的:

一种面向独立计算特征的矢量数据地理信息并行编程方法,具体包括以下步骤:

s1:串行流程过程分解:将面向独立计算特征的串行地理信息处理算法的串行过程进行分解;

s2:并行流程设计:将面向独立计算特征的串行地理信息处理算法采用主从模式进行并行设计;

s3:并行流程抽象实现:将面向独立计算特征的地理信息处理算法并行过程采用模板方法分为三类:并行地理处理接口类、地理处理串行实现类、基础功能类;

s4:具体算法串行实现:从并行地理处理接口类继承形成地理信息串行实现类,编译后形成并行程序;

s5:并行调用:运行时使用并行程序调用的方式进行程序调用,完成地理信息处理功能的并行处理。

进一步的,步骤s1中所述分解的具体步骤包括:读取几何对象;单个几何对象进行处理;将处理后的几何对象写入结果数据集;重建拓扑关系。

进一步的,步骤s2中所述并行设计包括以下步骤:主节点把源数据集划分为子数据集并进行任务分配;计算节点对分配到子数据集进行处理形成结果子数据集;主节点统一合并结果子数据集,形成结果数据集;主节点重建拓扑关系。

进一步的,步骤s3中所述并行地理处理接口类中对涉及到的并行操作进行默认实现。

进一步的,步骤s4中在实现所述串行实现类时,根据传入的子数据集内容,对其中与具体算法相关的内容进行串行实现。

本发明的有益效果:在对串行算法过程分解的基础上,将并行设计过程进行抽象,将面向独立计算特征的地理信息处理算法并行过程分为三类:行地理处理接口类、地理处理串行实现层、基础功能类,通过提高并行开发的抽象层次,屏蔽了复杂的并行过程,使得程序开发人员无需了解并行设计,只需通过继承的方式编写串行代码部分,就可以完成该类算法的并行化,在程序开发层次解决了面向独立计算特征的矢量空间分析算法并行编程困难的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明面向独立计算特征的并行编程方法实现流程图;

图2为本发明面向独立计算特征的地理信息算法串行处理流程图;

图3为本发明面向独立计算特征的地理信息算法并行处理流程图;

图4为本发明地理信息处理算法并行模板抽象类图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,一种面向独立计算特征的矢量数据地理信息并行编程方法,具体包括以下步骤:

串行流程过程分解:如图2所示,将面向独立计算特征的串行地理信息处理算法的串行过程分解为以下几个步骤:读取几何对象;单个几何对象进行处理;将处理后的几何对象写入结果数据集;重建拓扑关系。

并行流程设计:如图3所示,将面向独立计算特征的串行地理信息处理算法采用主从模式进行并行设计,把并行过程设计为以下几个步骤:主节点把源数据集划分为子数据集并进行任务分配;计算节点对分配到子数据集进行处理形成结果子数据集;主节点统一合并结果子数据集,形成结果数据集;主节点重建拓扑关系。在实际处理中,由于几何对象数据结构复杂,一般主节点只是发送数据集划分信息,由计算节点根据划分信息自行读取。

并行流程抽象实现:如图4所示,将面向独立计算特征的地理信息处理算法并行过程采用模板方法分为三类:并行地理处理接口类、地理处理串行实现类、基础功能类。并行地理处理接口类对面向独立计算特征的地理信息处理算法并行过程进行抽象,并对主节点、从节点的操作逻辑进行定义;地理处理串行实现类采用继承的方式对具体地理信息处理功能函数进行串行实现;基础功能类则提供地理信息并行处理所需的基础算法,可进行数据集划分、文件读取、拓扑计算等操作。

具体算法串行实现:从并行地理处理接口类继承形成地理信息串行实现类,并对其中与具体算法相关的内容进行串行实现,编译后形成并行程序;

s5:并行调用:运行时使用并行程序调用的方式进行程序调用,输入地理信息处理程序路径名称、节点数目等信息,完成地理信息处理功能的并行处理。

以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1