遥感算法流程并行调度方法及装置与流程

文档序号:15346626发布日期:2018-09-04 22:50阅读:189来源:国知局

本发明涉及遥感算法的技术领域,尤其是涉及一种遥感算法流程并行调度方法及装置。



背景技术:

随着遥感卫星技术的发展,遥感影像数据已经成为地理信息获取和分析重要数据来源,下面以林地变化监测为例进行说明。

林业是保持生态平衡,培育和保护森林以取得以取得木材和其他林产品、利用林木的自然特性以发挥防护作用的生产部门,是国民经济的重要组成部分之一。我国森林覆盖率仅为16.55%,林木总蓄积量不足世界总量的3%。由于生产建设占用、砍伐以及生长退化等原因,林地资源流失严重,因此及时地监测和保护林地资源是一项重要的任务。遥感是林业监测的重要手段,通过卫星遥感影像数据可以及时获取和掌握林地变化情况。但是,综合性的处理遥感数据并自动获取林地变化情况的软件系统尚未发展成熟。

为了完成某一项工作,在对遥感数据进行处理时,往往涉及到多种遥感算法。现有技术中,在遥感算法流程的执行时,并不考虑遥感算法之间的依赖关系,都是采用串行执行的方式进行。比如,现在存在四种遥感算法,分别是a算法,b算法,c算法,d算法,其中,a算法执行完后,得到的结果传输给b算法,b算法才能执行,c算法执行完后,得到的结果传输给d算法,d算法才能执行,也就是说a算法和b算法之间存在依赖关系,c算法和d算法之间存在依赖关系,现有的遥感算法流程执行时,往往是先执行a算法,再执行b算法,之后再执行c算法和d算法,而这种顺序执行的方法效率低下

综上,现有的遥感算法流程在执行时存在效率低下的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种遥感算法流程并行调度方法及装置,以缓解现有的遥感算法流程在执行时存在效率低下的问题。

第一方面,本发明实施例提供了一种遥感算法流程并行调度方法,所述方法包括:

通过执行序列控制器加载遥感算法流程数据结构,生成执行结点数据结构,其中,所述执行结点数据结构中包含多个执行结点,每个执行节点中包含一种遥感算法任务;

对所述执行结点数据结构进行分析,得到执行依赖关系,其中,所述执行依赖关系为各个执行结点之间的依赖关系;

通过所述执行序列控制器控制各个执行结点根据所述执行依赖关系在遥感算法执行池中执行各个执行结点所包含的任务,其中,存在所述执行依赖关系的执行结点之间串行执行其所包含的任务,不存在所述执行依赖关系的执行结点之间并行执行其所包含的任务。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述多个执行结点中位于当前执行结点之前且与所述当前执行结点相邻的执行结点为所述当前执行结点的前驱结点,所述多个执行结点中位于所述当前执行结点之后且与所述当前执行结点相邻的执行结点为所述当前执行结点的后继结点,不存在前驱结点的执行结点为一级执行结点。

结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,通过所述执行序列控制器控制各个执行结点根据所述执行依赖关系在所述遥感算法执行池中执行各个执行结点所包含的任务包括:

将所有的一级执行结点添加至所述遥感算法执行池中,以使所述所有的一级执行结点并行执行其所包含的任务;

监听各个一级执行结点的执行状态,以监督所述一级执行结点的执行流程,其中,所述执行状态包括以下任一种:未执行状态,运行状态,完成状态。

结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,通过所述执行序列控制器控制各个执行结点根据所述执行依赖关系在所述遥感算法执行池中执行各个执行结点所包含的任务还包括:

当当前执行结点的执行状态为完成状态时,如果所述当前执行结点存在后继结点,则将所述后继结点的受信次数加1;

获取所述后继结点所对应的前驱结点的个数;

基于所述后继结点的受信次数和所述后继结点所对应的前驱结点的个数确定执行流程。

结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,基于所述后继结点的受信次数和所述后继结点所对应的前驱结点的个数确定执行流程包括:

如果所述后继结点的受信次数等于所述后继结点所对应的前驱结点的个数,则将所述后继结点添加至所述遥感算法执行池中,以使所述后继结点执行其所包含的任务;

如果所述后继结点的受信次数小于所述后继结点所对应的前驱结点的个数,则在所述后继结点的所有前驱结点的执行状态变为所述完成状态之后,执行所述后继结点中所包含的任务。

结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,在通过所述执行序列控制器控制各个执行结点根据所述执行依赖关系在所述遥感算法执行池中执行各个执行结点所包含的任务之后,所述方法还包括:

获取所有执行结点的执行状态;

如果所述所有执行结点的执行状态为完成状态时,则所述遥感算法流程执行结束。

结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述遥感算法执行池包括线程池。

第二方面,本发明实施例还提供了一种遥感算法流程并行调度装置,所述装置包括:

加载模块,用于通过执行序列控制器加载遥感算法流程数据结构,生成执行结点数据结构,其中,所述执行结点数据结构中包含多个执行结点,每个执行节点中包含一种遥感算法任务;

分析模块,用于对所述执行结点数据结构进行分析,得到执行依赖关系,其中,所述执行依赖关系为各个执行结点之间的依赖关系;

执行模块,用于通过所述执行序列控制器控制各个执行结点根据所述执行依赖关系在遥感算法执行池中执行各个执行结点所包含的任务,其中,存在所述执行依赖关系的执行结点之间串行执行其所包含的任务,不存在所述执行依赖关系的执行结点之间并行执行其所包含的任务。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述多个执行结点中位于当前执行结点之前且与所述当前执行结点相邻的执行结点为所述当前执行结点的前驱结点,所述多个执行结点中位于所述当前执行结点之后且与所述当前执行结点相邻的执行结点为所述当前执行结点的后继结点,不存在前驱结点的执行结点为一级执行结点。

结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述执行模块包括:

添加单元,用于将所有的一级执行结点添加至所述遥感算法执行池中,以使所述所有的一级执行结点并行执行其所包含的任务;

监听单元,用于监听各个一级执行结点的执行状态,以监督所述一级执行结点的执行流程,其中,所述执行状态包括以下任一种:未执行状态,运行状态,完成状态。

本发明实施例带来了以下有益效果:本发明实施例提供了一种遥感算法流程并行调度方法及装置,该方法包括:通过执行序列控制器加载遥感算法流程数据结构,生成执行结点数据结构,其中,执行结点数据结构中包含多个执行结点,每个执行节点中包含一种遥感算法任务;对执行结点数据结构进行分析,得到执行依赖关系,其中,执行依赖关系为各个执行结点之间的依赖关系;通过执行序列控制器控制各个执行结点根据执行依赖关系在遥感算法执行池中执行各个执行结点所包含的任务,其中,存在执行依赖关系的执行结点之间串行执行其所包含的任务,不存在执行依赖关系的执行结点之间并行执行其所包含的任务。

现有技术中,在遥感算法流程执行时,并不考虑遥感算法之间的依赖关系,都是采用串行执行的方式进行,大大降低了效率。与现有的遥感算法流程相比,本发明实施例提供的遥感算法流程并行调度方法中,通过执行序列控制器加载遥感算法流程数据结构,从而得到执行结点数据结构,然后,对执行结点数据结构进行分析,得到执行依赖关系,进而,通过执行序列控制器控制各个执行结点根据执行依赖关系在遥感算法执行池中执行其所包含的任务,在执行过程中,存在执行依赖关系的执行结点之间串行执行其所包含的任务,不存在执行依赖关系的执行结点之间并行执行其所包含的任务,这样,大大提高了算法的执行效率,缓解了现有的遥感算法流程在执行时效率低下的问题。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

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

图1为本发明实施例提供的一种遥感算法流程并行调度方法的流程图;

图2为本发明实施例提供的遥感算法流程数据结构以及执行结点数据结构的示意图;

图3为本发明实施例提供的一种通过执行序列控制器控制各个执行结点根据执行依赖关系在遥感算法执行池中执行各个执行结点所包含的任务的方法流程图;

图4为本发明实施例提供的另一种通过执行序列控制器控制各个执行结点根据执行依赖关系在遥感算法执行池中执行各个执行结点所包含的任务的方法流程图;

图5为本发明实施例提供的一种遥感算法流程并行调度装置的功能模块图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种遥感算法流程并行调度方法进行详细介绍。

实施例一:

一种遥感算法流程并行调度方法,参考图1,该方法包括:

s102、通过执行序列控制器加载遥感算法流程数据结构,生成执行结点数据结构,其中,执行结点数据结构中包含多个执行结点,每个执行节点中包含一种遥感算法任务;

在本发明实施例中,遥感算法流程数据结构为预先获取的数据结构。该遥感算法流程数据结构用来描述遥感算法之间执行顺序之间逻辑关系的数据结构,该结构中包含有流程执行时一共包含有哪些遥感算法,哪些算法必须串行执行,哪些算法必须并行执行。

当执行序列控制器加载遥感算法流程数据结构后,就能够生成执行结点数据结构。

具体的,执行序列控制器为整个体系的管理部分,能够管理所有的执行结点,能够对外提供查看遥感算法流程的执行情况。而执行结点数据结构实际为连接遥感算法的适配器,也就是,执行结点数据结构中的每一个节点中包含有一种遥感算法任务(可以认为把每一种遥感算法封装成遥感算法执行池所能识别的结构),该执行结点数据结构与遥感算法执行池匹配,另外,通过该执行结点数据结构中包含有执行结点间的执行依赖关系。通过该执行结点数据结构能够访问到当前执行结点的前驱结点和后继结点,同时也能得到当前执行结点的受信次数和执行状态。

通俗地讲,参考图2,如果现在存在五种算法,a算法,b算法,c算法,d算法,e算法,其中,a算法执行完后,得到的结果传输给b算法,b算法才能执行,c算法执行完后,得到的结果传输给d算法,d算法才能执行,b算法和d算法执行完后,得到的结果都传输给e算法,e算法才能执行,也就是说a算法和b算法之间存在依赖关系,c算法和d算法之间存在依赖关系,b算法、d算法都与e算法存在依赖关系,这样的关系就是遥感算法流程数据结构。在得到遥感算法流程数据结构,执行序列控制器加载该遥感算法流程数据结构,就能够得到执行结点数据结构。上述的遥感算法流程数据结构中,各个遥感算法之间是独立的,如果没有执行结点数据结构,a算法执行完成后,并不能找到b算法,只有得到执行结点数据结构后(比如a算法对应的是结点1,b算法对应的是结点2),才能通过执行结点的依赖关系(比如结点1执行完后执行结点2)建立各算法之间的依赖关系。

s104、对执行结点数据结构进行分析,得到执行依赖关系,其中,执行依赖关系为各个执行结点之间的依赖关系;

在得到执行结点数据结构后,对执行结点数据结构进行分析,得到执行结点间的执行依赖关系。执行结点间的执行依赖关系也就是其中包含的遥感算法任务间的执行依赖关系。

s106、通过执行序列控制器控制各个执行结点根据执行依赖关系在遥感算法执行池中执行各个执行结点所包含的任务,其中,存在执行依赖关系的执行结点之间串行执行其所包含的任务,不存在执行依赖关系的执行结点之间并行执行其所包含的任务。

在得到执行依赖关系后,通过执行序列控制器控制各个执行结点根据执行依赖关系在遥感算法执行池中执行各个执行结点所包含的任务,在执行时,存在执行依赖关系的执行结点之间串行执行其所包含的任务,不存在执行依赖关系的执行结点之间并行执行其所包含的任务,以实现执行效率的最大化。

具体的,遥感算法执行池为遥感算法任务的最终执行场所,能够提供遥感算法任务的并发异步执行,其通过执行序列控制器为其下达执行任务,然后,根据执行任务进行执行,当遥感算法任务执行完成时向执行序列控制器汇报执行结果。

可选地,遥感算法执行池包括线程池。该线程池可以为开源的,也可以为用户自身定义的,当然,遥感算法执行池还可以包含其它的形式,本发明实施例对其不进行具体限制。

现有技术中,在遥感算法流程执行时,并不考虑遥感算法之间的依赖关系,都是采用串行执行的方式进行,大大降低了效率。与现有的遥感算法流程相比,本发明实施例提供的遥感算法流程并行调度方法中,通过执行序列控制器加载遥感算法流程数据结构,从而得到执行结点数据结构,然后,对执行结点数据结构进行分析,得到执行依赖关系,进而,通过执行序列控制器控制各个执行结点根据执行依赖关系在遥感算法执行池中执行其所包含的任务,在执行过程中,存在执行依赖关系的执行结点之间串行执行其所包含的任务,不存在执行依赖关系的执行结点之间并行执行其所包含的任务,这样,大大提高了算法的执行效率,缓解了现有的遥感算法流程在执行时效率低下的问题。

上述内容对遥感算法流程并行调度方法进行了简要介绍,下面对其中涉及到的内容进行详细介绍。

可选地,多个执行结点中位于当前执行结点之前且与当前执行结点相邻的执行结点为当前执行结点的前驱结点,多个执行结点中位于当前执行结点之后且与当前执行结点相邻的执行结点为当前执行结点的后继结点,不存在前驱结点的执行结点为一级执行结点。

具体的,如果当前执行结点存在前驱结点,那么该前驱结点的数量可以为多个,同理,如果当前执行结点存在后继结点,那么该后继结点的数量也可以为多个。

可选地,参考图3,通过执行序列控制器控制各个执行结点根据执行依赖关系在遥感算法执行池中执行各个执行结点所包含的任务包括:

s301、将所有的一级执行结点添加至遥感算法执行池中,以使所有的一级执行结点并行执行其所包含的任务;

具体的,将所有的一级执行结点添加至遥感算法执行池后,所有的一级执行结点并行执行其所包含的任务,遥感算法执行池实时向执行序列控制器发送该所有的一级执行结点的执行状态,以使执行序列控制器对一级执行结点的执行状态进行标记,以供外界查看。

s302、监听各个一级执行结点的执行状态,以监督一级执行结点的执行流程,其中,执行状态包括以下任一种:未执行状态,运行状态,完成状态。

在这一过程中,执行序列控制器监听各个一级执行结点的执行状态,以监督一级执行结点的执行流程。

可选地,参考图4,通过执行序列控制器控制各个执行结点根据执行依赖关系在遥感算法执行池中执行各个执行结点所包含的任务还包括:

s401、当当前执行结点的执行状态为完成状态时,如果当前执行结点存在后继结点,则将后继结点的受信次数加1;

具体的,当当前执行结点的执行状态为完成状态时,也就是当前执行结点的执行完成事件到来时,执行序列控制器标记当前执行结点的执行状态为完成状态,如果当前执行结点存在后继结点,那么将后继结点的受信次数加1。其中,该受信次数是指后继结点接收到其开始执行其所包含的任务的次数。

需要说明的是,当前执行结点的后继结点的数量可以为多个。

s402、获取后继结点所对应的前驱结点的个数;

s403、基于后继结点的受信次数和后继结点所对应的前驱结点的个数确定执行流程。

可选地,基于后继结点的受信次数和后继结点所对应的前驱结点的个数确定执行流程包括:

(1)如果后继结点的受信次数等于后继结点所对应的前驱结点的个数,则将后继结点添加至遥感算法执行池中,以使后继结点执行其所包含的任务;

同理,该过程中也进行执行状态的反馈与标记。

(2)如果后继结点的受信次数小于后继结点所对应的前驱结点的个数,则在后继结点的所有前驱结点的执行状态变为完成状态之后,执行后继结点中所包含的任务。

需要说明的是,这种情况对应的是如果一个执行结点对应的前驱结点为多个,那么只要当其对应的所有的前驱结点的执行任务完成后,才能进行本执行结点任务的执行。例如图2中的结点5。

可选地,在通过执行序列控制器控制各个执行结点根据执行依赖关系在遥感算法执行池中执行各个执行结点所包含的任务之后,该方法还包括:

(1)获取所有执行结点的执行状态;

(2)如果所有执行结点的执行状态为完成状态时,则遥感算法流程执行结束。

通过本发明中的遥感算法流程并行调度方法能提高遥感算法流程中没有依赖关系的算法之间并行执行效率。

实施例二:

一种遥感算法流程并行调度装置,参考图5,该装置包括:

加载模块11,用于通过执行序列控制器加载遥感算法流程数据结构,生成执行结点数据结构,其中,执行结点数据结构中包含多个执行结点,每个执行节点中包含一种遥感算法任务;

分析模块12,用于对执行结点数据结构进行分析,得到执行依赖关系,其中,执行依赖关系为各个执行结点之间的依赖关系;

执行模块13,用于通过执行序列控制器控制各个执行结点根据执行依赖关系在遥感算法执行池中执行各个执行结点所包含的任务,其中,存在执行依赖关系的执行结点之间串行执行其所包含的任务,不存在执行依赖关系的执行结点之间并行执行其所包含的任务。

本发明实施例提供的遥感算法流程并行调度装置中,通过执行序列控制器加载遥感算法流程数据结构,从而得到执行结点数据结构,然后,对执行结点数据结构进行分析,得到执行依赖关系,进而,通过执行序列控制器控制各个执行结点根据执行依赖关系在遥感算法执行池中执行其所包含的任务,在执行过程中,存在执行依赖关系的执行结点之间串行执行其所包含的任务,不存在执行依赖关系的执行结点之间并行执行其所包含的任务,这样,大大提高了算法的执行效率,缓解了现有的遥感算法流程在执行时效率低下的问题。

可选地,多个执行结点中位于当前执行结点之前且与当前执行结点相邻的执行结点为当前执行结点的前驱结点,多个执行结点中位于当前执行结点之后且与当前执行结点相邻的执行结点为当前执行结点的后继结点,不存在前驱结点的执行结点为一级执行结点。

可选地,执行模块包括:

添加单元,用于将所有的一级执行结点添加至遥感算法执行池中,以使所有的一级执行结点并行执行其所包含的任务;

监听单元,用于监听各个一级执行结点的执行状态,以监督一级执行结点的执行流程,其中,执行状态包括以下任一种:未执行状态,运行状态,完成状态。

可选地,执行模块还包括:

更新受信次数单元,当当前执行结点的执行状态为完成状态时,如果当前执行结点存在后继结点,则将后继结点的受信次数加1;

获取单元,用于获取后继结点所对应的前驱结点的个数;

确定单元,用于基于后继结点的受信次数和后继结点所对应的前驱结点的个数确定执行流程。

可选地,确定单元包括:

添加子单元,如果后继结点的受信次数等于后继结点所对应的前驱结点的个数,则将后继结点添加至遥感算法执行池中,以使后继结点执行其所包含的任务;

延迟执行单元,如果后继结点的受信次数小于后继结点所对应的前驱结点的个数,则在后继结点的所有前驱结点的执行状态变为完成状态之后,执行后继结点中所包含的任务。

可选地,该装置还包括:

获取模块,用于获取所有执行结点的执行状态;

执行结束模块,如果所有执行结点的执行状态为完成状态时,则遥感算法流程执行结束。

可选地,遥感算法执行池包括线程池。

该实施例二中的具体内容可以参考上述实施例一中的描述,在此不再赘述。

本发明实施例所提供的遥感算法流程并行调度方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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