本发明涉及数据处理调度技术领域,具体地说,涉及基于优先级的气象水文数据处理调度系统。
背景技术:
随着气象水文科技的进步使气象水文数据质量得以提高,同时气象水文数据的体量急剧增长,目前,气象水文数据处理采用同步传输,对于有效的气象水文数据无法优先处理,同时,气象水文数据处理时,无法根据节点负载进行调节,导致整体气象水文数据处理效率低。
技术实现要素:
本发明的目的在于提供基于优先级的气象水文数据处理调度系统,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供基于优先级的气象水文数据处理调度系统,其方法包括如下步骤:
s1、计算先验值,根据各个并行节点反馈到调度节点上的处理时间,取平均值;
先验值是动态更新的,这种动态更新使先验值的存在更具参考性,当节点上反馈新的该类产品生产时间信息时,和该先验值再取平均值作为新的先验值。得到的先验值在调度中的数据结构,用map型数据结构方式记录下来,key代表是计算节点处理的任务类型,value是代表节点处理此类型任务所用的时间。
s2、任务分类,根据任务紧急程度定义,(权重即任务的紧急程度,由提交任务指定)将任务分为权重任务和无权重任务;
s3、任务处理,分别对权重任务和无权重任务进行处理;
s4、计算负载,计算各个计算节点负载量;
s5、计算节点排序,根据各个计算节点负载量进行排序;
s6、任务调度,任务队列队首任务匹配计算节点队列队首节点。
作为优选,所述s3中,权重任务的处理方法包括如下步骤:
s1.1、进行权重比较;
s1.2、根据权重大小顺序将任务放入任务队列。
作为优选,所述s3中,无权重任务的处理方法包括如下步骤:
s2.1、获取待处理任务的基本信息(包括任务量大小、作业类型、等待时间等);
s2.2、获取之前处理该待处理任务的类型作业的时间;
s2.3、预估执行时间。
作为优选,所述s2.3中,预估执行时间的公式为:
ti=αtwait(i)+βtxi(si,ttype(i)),α+β=1……(式1);
其中,ti为第i个任务的加权时间和;si为第i种任务的任务量;twait(i)为执行si需等待时间,刚进入队列时,初始化twait(i)为0;ttype(i)为任务的类型;用这个值可以查阅每种类型任务的平均执行时间,做出任务执行时间的参考;任务队列用q={t1,t2,…,tn}表示,其中i=1,2,3,…,n,考虑到每个任务从提交到执行会有一个等待时间twait(i)。
式1中,ti表示任务从提交到执行完成需要的时间的一个加权时间和(等待时间和预估完成时间加权和);txi(si,ttype(i))为根据先验值预估出任务开始执行到结束的时间,任务量大小si和根据任务类型,ttype(i),α和β的值分别是twait(i)和txi(si,ttype(i))的比重系数。
作为优选,所述s4中,计算负载的公式为:
式2中,lj为计算节点负载量;cj为cpu利用率;mj为内存利用率;rj为磁盘i/o速率;tj为计算节点上正在进行的任务预估完成时间。
根据负载量大小得到计算节点队列q=(l1,l2,…,ln},其中,j=1,2,3,…,n,根据收集到的这些负载参数依各自的权值按式2计算每个节点的负载。
式2中,r是各项参数的权值因子,反映各个参数所占的权值大小,首先设置各参数的权值相同。
作为优选,所述s5中,计算节点排序采用快速排序算法,其算法方法包括如下步骤:
s3.1、设置两个变量i、j,排序开始时,i=1,j=n-1;
s3.2、以第一个数组元素作为关键数据,赋值给x,即x=a[0];
s3.3、从j开始向前搜索,即由后开始向前搜索(j=j-1),找到第一个小于x的值,让该值与x交换;
s3.4、从i开始向后搜索,即由前开始向后搜索(i=i+1),找到第一个大于x的值,让该值与x交换;
s3.5、重复第s3.3和3.4步,直到i=j。
作为优选,所述s6中,匹配采用kmp算法,其算法公式如下:
与现有技术相比,本发明的有益效果:
1、该基于优先级的气象水文数据处理调度系统中,根据任务紧急程度定义将任务分为权重任务和无权重任务,分别对权重任务和无权重任务进行处理,便于对有效的气象水文数据进行优先处理,提高处理效率。
2、该基于优先级的气象水文数据处理调度系统中,计算节点负载量,并根据各个计算节点负载量进行排序,将任务队列队首任务匹配计算节点队列队首节点,实现负载调节,进一步提高调度运算效率。
附图说明
图1为本发明的整体流程方法框图;
图2为本发明的权重任务的处理方法框图;
图3为本发明的权重任务的处理方法框图;
图4为本发明的计算节点排序方法框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-图4所示,本发明提供一种技术方案:
本发明提供基于优先级的气象水文数据处理调度系统,其方法包括如下步骤:
s1、计算先验值,根据各个并行节点反馈到调度节点上的处理时间,取平均值;
先验值是动态更新的,这种动态更新使先验值的存在更具参考性,当节点上反馈新的该类产品生产时间信息时,和该先验值再取平均值作为新的先验值。得到的先验值在调度中的数据结构,用map型数据结构方式记录下来,key代表是计算节点处理的任务类型,value是代表节点处理此类型任务所用的时间。
s2、任务分类,根据任务紧急程度定义,(权重即任务的紧急程度,由提交任务指定)将任务分为权重任务和无权重任务;
s3、任务处理,分别对权重任务和无权重任务进行处理;
s4、计算负载,计算各个计算节点负载量;
s5、计算节点排序,根据各个计算节点负载量进行排序;
s6、任务调度,任务队列队首任务匹配计算节点队列队首节点。
本实施例中,s3中,权重任务的处理方法包括如下步骤:
s1.1、进行权重比较;
s1.2、根据权重大小顺序将任务放入任务队列。
进一步的,s3中,无权重任务的处理方法包括如下步骤:
s2.1、获取待处理任务的基本信息(包括任务量大小、作业类型、等待时间等);
s2.2、获取之前处理该待处理任务的类型作业的时间;
s2.3、预估执行时间。
s2.3中,预估执行时间的公式为:
ti=αtwait(i)+βtxi(si,ttype(i)),α+β=1……(式1);
其中,ti为第i个任务的加权时间和;si为第i种任务的任务量;twait(i)为执行si需等待时间,刚进入队列时,初始化twait(i)为0;ttype(i)为任务的类型;用这个值可以查阅每种类型任务的平均执行时间,做出任务执行时间的参考;任务队列用q={t1,t2,…,tn}表示,其中i=1,2,3,…,n,考虑到每个任务从提交到执行会有一个等待时间twait(i)。
式1中,ti表示任务从提交到执行完成需要的时间的一个加权时间和(等待时间和预估完成时间加权和);txi(si,ttype(i))为根据先验值预估出任务开始执行到结束的时间,任务量大小si和根据任务类型,ttype(i),α和β的值分别是twait(i)和txi(si,ttype(i))的比重系数。
具体的,s4中,计算负载的公式为:
式2中,lj为计算节点负载量;cj为cpu利用率;mj为内存利用率;rj为磁盘i/o速率;tj为计算节点上正在进行的任务预估完成时间。
再进一步的,根据负载量大小得到计算节点队列q={l1,l2,…,ln},其中,j=1,2,3,…,n,根据收集到的这些负载参数依各自的权值按式2计算每个节点的负载。
其中,式2中,r是各项参数的权值因子,反映各个参数所占的权值大小,首先设置各参数的权值相同。
值得说明的是,s5中,计算节点排序采用快速排序算法,其算法方法包括如下步骤:
s3.1、设置两个变量i、j,排序开始时,i=1,j=n-1;
s3.2、以第一个数组元素作为关键数据,赋值给x,即x=a[0];
s3.3、从j开始向前搜索,即由后开始向前搜索(j=j-1),找到第一个小于x的值,让该值与x交换;
s3.4、从i开始向后搜索,即由前开始向后搜索(i=i+1),找到第一个大于x的值,让该值与x交换;
s3.5、重复第s3.3和3.4步,直到i=j。
值得说明的是,快速排序算法是对冒泡排序的一种改进,基本思想为:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列,设要排序的数组是a[0]…a[n-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。
此外,s6中,匹配采用kmp算法,其算法公式如下:
除此之外,kmp算法的思想为:在匹配过程中,若发生不匹配的情况,如果next[j]≥0,则目标串i的指针i不变,将模式串的指针j移动到next[j]的位置继续进行匹配;若next[j]=-1,则将i右移1位,并将j置0。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。