本发明属于任务调度技术领域,具体为一种电力系统中融合LIFO和HRF的任务调度方法。
背景技术:
随着用电信息采集装置的安装率和覆盖率趋于100%,用电采集信息的价值不断凸显,而原有的采集系统无法跟上急剧增加的信息量,由于用电信息的提升导致档案数据量急剧增大,存取与加载都会产生大量的IO操作,单纯从硬件配置上进行解决是有一定限制的,而且更高的配置往往意味着更高的价格。磁盘高速缓存读取效率的提升往往与cache的命中率是分不开的,而cache命中率的提升需要任务调度来解决。一般的任务调度方式主要是LIFO(后进先出)和FIFO(先进先出),其中LIFO在使用过程中虽然可以提升cache的命中率,但是其在CPU的利用率上存在一个“拖尾任务”问题(剩余任务数少于处理机个数时,导致处理机空闲),导致不能更好地利用CPU,无法更好地提升IO效率。
技术实现要素:
本发明的目的在于提供一种电力系统中融合LIFO和HRF的任务调度方法,该方法融合LIFO和HRF(Highest Rank First高优先级优先)的任务调度方法来增加任务调度的性能,从而提升IO的效率。
为实现上述目的,本发明的技术方案是:一种电力系统中融合LIFO和HRF的任务调度方法,包括如下步骤,
S1:对电力系统中使用的电脑集群中的内核数进行统计;
S2:根据优先级的定义,计算出节点队列中最高优先级的任务数;
S3:根据最高优先级任务数与内核数的关系确定任务调度的方法。
在本发明一实施例中,所述步骤S2具体实现如下,
S21、做出任务的有向无环图DAG;
S22、进行优先级定义:优先级定义为一个任务在DAG中与目标任务的距离,对于目标任务来说,其优先级被定义为0,优先级为i的任务的前提任务的优先级被定义为i+1;若一个任务是多个不同优先级任务的前提,那么该任务的优先级就是其中最大的任务优先级加1;
S23、对工作节点队列中拥有最高优先级的任务数进行统计。
在本发明一实施例中,所述步骤S3具体实现如下,
根据步骤S1统计的内核数及步骤S2获得的最高优先级任务数,分别设Nhr为节点队列中具有最高优先级的任务数,Ncore为相关节点的内核数;若Nhr>Ncore,则利用LIFO的方法来选择任务,若Nhr≤Ncore,则利用HRF的方法来选择任务。
相较于现有技术,本发明具有以下有益效果:本发明通过将LIFO和HRF进行有效的结合,不仅可以利用到LIFO提高cache命中率的优点,而且可以缓解其“拖尾任务”问题导致的CPU利用率不够的问题,从而有效地提高了IO效率。
附图说明
图1为本发明实施例提供的电力系统中融合LIFO和HRF的任务调度方法的流程图。
具体实施方式
下面结合附图,对本发明的技术方案进行具体说明。
如图1所示,本发明的一种电力系统中融合LIFO和HRF的任务调度方法,包括如下步骤,
S1:对电力系统中使用的电脑集群中的内核数进行统计;
S2:根据优先级的定义,计算出节点队列中最高优先级的任务数;
S3:根据最高优先级任务数与内核数的关系确定任务调度的方法。
所述步骤S2具体实现如下,
S21、做出任务的有向无环图DAG;
S22、进行优先级定义:优先级定义为一个任务在DAG中与目标任务的距离,对于目标任务来说,其优先级被定义为0,优先级为i的任务的前提任务的优先级被定义为i+1;若一个任务是多个不同优先级任务的前提,那么该任务的优先级就是其中最大的任务优先级加1;
S23、对工作节点队列中拥有最高优先级的任务数进行统计。
所述步骤S3具体实现如下,
根据步骤S1统计的内核数及步骤S2获得的最高优先级任务数,分别设Nhr为节点队列中具有最高优先级的任务数,Ncore为相关节点的内核数;若Nhr>Ncore,则利用LIFO的方法来选择任务,若Nhr≤Ncore,则利用HRF的方法来选择任务。
以下为本发明的具体实施过程。
本发明实例提供电力系统中一种融合LIFO和HRF的任务调度方法。如图1所示,该方法主要包括如下步骤:
步骤11、对电力系统中使用的电脑集群中的内核数进行统计;
步骤12、根据优先级的定义,计算出节点队列中最高优先级的任务数;
步骤13、根据最高优先级任务数与内核数的关系确定任务调度的方法;
具体通过如下三个步骤来实现:
1)对所要使用的用电信息采集系统中涉及的电脑集群中的内核数目进行统计确定;
2)首先对优先级进行确定;在这之前先做出任务的DAG(有向无环图),然后进行优先级确定。优先级定义为一个任务在DAG中与目标任务的距离,对于目标任务来说,其优先级被定义为0,优先级为i的任务的前提任务的优先级被定义为i+1。如果一个任务是多个不同优先级任务的前提,那么此任务的优先级就是其中最大的任务优先级加1。然后对工作节点队列中拥有最高优先级的任务数进行统计;
3)根据最高优先级任务数和内核数来确定任务调度算法;我们定义Nhr为节点队列中具有最高优先级的任务数,Ncore为相关节点的内核数。如果Nhr>Ncore,利用LIFO的方法来选择任务,如果Nhr≤Ncore,利用HRF的方法来选择任务。
本发明实例的上述方案,通过将LIFO和HRF进行有效的结合,不仅可以利用到LIFO提高cache命中率的优点,而且可以缓解其“拖尾任务”问题导致的CPU利用率不够的问题,从而有效地提高了IO效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得系统执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。