一种基于多核系统任务分配的负载均衡方法

文档序号:6369670阅读:147来源:国知局
专利名称:一种基于多核系统任务分配的负载均衡方法
技术领域
本发明属于计算机多核技术领域,具体涉及ー种基于多核系统任务分配的负载均衡方法。
背景技术
在信息技术、人工智能技术和分布式并行计算技术飞速发展的今天,高性能数据处理系统在电信、金融、エ业和医疗等众多领域得到了广泛应用。未来将是ー个高效的数字化社会,信息量、计算量和复杂度迅速膨胀,大量的语音、数据、图像等信息需要计算机进行高速实时感知和处理。多年来,处理器性能的提升主要依赖于工作频率的提高,然而由于受到功耗及发热等因素的影响,这种做法已接近极限。在此背景下,多核处理器应运而生,并得到迅速发展,可以预见,通过增加片内处理器核的个数来提升处理器整体性能的做法将成为未来处理器发展的主流方向。随着多核处理器在大規模并行数据处理系统中应用,计算性能的提高将更依赖于处理器核数量的提升。为了充分利用这些数量庞大的处理器核,应用程序的进程/线程个数也将大幅増加;同时多核处理器也使并行系统的层次结构变得更为复杂,给传统的进程/线程分配和调度带来挑战,从而使多核处理器在快速应用以及发挥最大性能优势方面遇到了阻碍。为了有效利用多核处理器,提高任务并行处理能力和呑吐量,负载平衡是ー种能够通过恰当的任务分配与调度来进行资源优化利用,实施并行计算,提高计算机呑吐量和缩短任务响应时间的技术;传统的多核处理器负载平衡采用静态任务分配来实现。静态任务分配是在程序运行前就决定好任务的划分和分配。二次均分法是最常用的静态任务分配方法,将总任务按照參与计算的机器数量进行均分后分配给各台计算机。这种方法的实现代码都比较简单,适用于一般并行计算的环境。但是如果參与计算的各计算机能力相差较大,则计算时间取决于最慢那台计算机的处理时间,使得并行数据处理能力大大降低。在典型的云计算系统中,资源负载均衡是为了保障云计算系统中各个处理単元的计算量与自身性能之比尽量相等,从而提高资源的利用率。若云计算系统中某个处理単元负载过重,会导致无法继续提交任务結果。若其中某个处理单元负载过轻,会导致资源闲置。在云计算的软件任务处理过程中,由于处理単元的能力不对称,任务分配方式没有实时负载监控,负载结果无法及时反馈到负载均衡器进行负载调整。公开号为CN102063339A的中国专利公开了ー种基于云计算系统的资源负载均衡的方法,其通过量子遗传模拟退火的方法,计算运算单元负载权值,实现系统资源的负载均衡。将种群随机交叉遗传单元,在变异生成的种群中选取优选个体,然后将优先个体组成新 的种群。递归经过几代的进化,可以获得相对均匀的资源负载率。在对称多核处理器平台上,处理单元的负载和任务完成度实时回馈到负载均衡器,用以指导任务再分配,实现整个系统负载均衡的时间与任务的规模成正比快速收敛;但是,由于通过交叉变异产生优良的稳定优质的进化后代存在一定的概率,负载均衡需要在一定的迭代次数以后。

发明内容
针对现有技术所存在的上述技术问题,本发明提供了一种基于多核系统任务分配的负载均衡方法,通过实时动态监测各核的负载率,有效地提高了资源负载的均衡效率。一种基于多核系统任务分配的负载均衡方法,所述的多核系统包括一个主控子系统和多个数据处理子系统,所述的数据处理子系统包括多个多核处理器,所述的多核处理 器具有多个内核;该方法包括如下步骤(I)获取待分配的各任务的运算量,并将各任务按流程进行排序;(2)主控子系统实时监测多核系统的负荷信息,并根据任务的次序和运算量将所有任务在多核系统中进行预分配;多核系统的负荷信息包括各数据处理子系统的负载率、各多核处理器的负载率以及各内核的负载率;(3)主控子系统根据多核系统的负荷信息,按多核系统的层次不定时地对任务进行均衡划分。所述的步骤(I)中,将各任务按流程进行排序的原则为判断任一任务所需处理的数据的来源,若数据来源于其他任务处理后的输出,则所对应的这些其他任务并列排在该任务之前。所述的步骤(2)中,将所有任务在多核系统中进行预分配的过程为首先,根据任务的次序将所有任务分配给各数据处理子系统;然后,根据任务的次序将数据处理子系统分配到的所有任务分配给数据处理子系统中的各多核处理器;最后,根据任务的次序和运算量将多核处理器分配到的所有任务分配给多核处理器中的各内核进行处理。将多核处理器分配到的所有任务分配给多核处理器中的各内核进行处理的方法是按照任务的次序根据以下分配方式依次将多核处理器分配到的各任务分配给相应的内核进行处理根据当前任务的运算量,确定其所需内核的个数N,取多核处理器中负载率最低的前N个内核,并将当前任务平均分配给这N个内核进行处理;N为大于O的自然数,且N小于多核处理器内核的总个数。所述的步骤(3)中,对任务进行均衡划分的过程为首先,根据各数据处理子系统的负载率,求算出数据处理子系统的平均负载率,将负载率高于平均负载率的数据处理子系统所承担的部分任务划分给负载率低于平均负载率的数据处理子系统;然后,对于任一数据处理子系统,根据各多核处理器的负载率,求算出多核处理器的平均负载率,将负载率高于平均负载率的多核处理器所承担的部分任务划分给负载率低于平均负载率的多核处理器;最后,对于任一多核处理器,根据各内核的负载率,求算出内核的平均负载率,将负载率高于平均负载率的内核所承担的部分任务划分给负载率低于平均负载率的内核。所述的多核系统在完成任务处理后将得到的结果由内核回收并向上汇总到多核处理器,再由多核处理器将回收的结果汇总提交到数据处理子系统,各个数据处理子系统最后将结果汇总到主控子系统并输出。本发明方法通过实时动态监测处理単元的负载率来实现多核系统负载均衡,在多任务,高呑吐量,高计算复杂度,大規模并行运算的复杂环境下,能快速实现任务动态重组,实现系统资源的合理分配,通过各个层次上处理单元的负载均衡,有效控制整个系统的发热量。由于处理単元物理上的対称性,任务的指配和轮转切換非常容易。软件设计者可以充分利用系统的层次特性,从逻辑和运算角度对任务进行层次分解。在具体问题的处理上,软件设计者很容易计算出整个系统在特定问题上的处理时间及响应时间,从而对整个系统表现进行评估。软件设计者所面临的设计任务也由于动态重组框架的存在也轻松很多,并且本发明负载均衡方法具有大吞吐量、高并发能力和短响应时间的特点。


图I为多核系统的结构示意图。图2为本发明均衡方法的步骤流程图。图3为多核系统中任务分配,信息反馈及结果回收的流程示意图。图4为多核系统中加载单元与处理单元的连接示意图。
具体实施例方式为了更为具体地描述本发明,下面结合附图及具体实施方式
对本发明的时负载均衡方法进行详细说明。—种基于多核系统任务分配的负载均衡方法,多核系统为嵌入式多核处理器平台,如图I所示,其包括一个主控子系统和多个数据处理子系统,数据处理子系统包括多个多核处理器,多核处理器采用Tilera公司的TileGx系列多核处理器(Tile-Gx64),处理器具有64个内核,主频为L 2GHz ;;如图2所示,本实施方式具体包括如下步骤(I)获取任务的运算量,并对任务按流程排序。获取待分配的各任务的运算量,并将各任务按流程进行排序;具体排序的原则为判断任一任务所需处理的数据的来源,若数据来源于其他任务处理后的输出,则所对应的这些其他任务并列排在该任务之前。(2)动态监测各处理单元的负载率,并对任务进行预分配。主控子系统实时监测嵌入式多核处理器平台的负荷信息,嵌入式多核处理器平台的负荷信息包括各数据处理子系统的负载率、各多核处理器的负载率以及各内核的负载率;主控子系统将所有任务在嵌入式多核处理器平台中进行预分配首先,根据任务的次序将所有任务分配给各数据处理子系统;然后,根据任务的次序将数据处理子系统分配到的所有任务分配给数据处理子系统中的各多核处理器;最后,根据任务的次序和运算量将多核处理器分配到的所有任务分配给多核处理器中的各内核进行处理。对于多核处理器中的任务分配是按照任务的次序根据以下分配方式依次将多核、处理器分配到的各任务分配给相应的内核进行处理根据当前任务的运算量,确定其所需内核的个数N,取多核处理器中负载率最低的前N个内核,并将当前任务平均分配给这N个内核进行处理;N为大于O的自然数,且N小于多核处理器内核的总个数。如图3所示,由主控子系统对任务按照时间关键性(流程次序)和运算密集程度(运算量)实施分类,将任务在数字处理子系统、多核处理器、内核三种处理単元上进行分解,并且将任务按照任务复杂度、多核处理器的结构和系统结构进行分割。首先将总任务任务分配给各个数据处理子系统;然后子系统任务又可划分为处理器任务分配给各个处理器;处理器任务在处理器上又被划分为内核任务,分配给在各个内核。内核任务又被划分为线程任务,分配给内核上运行的各个并行线程;任务的预分配參考处理流水线以及资源分布等情況。(3)根据负载率,对任务进行均衡划分。 主控子系统根据嵌入式多核处理器平台的负荷信息,按平台的层次不定时地对任务进行均衡划分首先,根据各数据处理子系统的负载率,求算出数据处理子系统的平均负载率,将负载率高于平均负载率的数据处理子系统所承担的部分任务划分给负载率低于平均负载率的数据处理子系统;然后,对于任一数据处理子系统,根据各多核处理器的负载率,求算出多核处理器的平均负载率,将负载率高于平均负载率的多核处理器所承担的部分任务划分给负载率低于平均负载率的多核处理器;最后,对于任一多核处理器,根据各内核的负载率,求算出内核的平均负载率,将负载率高于平均负载率的内核所承担的部分任务划分给负载率低于平均负载率的内核。如图3所示,主控子系统实时统计各处理单元的资源消耗情况(负载率),对整个处理平台运行进行实时监控,进行负载平衡计算,然后动态规划计算资源,并向上层处理単元汇总信息。主控子系统通过实时监控,将处理单元的负载信息反馈汇总到主控子系统,按照任务负载最优化分配原则对各个层次上处理单元的任务再分配,实现各处理单元负载均衡运算资源的最优化配置。如图4所示,由于高度対称的多核处理器平台,在同一个运算层次上,每个处理单元都有相同的运算处理能力,通过对应的任务加载器,可以加载该运算层次上的各种算法,指定空闲的处理单元加载所需要的任务算法,简化了任务调度及运算资源最优化工作,实现高速任务调度。如图3所示,任务处理得到的最終結果由内核回收并向上汇总到多核处理器,再由多核处理器将回收的结果汇总提交到数据处理子系统,各个数据处理子系统最后将结果汇总到主控子系统,并输出最終数据結果。本实施方式可应用于超高速数码喷印、视频采集编码系统、远程监控中央系统及多通道脑电信号处理分析等多方面。以视频采集编码系统为例,多路视频数据H. 264编码软件系统,包括对P帧(关键帧)和I帧(非关键帧)数据的处理。按照时间关键性分解任务,对P帧包括帧间预测、帧内预测、运动补偿、离散余弦变换以及量化、熵编码和去块滤波等步骤。对I帧包括除去帧间预测以外的其余所有步骤。按照运算密集度来划分,帧间预测约占40%的运算量,帧内预测和去块滤波各占约15%的运算量,运动补偿占10%的运算量,熵编码占13%的运算量,DCT (离散余弦变换)和量化占7%的运算量。在数据处理子系统上,平均分配了视频采集的IO (输入输出)和网络资源,每个子系统具有多路视频输入接ロ和码流输出的网络接ロ。在处理器层次,每个多核处理器具有视频编码预处理模块,视频编码模块和码流传输模块。在内核层次上,每个内核都具备加载上述视频编码步骤的能力,能够灵活的完成视频编码步骤中的每一歩。在系统处理过程中,每个层次上都有对应的负载监控模块,对各个任务的负载实时监控,并汇总到上层的主控子系统。上层主控子系统通过统计量化下层子系统的负载情况,通过算法加载器调度不同的算法,将新的任务从负载较重的部分指派到负载相对较轻的部分,并且快速实现调度轮转。运算结果由任务收集模块将结果汇总向上层提交,按照等级层层上报到最終的网络输出。利用本实施方式,采用两块子板(数据处理子系统),每个子板包括两个64核的多核处理器。每个多核处理器的64个运算核具有高度対称性,系统可以方便的指定其中某个运算核对系统外部IO进行关联,作为负载监控模块或任务汇总模块。整个系统在没有任务 动态重组负载均衡的情况下运行可以实现20路1080P (1920*1080高清分辨率)的视频编码;对比运用软件任务动态重组重构后,可以实现24路1080P的视频编码,整个系统的平均资源消耗在75%左右。
权利要求
1.一种基于多核系统任务分配的负载均衡方法,所述的多核系统包括一个主控子系统和多个数据处理子系统,所述的数据处理子系统包括多个多核处理器,所述的多核处理器具有多个内核;该方法包括如下步骤 (1)获取待分配的各任务的运算量,并将各任务按流程进行排序; (2)主控子系统实时监测多核系统的负荷信息,并根据任务的次序和运算量将所有任务在多核系统中进行预分配; 多核系统的负荷信息包括各数据处理子系统的负载率、各多核处理器的负载率以及各内核的负载率; (3)主控子系统根据多核系统的负荷信息,按多核系统的层次不定时地对任务进行均衡划分。
2.根据权利要求I所述的基于多核系统任务分配的负载均衡方法,其特征在于所述的步骤(I)中,将各任务按流程进行排序的原则为判断任一任务所需处理的数据的来源,若数据来源于其他任务处理后的输出,则所对应的这些其他任务并列排在该任务之前。
3.根据权利要求I所述的基于多核系统任务分配的负载均衡方法,其特征在于所述的步骤(2)中,将所有任务在多核系统中进行预分配的过程为首先,根据任务的次序将所有任务分配给各数据处理子系统;然后,根据任务的次序将数据处理子系统分配到的所有任务分配给数据处理子系统中的各多核处理器;最后,根据任务的次序和运算量将多核处理器分配到的所有任务分配给多核处理器中的各内核进行处理。
4.根据权利要求3所述的基于多核系统任务分配的负载均衡方法,其特征在于将多核处理器分配到的所有任务分配给多核处理器中的各内核进行处理的方法是按照任务的次序根据以下分配方式依次将多核处理器分配到的各任务分配给相应的内核进行处理 根据当前任务的运算量,确定其所需内核的个数N,取多核处理器中负载率最低的前N个内核,并将当前任务平均分配给这N个内核进行处理;N为大于O的自然数,且N小于多核处理器内核的总个数。
5.根据权利要求I所述的基于多核系统任务分配的负载均衡方法,其特征在于所述的步骤(3)中,对任务进行均衡划分的过程为 首先,根据各数据处理子系统的负载率,求算出数据处理子系统的平均负载率,将负载率高于平均负载率的数据处理子系统所承担的部分任务划分给负载率低于平均负载率的数据处理子系统; 然后,对于任一数据处理子系统,根据各多核处理器的负载率,求算出多核处理器的平均负载率,将负载率高于平均负载率的多核处理器所承担的部分任务划分给负载率低于平均负载率的多核处理器; 最后,对于任一多核处理器,根据各内核的负载率,求算出内核的平均负载率,将负载率高于平均负载率的内核所承担的部分任务划分给负载率低于平均负载率的内核。
6.根据权利要求I所述的基于多核系统任务分配的负载均衡方法,其特征在于所述的多核系统在完成任务处理后将得到的结果由内核回收并汇总到多核处理器,再由多核处理器将回收的结果汇总提交到数据处理子系统,各个数据处理子系统最后将结果汇总到主控子系统并输出。
全文摘要
本发明公开了一种基于多核系统任务分配的负载均衡方法,包括(1)获取任务的运算量,并对任务按流程排序;(2)动态监测各处理单元的负载率,并对任务进行预分配;(3)根据负载率,对任务进行均衡划分。本发明方法通过实时动态监测处理单元的负载率来实现多核系统负载均衡,在多任务,高吞吐量,高计算复杂度,大规模并行运算的复杂环境下,能快速实现任务动态重组,实现系统资源的合理分配,通过各个层次上处理单元的负载均衡,有效控制整个系统的发热量。
文档编号G06F9/50GK102681902SQ20121014986
公开日2012年9月19日 申请日期2012年5月15日 优先权日2012年5月15日
发明者田翔, 陈耀武, 韩业强 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1