一种适应互联网场景的遥感影像并行集群处理的调度策略的制作方法

文档序号:23395649发布日期:2020-12-22 14:03阅读:103来源:国知局
一种适应互联网场景的遥感影像并行集群处理的调度策略的制作方法
本发明涉及并行计算
技术领域
,尤其涉及一种适应互联网场景的遥感影像并行集群处理的调度策略。
背景技术
:随着我国遥感行业的迅速发展和遥感卫星数量的爆发式增长,遥感影像数据的规模也在迅速上升,传统的单机处理模式已经不能满足遥感影像处理的需求,而并行计算在多节点环境下能够发挥出更大优势。随着计算机硬件的发展和软件框架兼容性的提升,遥感影像能够更便捷地引入多种并行框架进行并行处理。现有的研究中的一部分遥感影像处理算法,采用了数据并行的设计模式,即将输入的遥感影像数据分成多份,对算法开启多线程模式进行加速计算。这种设计模式初步引入了并行计算的思想,但是缺乏对算法本身的优化,并且这种模式仅对一些相对简单的算法有效果,对于一些对影像进行跨数据原子处理的算法,增加了处理后图片拼接还原的难度。对于一部分遥感影像处理算法的并行设计,引入了功能并行的概念,并采用了数据并行与功能并行相结合的模式。随着互联网与遥感行业的融合逐步深入,遥感影像数据的处理呈现单用户处理规模逐渐降低、处理请求时间分布零碎、处理请求数量急剧上升的趋势,所以卫星影像业务流程化处理需要应对多用户、多时间、单人多次的请求场景。而遥感影像的并行处理从单机平台走向多节点平台,将面临调度问题,包括数据调度和功能调度。对于一部分遥感影像处理算法的并行设计,虽然处理过程是在集群环境下进行的,但是没有合理的调度策略,使得部分节点提前进入空闲状态,这很容易导致节点算力的浪费。目前常用的遥感影像并行处理的调度策略(如殷宪亮.面向遥感大数据应用的云计算任务调度研究[d].南京理工大学,2018;李文.遥感数据处理任务综合调度问题研究[d].国防科学技术大学,2013),基本都是先验试的,这些研究主要针对的是特定算法和数据场景下的并行处理,其中又存在人工先验模型和仿真先验模型,并行计算调度策略的人工先验模型兼容性差,无法适应互联网时代用户需求的不断变化,而仿真式的调度策略会消耗大量的时间用于计算出合理的调度策略,这在场站处理特大规模卫星数据时是合适的,但是面对互联网环境下单用户处理规模逐渐降低和处理请求时间分布零碎的趋势,这就是不合适的,因为仿真式的调度策略本质上是自动先验的策略,不能够对调度开始后到达的任务进行有效处理。所以这些策略无法适应卫星影像业务流程化处理面对的多用户、多时间、单人多次的请求场景。技术实现要素:为解决当前的并行集群调度策略无法适应与互联网结合的遥感影像异构并行集群处理场景的问题,本发明提供一种适应互联网场景的遥感影像并行集群处理的调度策略,引入了有向无环图工作流模型,结合这个模型提出了适应本发明的遥感影像处理算法的并行划分方法,对互联网场景下的遥感影像处理算法的多变需求具有广泛的适应性;然后设计一个两级结合的调度策略,一级调度策略按照并行划分方法的结果进行工作流初始化调度,二级调度策略在并行过程中进行调度误差的弥补调度,使整个调度策略充分适应了互联网场景下的动态工作流的特性,使具有大规模数据、动态不规则请求和多用户多需求特征的遥感影像处理任务能够在多节点并行集群中得到合理的调度,最大限度利用并行集群的算力资源,最终提升计算速度。本发明提供的一种适应互联网场景的遥感影像并行集群处理的调度策略,包括以下步骤:步骤1、采用有向无环图算法并行设计模型将目标遥感影像处理算法形成有向无环图;步骤2、按照预设规则确定有向无环图中整体计算规模较大的算子,采用算法数据量稀释方法对所述整体计算规模较大的算子进行数据稀释;步骤3、基于有向无环图动态工作流调度策略将数据稀释后的算子集合中的算子逐个调度到并行集群节点服务器上进行计算;步骤4、在有向无环图动态工作流调度策略执行完毕后和所有节点服务器的任务完全执行完毕前,基于通讯成本优化的任务窃取式误差弥补策略将负载较大的节点服务器的任务调度至负载较小的节点服务器上。进一步地,所述通讯成本优化包括针对网络带宽的优化、数据压缩的优化和存储介质的读写优化。进一步地,步骤1中,所述有向无环图算法并行设计模型的建立过程包括:步骤1.1、通过绘制算法流程图的形式得出目标遥感影像处理算法的具体流程;步骤1.2、针对绘制出的流程图,确定逻辑运算与数值运算的边界,两个逻辑运算之间的边界和两个数值运算之间的边界,从边界将目标遥感影像处理算法划分为多个算子,形成算子集合;步骤1.3、将划分好的算子集合按照算子间的逻辑关系形成有向无环图。进一步地,步骤2中,所述算法数据量稀释方法是指将算子的输入数据进行拆分,并拷贝多个算子分别计算拆分开的数据。进一步地,所述有向无环图动态工作流调度策略具体为:针对有向无环图中的算子,应同时遵循下述7条调度原则:调度原则a1:优先调度有向无环图中的第一级算子;调度原则a2:两个相依赖的算子应优先调度到同一个节点服务器上;调度原则a3:属于同一级的算子不应调度到同一个节点服务器上;调度原则a4:靠近输入活动节点的算子不应调度到靠近输出活动节点的算子后;调度原则a5:若两个算子之间不存在直接或间接的依赖关系,则在调度时忽视调度原则a4;调度原则a6:在遵循调度原则a1的条件下,应优先调度有向无环图中整体计算规模较大的算子;调度原则a7:进行数据稀释后的算子的整体计算规模不大于单个节点服务器的计算能力上限。进一步地,所述调度原则a6具体包括:遍历所有节点服务器的算子队列,统计所有非首位算子的调度权重值,并得出其中的最小值,将最小值对应的算子调度到的空闲算力规模绝对值最小的节点服务器上;调度时应遵循原则a4,若打破调度原则a3,则取所有非首位算子的调度权重值中的次小值,以此类推,不断循环,已经调度过的算子不再参加循环过程,直至各节点服务器上的算子队列不再变化。进一步地,所述调度权重值按照公式(2)和(3)计算得到:ocs(vn)max=c(vn)max*din(vn)(2)其中,c(vn)max表示算子vn的最大完整运算次数,din(vn)表示算子vn的输入数据量,dout(vn)表示算子vn的预计输出数据量,ocs(vn)max表示算子vn的最大整体计算规模,wdag(vn)表示算子vn的调度权重。进一步地,单个节点服务器的空闲算力规模按照公式(4)计算得到:scp(noden)=cp(noden)-ocs(noden)total(4)其中,cp(noden)表示节点服务器noden的计算能力上限,ocs(noden)total表示节点服务器noden上所有算子的整体计算规模之和。进一步地,所述通讯成本优化的任务窃取式误差弥补策略具体为:针对被调度的节点服务器及其任务队列,应同时遵循下述6条调度原则:调度原则b1:只对n(noden)任务队列末的算子进行调度,并调度至其他节点服务器的任务队列末,n(noden)表示节点服务器noden的任务队列;调度原则b2:若被调度算子在调度到新的节点服务器的任务队列后,新的节点服务器的任务队列中存在比被调度算子更靠近输出活动节点的算子,则撤销本次调度;调度原则b3:当被调度算子均比其他任务队列中的算子更靠近输出活动节点,且被调度算子的调度权重值小于1,则将被调度算子直接调度至空闲算力规模值最大的节点服务器,忽视调度原则b4、b5和b6;调度原则b4:只有调度权重值小于1的算子才能被调度;调度原则b5:当某个节点服务器的空闲算力规模与其计算能力上限相等时,忽视调度原则b1、b2、b3和b4;调度原则b6:选择空闲算力规模值最大的节点服务器的任务队列和空闲算力规模值最小的节点服务器的任务队列,将前者的算子调度到后者的任务队列中,调度时需要遵循调度原则b1和b2,若无法调度,则选择空闲算力规模值最大的节点服务器的任务队列和空闲算力规模值次小的节点服务器的任务队列,以此类推,直至所有的任务队列均被遍历一次。本发明的有益效果:(1)本发明实施例提供的适应互联网场景的遥感影像并行集群处理的调度策略,综合功能并行设计模式和数据并行设计模式,以有向无环图算法并行设计和算子数据量稀释两种方法对遥感影像处理算法进行划分,面对互联网场景下的遥感影像处理需求复杂多变的情况,本发明的并行划分策略关注算法流程边界,不过多关注算法本身逻辑,使并行划分策略能够适应绝大部分遥感影像处理算法,而不需要针对特定算法进行特定划分设计,降低遥感影像处理算法的并行设计的工作量,充分满足互联网场景下的遥感影像处理需求,具有广泛适用性,且具有良好兼容性。(2)针对互联网场景下工作流密集,算子繁多,数据量相较于传统场景较小的情况,本发明实施例提供的适应互联网场景的遥感影像并行集群处理的调度策略,注重算子边界之间的联系,注重通讯成本,能够对大规模算子进行合理调度,对集群拓展和任务规模变化的适应性良好,提升了在互联网场景下的遥感影像并行处理集群的计算效率;(3)由于互联网场景下的需求多变,数据量和算子计算量往往是大小差别较大的,在调度过程中,不能保证把算子完全平均的调度至各个节点服务器,本发明的通讯成本优化的任务窃取式误差弥补策略,不仅弥补了调度完成前和调度完成后的因各种情况引发的调度误差,还能够合理考量任务窃取时的通讯成本,使误差弥补后的计算效率相对于直接任务窃取更高,充分满足了互联网场景下的需求多变的密集动态工作流的情况。附图说明图1为现有技术提供的工作流的有向无环图示意图;图2为本发明实施例提供的适应互联网场景的遥感影像并行集群处理的调度策略的流程示意图;图3为现有技术提供的传统的任务窃取模型的流程示例图:(a)表示在时刻1,两个节点服务器的任务队列正常顺序执行;(b)表示在时刻2,节点服务器2完成了所有任务,任务队列为空;(c)表示在时刻3,任务窃取模型算法生效,将节点服务器1任务队列末的任务窃取至节点服务器2的任务队列中;图4为本发明实施例提供的ndvi和lswi结合算法的dag工作流有向无环图;图5为本发明实施例提供的进行算子数据量稀释后的ndvi和lswi结合算法的dag工作流有向无环图;图6为本发明实施例提供的ndvi目标信息提取的决策树模型流程图;图7为本发明实施例提供的lswi目标信息提取的决策树模型流程图;图8为本发明实施例提供的lswi结合ndvi目标信息提取的决策树模型流程图;图9为本发明实施例提供的不同数量大小的任务图的speedup平均值;图10为本发明实施例提供的不同数量服务器的speedup平均值;图11为本发明实施例提供的不同数量服务器和不同大小任务图的speedup平均值。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。有向无环图(directedacyclicgraph,dag)工作流模型是一个建立在图基础上的工作流模型。有向无环图指的是一个无回路的有向图。如果有一个非有向无环图,且a点出发向b经c可回到a,形成一个环。将从c到a的边方向改为从a到c,则变成有向无环图。有向无环图的生成树个数等于入度非零的节点的入度积。有向无环图往往用来描述一项工程或系统的进行过程,几乎所有的工程或者系统都能够被分解为若干个子活动,这些子活动之间,通常受着一定的条件和约束,例如某个子活动必须在上一个子活动完成后才能进行。当形成这种dag模型后,人们就可以观察到工程或系统能否顺利进行,并且能够在一定程度上估算整个活动流程完成的时间。一个有向无环图中的每一个活动节点都是一个子活动,一个工程或系统可以被划分为若干个子活动,所有子活动组成的集合可以表示为:f(a)={v1,v2,v3,......,vn}(1)在公式(1)中,a表示一个工程或系统,vn表示a中的一个子活动。而f(a)可以被称作工作流。假设公式(1)中的n=7,也就意味着工作流a具有7个子活动。v4和v5需要在v1完成之后才能进行,可以表示为f(v1)={v4,v5};v7需要在v4和v5完成之后才能进行,可以表示为f(v4)={v7},f(v5)={v7};v7进行后直接结束,可以表示为f(v7)={};v2不依赖其他的子活动,可以直接进行并结束,可以表示为f(v2)={};v6需要在v3完成之后才能进行,可以表示为f(v6)={v3};v6进行后直接结束,可以表示为f(v6)={}。每一个子活动都是dag中的一个节点。为了更好地表示输入输出关系,在工作流中需要加入一个输入活动节点和一个输出活动节点,对于没有前置活动节点的子活动,其前置活动节点均置为输入活动节点,对于工作流a来说,可以表示为f(vin)={v1,v2,v3};对于没有后置活动节点的子活动,其后置活动节点均为输出活动节点,对于工作流a来说,可以表示为f(v6)={vout},f(v7)={vout}。依据这些描述,可以得出如图1所示的工作流a的有向无环图。基于上述有向无环图的概念,本发明提供下述优选实施例用以阐述本发明的发明构思。实施例1如图2所示,本发明实施例提供一种适应互联网场景的遥感影像并行集群处理的调度策略,包括:s101、采用有向无环图算法并行设计模型将目标遥感影像处理算法形成有向无环图;具体地,目标遥感影像处理算法结合有向无环图算法并行设计模型划分为算子集合,记录输入数据量、输出数据量、整体计算规模、计算量常数等必要数据,并形成有向无环图;所述输入数据量、输出数据量、整体计算规模、计算量常数等必要数据包括:算子在有向无环图中的级别,算子的前置算子依赖,算子的后置算子依赖,算子的输入数据的存储位置,算子的输出数据的存储位置。目标遥感影像处理算法是含有数值运算过程和逻辑运算过程中一者或两者的任意的遥感影像处理算法。s102、按照预设规则确定有向无环图中整体计算规模较大的算子,采用算法数据量稀释方法对所述整体计算规模较大的算子进行数据稀释;具体地,遥感影像处理算法形成的算子集合根据算法数据量稀释方法,拓展成新的算子集合,并扩充s101中形成的有向无环图,有向无环图形成工作流。算子的类型分为:数值运算型算子、逻辑运算型算子和由多种运算型自定义组合形成的算子。s103、基于有向无环图动态工作流调度策略将数据稀释后的算子集合中的算子逐个调度到并行集群节点服务器上进行计算;具体地,集群节点服务器包括多种形式的计算机,具体包括服务器、个人台式电脑、笔记本电脑、嵌入式计算设备、移动计算设备和其他具有计算能力的移动设备。s104、在有向无环图动态工作流调度策略执行完毕后和所有节点服务器的任务完全执行完毕前,基于通讯成本优化的任务窃取式误差弥补策略将负载较大的节点服务器的任务调度至负载较小的节点服务器上。具体地,有向无环图动态工作流调度策略调度完成,运算过程开始,通讯成本优化的任务窃取式误差弥补策略实时监控整个集群的负载状态,并及时通过误差弥补使集群中的各个节点服务器取得通讯成本与负载状态的平衡。通讯成本优化包括针对网络带宽的优化、数据压缩的优化和存储介质的读写优化。本发明实施例提供的适应互联网场景的遥感影像并行集群处理的调度策略,综合功能并行设计模式和数据并行设计模式,以有向无环图算法并行设计和算子数据量稀释两种方法对遥感影像处理算法进行划分,面对互联网场景下的遥感影像处理需求复杂多变的情况,本发明的并行划分策略关注算法流程边界,不过多关注算法本身逻辑,使并行划分策略能够适应绝大部分遥感影像处理算法,而不需要针对特定算法进行特定划分设计,降低遥感影像处理算法的并行设计的工作量,充分满足互联网场景下的遥感影像处理需求,具有广泛适用性,且具有良好兼容性。实施例2本发明实施例还提供一种适应互联网场景的遥感影像并行集群处理的调度策略,包括以下步骤:s201、采用有向无环图算法并行设计模型将目标遥感影像处理算法形成有向无环图,具体为:s2011、通过绘制算法流程图的形式得出目标遥感影像处理算法的具体流程;s2012、针对绘制出的流程图,确定逻辑运算与数值运算的边界,两个逻辑运算之间的边界和两个数值运算之间的边界,从边界将目标遥感影像处理算法划分为多个算子,形成算子集合;s2013、将划分好的算子集合按照算子间的逻辑关系形成有向无环图。s202、按照预设规则确定有向无环图中整体计算规模较大的算子,采用算法数据量稀释方法对所述整体计算规模较大的算子进行数据稀释;具体地,算子整体计算规模的大小是相对而言的,在确定“整体计算规模较大”和“整体计算规模较小”的算子时,可以根据用户需求设置区分规则。本发明实施例中,将整体计算规模大于单个节点服务器的计算能力上限的算子确定为“整体计算规模较大的算子”。算法数据量稀释方法,用于对“整体计算规模较大的算子”进行数据并行设计模式的输入数据划分。对于一个算子来说,进一步降低其计算规模有两种方法,一种是将算子进一步进行功能上的划分,形成多个同级的子算子,另一种就是将算子的输入数据进行拆分,并拷贝多个算子分别计算拆分开的数据。本发明实施例中,由于在有向无环图算法并行设计模型中已经对算子进行了细致的功能并行设计,所以将算子进一步进行功能上的划分是十分困难的,因此,本发明实施例中的算子数据量稀释就是通过将算子的输入数据进行拆分的方式降低算子计算量,从而使负载从一个节点服务器分摊到多个节点服务器上,提升计算效率。s203、基于有向无环图动态工作流调度策略将数据稀释后的算子集合中的算子逐个调度到并行集群节点服务器上进行计算;具体地,有向无环图动态工作流调度策略具体为:针对有向无环图中的算子,应同时遵循下述7条调度原则:调度原则a1:优先调度有向无环图中的第一级算子;调度原则a2:两个相依赖的算子应优先调度到同一个节点服务器上;调度原则a3:属于同一级的算子不应调度到同一个节点服务器上;调度原则a4:靠近输入活动节点的算子不应调度到靠近输出活动节点的算子后;调度原则a5:若两个算子之间不存在直接或间接的依赖关系,则在调度时忽视调度原则a4;调度原则a6:在遵循调度原则a1的条件下,应优先调度有向无环图中整体计算规模较大的算子;具体包括:遍历所有节点服务器的算子队列,统计所有非首位算子的调度权重值,并得出其中的最小值,将最小值对应的算子调度到的空闲算力规模绝对值最小的节点服务器上;调度时应遵循原则a4,若打破调度原则a3,则取所有非首位算子的调度权重值中的次小值,以此类推,不断循环,已经调度过的算子不再参加循环过程,直至各节点服务器上的算子队列不再变化。调度原则a7:进行数据稀释后的算子的整体计算规模不大于单个节点服务器的计算能力上限。具体地,对于任意遥感影像处理算法,均拥有输入数据和输出数据,对于算子集合中的每一个算子,也拥有输入数据和输出数据。本发明实施例中,使用din表示一个算子的输入数据量,使用dout表示一个算子的预计输出数据量,使用c表示一个算子的计算量常数,所述计算量常数是指一个算子对输入数据量进行完整迭代的次数。计算量常数与数据量结合计算的结果即为算子的整体计算规模(overallcalculationscale),用ocs表示。所述整体计算规模即能代表一个算子的计算量。结合两者可得出如式(2)所示的公式。ocs(vn)max=c(vn)max*din(vn)(2)其中,c(vn)max表示算子vn的最大完整运算次数,即算子vn的计算量常数;din(vn)表示算子vn的输入数据量,dout(vn)表示算子vn的预计输出数据量,ocs(vn)max表示算子vn的最大整体计算规模;而对于一个算子实际上的完整运算次数是难以估计的,事先对遥感影像数据中的每一个像素进行预先估计也是不现实的,所以本发明实施例选择可能出现的最坏情况,即前n次运算均无法排除任何像素(这种情况是可能出现的)。采用这种方式最终计算得出的也是最坏情况下的整体计算规模(即最大整体计算规模),即最坏情况下的完整运算次数c(vn)max与算子输入数据量din(vn)相乘。使用如式(3)所示的dag工作流调度权值公式对影响程度进行表示。其中wdag(vn)表示算子vn的调度权重,din(vn)表示算子vn的输入数据量,dout(vn)表示算子vn的预计输出数据量,ocs(vn)max表示算子vn的最大整体计算规模。输入数据量和预计输出数据量与整体计算规模的比值表示该算子的所有产生数据占整体计算规模的比例,能够较好估计一个算子在调度时的通信成本。对每一个节点服务器来说,均存在一个计算能力上限cp(noden),表示一台计算机能够承受的最大计算规模。在节点计算机上运行一个重复迭代的程序,当迭代次数使计算机cpu占用率在一段时间内保持满载状态时,这个迭代程序的计算规模即为该节点计算机的计算能力上限cp(noden)。本发明实施例中,单个节点服务器的空闲算力规模(surpluscomputingpower,scp)按照公式(4)计算得到:scp(noden)=cp(noden)-ocs(noden)total(4)其中,cp(noden)表示节点服务器noden的计算能力上限,ocs(noden)total表示节点服务器noden上所有算子的整体计算规模之和。在实际生产调度过程中,不同集群环境的节点之间的网络带宽可能不同。在一般情况下,wdag(vn)的值结合scp(noden)就能够完成合理的调度,但如果存在集群中的节点服务器之间网络环境受限,例如带宽较低、网卡性能较低的情况,则应当设定一个wdag阈值,在wdag(vn)低于这个阈值时,不进行对应算子的调度,以最大限度避免通讯拥塞情况的出现,这个阈值需要集群管理者根据实际业务需求、实际业务量和集群网络环境的具体情况进行设置。对于每个算子的输入数据规模din和预计输出数据规模dout,每个算子的计算量常数c(vn)max均需要算法划分为算子时进行预先设定。s204、在有向无环图动态工作流调度策略执行完毕后和所有节点服务器的任务完全执行完毕前,基于通讯成本优化的任务窃取式误差弥补策略将负载较大的节点服务器的任务调度至负载较小的节点服务器上。具体地,本发明实施例中的所述通讯成本优化是指结合式(2)、(3)和(4)的计算结果后再决定是否对一个算子进行调度,以降低并行过程的通讯成本,节省并行计算的时间,提升并行效率,从而实现对一个算子进行合理的调度。所述任务窃取式误差弥补策略,是在所述有向无环图动态工作流调度策略执行完毕后和所有节点服务器的任务完全执行完毕前执行的调度策略,对于执行过程中因各种原因引起的调度误差,任务窃取式误差弥补策略将负载较高的节点服务器的任务调度至负载较少的节点服务器上。其中,所述节点服务器的任务,就是所调度的算子与其输入数据结合的运算过程。本发明实施例中,所述通讯成本优化的任务窃取式误差弥补策略具体为:针对被调度的节点服务器及其任务队列,应同时遵循下述6条调度原则:调度原则b1:只对n(noden)任务队列末的算子进行调度,并调度至其他节点服务器的任务队列末,n(noden)表示节点服务器noden的任务队列;调度原则b2:若被调度算子在调度到新的节点服务器的任务队列后,新的节点服务器的任务队列中存在比被调度算子更靠近输出活动节点的算子,则撤销本次调度;调度原则b3:当被调度算子均比其他任务队列中的算子更靠近输出活动节点,且被调度算子的调度权重值小于1,则将被调度算子直接调度至空闲算力规模值最大的节点服务器,忽视调度原则b4、b5和b6;调度原则b4:只有调度权重值小于1的算子才能被调度;调度原则b5:当某个节点服务器的空闲算力规模与其计算能力上限相等时,忽视调度原则b1、b2、b3和b4;调度原则b6:选择空闲算力规模值最大的节点服务器的任务队列和空闲算力规模值最小的节点服务器的任务队列,将前者的算子调度到后者的任务队列中,调度时需要遵循调度原则b1和b2,若无法调度,则选择空闲算力规模值最大的节点服务器的任务队列和空闲算力规模值次小的节点服务器的任务队列,以此类推,直至所有的任务队列均被遍历一次。具体地,在有向无环图动态工作流调度策略完成调度后,集群开始进行计算,接下来使用通讯成本优化的任务窃取式误差弥补策略进行误差弥补调度。对于一个节点服务器来说,存在一个任务队列,这个任务队列中存放着有序算子,算子将被按序从任务队列中取出进行并行计算。这个任务队列可以表示如式(5)所示。n(noden)={v1,v2,v3,...,vn}(5)其中n(noden)表示节点服务器noden的任务队列(有序队列),vn表示任务队列中的第n个算子。对于一个集群来说,存在多个节点服务器,这个集群可以表示为式(6)所示的集群节点集合。cluster(cc)={n(node1),n(node2),n(node3),...,n(noden)}(6)其中cluster(cc)表示集群cc的节点集合(无序集合),n(noden)表示节点服务器noden的任务队列(有序队列)。基于上述概念,假设cluster(cc)={n(node1),n(node2)},其中n(node1)={v1,v4,v5},n(node2)={v2,v3},传统的任务窃取模型如图3所示。图3中所示的任务队列分为三个时刻。在(a)所示的时刻1中,两个节点的任务队列正常顺序执行,即n(node1)={v1,v4,v5},n(node2)={v2,v3};在(b)所示的时刻2中,节点2完成了所有任务,任务队列为空,即n(node1)={v4,v5},n(node2)={};在(c)所示的时刻3中,任务窃取模型算法生效,将节点1任务队列末的任务窃取至节点2的任务队列中,即n(node1)={v4},n(node2)={v5},以充分发挥两个节点的算力。从队列末调度任务的原因是队列末的任务是最有可能未被执行的任务,对当前队列影响较小。也就是说,传统的任务窃取模型仅仅考虑节点服务器的负载状态,而通过上述调度原则b1至b6可以发现,本发明实施例提供的通讯成本优化的任务窃取式误差弥补策略则基于算子的输入数据量和/或输出数据量,以及节点服务器的负载状态进行综合调度。针对互联网场景下工作流密集,算子繁多,数据量相较于传统场景较小的情况,本发明实施例提供的适应互联网场景的遥感影像并行集群处理的调度策略,注重算子边界之间的联系,注重通讯成本,能够对大规模算子进行合理调度,对集群拓展和任务规模变化的适应性良好,提升了在互联网场景下的遥感影像并行处理集群的计算效率;并且,由于互联网场景下的需求多变,数据量和算子计算量往往是大小差别较大的,在调度过程中,不能保证把算子完全平均的调度至各个节点服务器,本发明的通讯成本优化的任务窃取式误差弥补策略,不仅弥补了调度完成前和调度完成后的因各种情况引发的调度误差,还能够合理考量任务窃取时的通讯成本,使误差弥补后的计算效率相对于直接任务窃取更高,充分满足了互联网场景下的需求多变的密集动态工作流的情况。实施例3在实施例1和实施例2的基础上,以具有代表性的ndvi和lswi结合的植被高精度识别遥感影像处理算法作为目标遥感影像处理算法,将其算法划分与调度的过程作为具体实施例进行详细描述。归一化植被指数(normalizedvegetationindex,ndvi)在遥感影像中被描述为近红外波段的反射值与红光波段的反射值之差比上两者之和。ndvi的计算过程的原子数据为单个像元,且一个区域的ndvi计算与其他区域的计算过程无关,计算过程中需要对像元进行逐个迭代计算,具有明显并行特征,适合进行数据并行和功能并行相结合的并行设计。地表水分指数(landsurfacewaterindex,lswi)在遥感影像中被描述为近红外波段的反射值与短红外波段的反射值之差比上两者之和。lswi可以用于识别地表物体的含水量。而将ndvi与lswi相结合,可以更精确地识别地表植被。该算法是一个相对复杂的多算法多流程结合的遥感影像处理算法,对于互联网场景下的遥感影像处理过程,面临着更广泛的行业需求,往往会存在多算法融合的需求,所以十分适合作为一个具有代表性的实施例。该算法的主要流程包括结合输入数据的ndvi公式计算(算子标记为ndvi1)、结合输入数据的lswi公式计算(算子标记为lswi1)、基于ndvi公式计算结果的ndvi粗分析(算子标记为ndvi2)、基于lswi公式计算结果的lswi粗分析(算子标记为lswi2)、基于ndvi公式计算结果和lswi公式计算结果的结合精分析(算子标记为ndvlswi1)。根据该描述关系,可以得出式(7)所示的工作流b描述。f(b)={ndvi1,ndvi2,lswi1,lswi2,ndvlswi1}(7)在工作流b中,加入了输入节点bin和输出节点bout,这两个节点虽然作为了与算子同样级别的节点,但输入输出实际上是每一个遥感影像处理算法都需要具有的固定处理流程,可以被视为一个并行集群的初始广播和最终归约的操作,不参与实际的调度过程,所以输入节点bin和输出节点bout没有在工作流b中出现。那么工作流b中的各个算子之间的关系可以表示为:f(ndvi1)={ndvi2,ndvlswi1},f(lswi1)={lswi2,ndvlswi1},f(bin)={ndvi1,lswi1},f(ndvi2)={bout},f(lswi2)={bout},f(ndvlswi1)={bout}。根据算子之间关系的表述,就可以得出如图4所示的ndvi和lswi结合的植被高精度识别算法dag工作流有向无环图。对于ndvi和lswi结合的植被高精度识别算法来说,每一个算子都拥有自己的逻辑运算或数值运算过程,每一个算子也都拥有不同类别和不同规模的输入数据和输出数据,所以经过图4的划分,每个算子具有了自己的参数,即运算规模和数据规模。而这种划分方法,可推广适用于所有带有逻辑运算和数值运算过程的遥感影像处理算法。以式(7)的工作流b为例,在实际生产环境中,ndvi1和lswi1接收的输入数据是原始输入数据,数据量在整个工作流中相对较大,所以可以对这两个算子进行算子数据量稀释,将两个算子的数据分别划分为2份,并进行算子拷贝,最终可以形成如式(8)所示的工作流b'。f(b')={ndvi1,ndvi1',ndvi2,lswi1,lswi1',lswi2,ndvlswi1}(8)在工作流b'中,算子之间的关系可以表示为:f(ndvi1)={ndvi2,ndvlswi1},f(lswi1)={lswi2,ndvlswi1},由于稀释出了新的算子,所以新增了两个新算子的关系:f(ndvi1')={ndvi2,ndvlswi1},f(lswi1')={lswi2,ndvlswi1},在输入节点中也加入了新的算子关系:f(bin)={ndvi1,lswi1,ndvi1',lswi1'},对于没有被稀释的算子来说,它们与其他算子的关系不受稀释增加的算子的影响,所以关系仍然为:f(ndvi2)={bout},f(lswi2)={bout},f(ndvlswi1)={bout}。根据算子稀释后的关系的表述,就可以得出如图5所示的ndvi和lswi结合的植被高精度识别算法dag工作流(算子数据量稀释)有向无环图。从图5可以看出,经过算子数据量稀释后产生的新算子不会对其下一级算子的执行与输出造成影响,只有下一级算子在进行输入数据归约时受影响,不影响算子的内部计算过程。对于ndvi算子:din(ndvi1)=n/2,dout(ndvi1)=n/4,其中n表示ndvi计算需要的两个波段的所有数据量的大小,此处假设对算子数据量进行等分稀释,所以din的数据量n/2,对于ndvi的计算过程来说,一个像素的两波段数据可以综合计算出一个像素的ndvi值,故dout的预估数据量为n/4;ndvi的计算是对输入数据的像素进行逐个迭代计算,一个像素的ndvi值计算包括两次差运算和一次除运算,故c(ndvi1)=3,则ocs(ndvi1)=c(ndvi1)*din(ndvi1)=3n/2;对于ndvi经过算子数据量稀释后的拷贝算子:din(ndvi1')=n/2,dout(ndvi1')=n/4,其中n表示ndvi计算需要的两个波段的所有数据量的大小,此处假设对算子数据量进行等分稀释,所以din的数据量n/2,对于ndvi的计算过程来说,一个像素的两波段数据可以综合计算出一个像素的ndvi值,故dout的预估数据量为n/4;与算子ndvi1相同,c(ndvi1')=3,ocs(ndvi1')=3n/2;对于lswi算子和lswi经过算子数据量稀释后的拷贝算子:din(lswi1)=n/2,dout(lswi1)=n/4,din(lswi1')=n/2,din(lswi1')=n/4,ndvi计算所需的数据是近红外波段的反射值与红光波段的反射值,而lswi计算所需的数据是近红外波段的反射值与短红外波段的反射值,对于同一批遥感影像数据来说,像素数量一致,所以波段数据量也一致,故也可以用n表示lswi计算需要的两个波段的所有数据量的大小,两个算子的其他分析与ndvi两个算子的分析一致,c(lswi1)=3,c(lswi1')=3,ocs(lswi1)=ocs(lswi1')=3n/2,此处不再赘述。对于进行ndvi分析的算子ndvi2,主要进行逻辑运算,其逻辑运算的主要内容是决策树的分析。若决策分析的目标植被为水稻,则算子ndvi2的决策树分析流程如图6所示。算子ndvi2所包括的逻辑分析是对算子ndvi1和算子ndvi1'的计算结果进行分析,所以din(ndvi2)=dout(ndvi1)+dout(ndvi1')=n/2。最终分析输出的是一张经过逐个像素区分并标记的图像,故输出数据量与输入数据量相同,即dout(ndvi2)=n/2。从图6中可以看出,算子ndvi2至多对所有像素进行两轮完整的逻辑比较运算,故c(ndvi2)max=2,ocs(ndvi2)max=n。因为无法对每个图像的地物类别进行精确的估计,故此处应取计算常数和整体计算规模的最大值,以避免在调度时使整体计算规模超过某个节点的算力。对于进行lswi分析的算子lswi2,它与算子ndvi2相同,主要进行逻辑运算,其逻辑运算的主要内容也是决策树的分析。若决策分析的目标植被为水稻,则算子lswi2的决策树分析流程如图7所示。算子lswi2所包括的逻辑分析是对算子lswi1和算子lswi1'的计算结果进行分析,所以与ndvi2的计算方式相同,din(lswi2)=dout(lswi1)+dout(lswi1')=n/2。最终分析输出的同样是一张经过逐个像素区分并标记的图像,故输出数据量与输入数据量相同,即dout(lswi2)=n/2。从图7中可以看出,算子lswi2至多对所有像素进行两轮完整的逻辑比较运算和一次差运算,故c(lswi2)max=3,ocs(lswi2)max=3n/2。同样的,因为无法对每个图像的地物类别进行精确的估计,故此处仍将取计算常数和整体计算规模的最大值。对于结合精分析的算子ndvlswi1,是将ndvi和lswi的分析过程结合进行的决策树分析,也属于逻辑计算的过程,若决策分析的目标植被为水稻,则算子ndvlswi1的决策树分析流程如图8所示。算子ndvlswi1所包括的逻辑分析是对算子ndvi1、算子ndvi1'、算子lswi1和算子lswi1'的计算结果进行分析,所以其输入数据是四个算子的输出数据量的和,即din(ndvlswi1)=dout(ndvi1)+dout(ndvi1')+dout(lswi1)+dout(lswi1')=n。最终分析输出的同样是一张经过逐个像素区分并标记的图像,故输出数据量与输入数据量相同,即dout(ndvlswi1)=n。从图8中可以看出,算子ndvlswi1至多对所有像素进行三轮完整的逻辑比较运算和一次求差运算,故c(ndvlswi1)max=4,ocs(ndvlswi1)max=4n。同样的,因为无法对每个图像的地物类别进行精确的估计,故此处仍将取计算常数和整体计算规模的最大值。将上述分析结果结合公式(2)、(3)和(4),就可以使用实施例2中的有向无环图动态工作流调度策略(包括调度原则a1至a7)进行调度,此处不再赘述。在有向无环图动态工作流调度策略完成调度后,集群开始进行计算,接下来使用实施例2中的通讯成本优化的任务窃取式误差弥补策略(包括调度原则b1至b6)进行误差弥补调度,此处不再赘述。为验证本发明方法的有效性,下面对本发明实施例提供的遥感影像处理算法的并行划分结果和调度策略的有效性进行如下测试实验,实验环境如表1所示。表1测试环境软硬件型号或版本操作系统windows10prox64运行内存32gb(ddr4)cpuintelcorei7-7700硬盘型号与容量samsung970pro1tb硬盘写入速度3700mb/s硬盘读取速度3600mb/s节点服务器的网络带宽1.0gbps编程语言java(jdk9)从性能分析和实验对比方面对基于本发明提供的一种适应互联网场景的遥感影像并行集群处理的调度策略的性能进行归纳分析。以当前计算性能较优的heft、heft-lookahead、ceft、deep算法作为比对算法,采用常用的性能指标speedup。speedup是所有工作流的串行执行时间与工作流被并行调度策略算法处理后的最终执行时间makespan(包括通信时间)的比值,其中ti表示第i个工作流的串行执行时间,w表示工作流的总计数量。speedup的计算公式如式(9)所示。speedup值越小,说明算法性能越差,反之,算法的性能越好。首先在相同数量的资源服务上进行调度以对比本发明调度策略算法的性能。工作流的算子总数量分别为{100,200,300,400,500,600,700,800,900,1000},资源服务器个数为5,对于heft、heft-lookahead、ceft、ddep算法,工作流任务节点执行时间的随机生成区间为[10,20],工作流任务节点通信代价随机生成区间为[10,20],对于本发明实现的调度策略算法,工作流任务节点的执行时间和通信代价均为实际调度过程中的值。根据公式(9)多次计算,并取平均值得出如图9所示的不同数量大小的任务图的speedup平均值。从图9可以看出,本发明提出的调度策略的性能比heft、heft-lookahead、ceft、ddep算法都要好,在同数量资源服务器、不同数量任务规模的情况下,比算法heft优越20.6%,比算法heft-lookahead优越11.5%,比算法ceft优越15.4%,比算法ddep优越5.0%。然后在不同数量的资源服务器上进行等任务规模的调度以对比本发明调度策略算法的性能,工作流的算子总数量固定为100,资源服务器个数分别为{3,5,7,9},其他条件不变。根据公式(9)多次计算,并取平均值得出如图10所示的不同节点数量的speedup平均值。从图10可以看出,本发明提出并实现的调度策略算法的性能比heft、heft-lookahead、ceft、ddep算法都要好,在不同数量资源服务器、同数量任务规模的情况下,比算法heft优越42.8%,比算法heft-lookahead优越27.3%,比算法ceft优越31.0%,比算法ddep优越20.0%。随着节点数量的增长,speedup不断提升,十分适合互联网与遥感结合场景下的大规模节点集群的情况。最后进行调度策略算法的健壮性分析。互联网场景下的高性能集群需要面对需求频繁变动、集群状态频繁变动、请求数量频繁变动的情况,设定工作流的算子总数量为{600,700,800,900,1000},设定资源服务器个数分别对应为{2,4,6,8,10}。根据公式(9)多次计算,并取平均值得出如图11所示的不同数量服务器和不同大小任务图的speedup平均值。从图11可以看出,本发明提出并实现的调度策略能够适应不同规模的工作流及算子数量和服务器节点数量,符合互联网场景下的需求快速变化的情况。可以很明显地看到,基于本发明提供的一种遥感影像处理算法的并行划分结果和调度策略在互联网场景下的计算性能上有较大提升,能够满足互联网场景下需求快速变化的情况,解决了互联网与遥感影像处理结合的并行集群调度问题,提升并行集群处理遥感影像的效率,更好地发挥我国不断增长的规模庞大的遥感影像数据的价值。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1