CN101582043A - 一种异构计算***动态任务分配方法 - Google Patents
一种异构计算***动态任务分配方法 Download PDFInfo
- Publication number
- CN101582043A CN101582043A CNA2008100375632A CN200810037563A CN101582043A CN 101582043 A CN101582043 A CN 101582043A CN A2008100375632 A CNA2008100375632 A CN A2008100375632A CN 200810037563 A CN200810037563 A CN 200810037563A CN 101582043 A CN101582043 A CN 101582043A
- Authority
- CN
- China
- Prior art keywords
- processor
- task
- computing system
- heterogeneous computing
- subtask
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
本发明涉及一种异构计算***动态任务分配方法,异构计算***由一组异构的处理机共同协作完成应用任务,其将任务分解成一组并行的子任务,并按执行顺序调度到各处理机,本方法通过处理器对待处理任务的动态选择,实现了异构计算***中任务的动态分配和任务的优化分配。与现有技术相比,本发明从动态的角度考虑了异构计算***的优化调度问题,利用群体智能技术,提出了一种基于异构计算***的优化调度方法,该方法能够根据异构计算***中不同处理器的处理能力进行动态的任务分配,并考虑了其中可能出现的竞争问题;本发明动态的考虑处理器的计算能力,处理器的负载情况,可以进一步加快异构计算***的执行时间。
Description
技术领域
本发明涉及异构计算***的优化调度技术,特别是涉及一种异构计算***动态任务分配方法。
背景技术
异构计算***HCS(Heterogeneous Computing System)是利用一组异构的计算机共同协作完成某一应用任务。将任务分解成多个并行子任务,按执行顺序调度到HCS的各处理机,这样不但满足了不同类型的应用,也开发利用了***中各种机器的计算能力,从而使***有较高的性能。以往人们认为增加更多机器就可以提高***的性能。但是在很多情况下,使用数量更多的机器并不能达到预期的效果,因为即使选用大量的机器,但是由于各种机型的计算能力不同,从而使得各子任务间在计算过程中相互等待,延长了整个任务的执行时间,从而降低了***的性能,为此人们在考虑如何合理的分配任务使得异构计算***的性能能够很好的发挥。
发明内容
本发明所要解决的技术问题就是为了克服上述现有技术存在的缺陷而提供一种异构计算***动态任务分配方法。
本发明的目的可以通过以下技术方案来实现:一种异构计算***动态任务分配方法,异构计算***由一组异构的处理机共同协作完成应用任务,其将任务分解成一组并行的子任务,并按执行顺序调度到各处理机,其特征在于,该方法包括以下步骤:
a.为各处理机设置一个进队列门限值和一个停止进队列门限值;
b.分配任务给各处理机,执行步骤如下:
(b1)计算处理机上的等待队列的长度值;
(b2)判断该长度值是否小于该处理机的进队列门限值,若是,则执行步骤(b3);
(b3)计算子任务组中各子任务被分配给该处理机中的概率;
(b4)将概率最大的子任务加入该处理机的等待队列,并将该子任务从子任务组中删除;
(b5)计算该处理机上的等待队列的长度值;
(b6)判断该长度值是否小于该处理机的停止进队列门限值,若是,则返回步骤(b3),若否,则返回步骤(b1);
c.在多个处理机竞争同一个子任务时,计算该多个处理机的负载强度,将该子任务分配给负载强度最小的处理机。
与现有技术相比,本发明从动态的角度考虑了异构计算***的优化调度问题,利用群体智能技术,提出了一种基于异构计算***的优化调度方法,该方法能够根据异构计算***中不同处理器的处理能力进行动态的任务分配,并考虑了其中可能出现的竞争问题;本发明动态的考虑处理器的计算能力,处理器的负载情况,可以进一步加快异构计算***的执行时间。
附图说明
图1为本发明的流程图。
图2为本发明的实施例的采用一台台式机时执行时间比较的比较示意图;
图3为本发明的实施例的采用六台台式机时执行时间比较的比较示意图;
图4为本发明的实施例的采用不同测试环境下的执行时间比较示意图。
具体实施方式
下面结合附图对本发明作进一步说明。
如图1~4所示,一种异构计算***动态任务分配方法,异构计算***由一组异构的处理机共同协作完成应用任务,其将任务分解成一组并行的子任务,并按执行顺序调度到各处理机,该方法包括以下步骤:
a.为各处理机设置一个进队列门限值和一个停止进队列门限值;
b.分配任务给各处理机,执行步骤如下:
(b1)计算处理机上的等待队列的长度值;
(b2)判断该长度值是否小于该处理机的进队列门限值,若是,则执行步骤(b3);
(b3)计算子任务组中各子任务被分配给该处理机中的概率;
(b4)将概率最大的子任务加入该处理机的等待队列,并将该子任务从子任务组中删除;
(b5)计算该处理机上的等待队列的长度值;
(b6)判断该长度值是否小于该处理机的停止进队列门限值,若是,则返回步骤(b3),若否,则返回步骤(b1);
c.在多个处理机竞争同一个子任务时,计算该多个处理机的负载强度,将该子任务分配给负载强度最小的处理机。
异构计算***由一系列不同的处理机P={p1,p2,p3Lpn}组成,将任务分解为一系列的子任务T={t1,t2,t3Ltm},假设这些任务是相互独立的,一般n<m。需要解决的问题是如何根据处理机的不同处理能力,合理的分配子任务,使处理任务T的时间尽可能的短,发挥异构计算***的性能优势。
参数定义
任务ti的优先级记作βi,由于是异构***定义V(ti,pj)表示任务ti在处理机pj上运行的时间,定义Tp(ti,pj)表示任务ti通过网络分配到处理机pj上执行时,所需要的传输时间。Comp(ti,pj)表示任务ti在pj上的完成时间,那么
Comp(ti,pj)=V(ti,pj)+Tp(ti,pj)(1)
W(ti)表示任务ti从分配给处理器到完成所用的时间,即ti的等待时间。L(P,pj)表示处理机pj上等待执行队列的长度,其中,集合P表示处理机pj中的任务,则有
Γj表示处理机pj完成所有任务的时间,集合S表示处理机pj中处理的所有任务的集合。那么有
定义Γ为整个任务的完成时间,我们的目标是最小化Γ,即
Γ=min{max1≤j≤nΓj}(4)
动态任务分配模型
异构计算***如何分配任务可以采用蜂群任务分配方式,如处理机对应蜜蜂,任务对应蜜蜂觅食、照顾后代等工作,任务分配对应蜜蜂的任务分配。因此,蜜蜂和环境之间的信息交流模型可以被用于异构计算***的任务调度中,以实现动态的、自适应的任务分配方式。
在异构计算***任务分配的蜂群算法中,对处理器的等待队列规定一个进队门限值Lin和停止进队门限值Lstop,当该处理器的等待队列的长度小于或等于进队门限值Lin时,则从未分配的任务中挑选任务加入该处理器的等待队列,当该处理器的等待队列长度大于或等于Lstop时,停止该处理器的等待队列加入任务。
每个处理器pj对***中尚未分配资源的任务都有一个对应的反应阙值。我们用一组m×n矩阵来表示。
其中αij表示处理器pj对任务ti的相应门限值,αij与该任务在处理器pj上的执行时间V(ti,pj),以及任务传输到处理器pj上的传输时间Tp(ti,pj)有关,其公式如下
αij=ζ+u×Tp(ti,pj)+l×V(ti,pj)(5)
其中:ζ,u,l为常数。
从式(5)中可以看出,任务执行时间和数据传输时间越长,反应阙值越大,接受该任务的可能性越小;任务执行时间和数据传输时间越长,反应阙值越小,接收该任务的可能性越大。
同样,尚未分配的任务对可供选择使用的处理器会发出刺激信号,用向量B=(θ1θ2L θn)来表示。其中θi表示任务发出的刺激信号,与任务等待时间W(ti)、以及任务的优先级βi有关,其公式如下
θi=βi+h×W(ti)(6)
其中:h为常数。
从式(6)中可以看出,任务等待时间W(ti)越长,任务的优先级βi优先级越大则该任务发出的刺激信号越强,能够被优先选入处理器的负载队列。
那么,在任务分配时可以根据各个处理器的反应阙值和未完成的任务所发出的刺激信号来选择任务进入处理器的等待队列。可以按概率
根据式(7)我们可以得出以下结论,任务ti发出的刺激信号越强,或处理器pj的反应阙值越低,则任务被分配到该处理器的可能性越大。
下面给出了各处理器上选择任务的步骤:
Step1.计算该处理器上的等待对列L的长度,如果L<Lin则继续;
Step2.根据公式(5),计算所有为调度任务的刺激信号θi,根据公式(6),计算该处理器的反应阙值αij,根据公式(7),计算出调度任务被选入该处理器的概率P(αij,θi);
Step3.选出概率P(αij,θi)最大的一组(ti,pj),ti进入该处理器的等待对列,将ti从T中删除;
Step4.计算该处理器的等待对列L的长度,判断,若L<Lstop则转Step2,否则转Step1;
在实际情况下,会出现多个处理器竟争同一个任务的情况,在文献[1]中利用蜂群自组织的社会层次概论来解决多个蜜蜂的竞争问题,即参加竞争的蜜蜂被赋予了一个强度值,强度值越小,其获胜的概率越大。在本文中,我们可以通过衡量各个处理器的负载大小在竟争时比较处理器的强度。处理器Pj的强度Wj定义为该处理器上的待执行队列的长度与所竞争的任务ti在该处理器上的完成时间之和。即
Wj=L(pj)+Comp(ti,pj)(8)
在出现竞争时取强度值最小的处理器。
本实施例对本发明的方法进行试验,并与现有的平均分配方法(即不考虑处理器处理能力和负载状况,而把工作量平均分配给各个处理器)相比较,本试验运行在PVM(Parallel Virtual Machine)3.4.3异构计算环境中。PVM支持在虚拟机中自动加载任务运行,任务间可以相互通信以及同步。在PVM***中允许用户指定任务被加载的结点。实验时,用1台DELL服务器PowerEdge 1800(CPU:Xeon 3.2GHz内存:1G),作为主机。六台台式机作为节点机,其中一台CPU为Pentium41.5GHz,内存为1024MB;3台CPU为Pentium4866MHz,内存为512MB;2台CPU为Pentium3500MHz,内存为256MB。
进行模拟实验时,6台节点机依次增加,每增加一台节点机,测试一组数据,实验数据如表1所示。
表1:异构***中不同处理器下两种模型的执行时间比较
图2为只有一台节点机时的执行时间比较,此时两种实验方法的实验结果接近,本文模型仅比平均分配法节省了23.34s(3.2%)。随着实验节点机的增加,本文模型的优势越来越突出,如图3所示,是采用6台台式机时两种模型执行时间比较,本文模型比平均分配方法执行时间节省了101.42s(17.55%)。
图4是异构***中不同测试环境下两种模型的执行时间比较,从图4可以明显看出,从第四台节点机增加到第五台节点机时,平均分配法的执行时间并没有明显减少,只节省6.90s,而本文模型的执行时间节省了23.6s。原因是应为第五台节点机的计算能力与前四台节点机相比较有很大的差距,平均分配算法不考虑机器性能,只是将任务简单地平均分配给各个节点机,在处理相同数据时第五台节点机的执行时间要比前四台节点机的执行时间多,从而导致增加了一台机器,执行时间并没有明显减少。而本文算法,考虑了各节点机的处理能力,根据处理器的负载情况,动态合理的分配任务,缩短整个任务的完成时间。
本发明属于对利用群体智能技术的应用。群体智能(Swarm Intelligence)是指由多个简单个体组成的群体,具有通过相互之间的简单协作完成问题求解的能力。近十年来,应用群体智能解决各种问题的研究领域越来越受到人们的关注。在一群社会昆虫中出现的集体行为被称为群体智能,社会昆虫群体使用智能的、分布式的方法共同解决复杂的问题,这些问题是个体无法解决的。一些学者根据对昆虫群体行为的研究结果提出了用于组合优化问题的求解算法和理论,如蚁群算法、蜂群算法等,并在许多领域中得到了应用。异构计算***中的任务调度问题本身也属于组合优化问题,其中的并行子任务和各个处理器可以视为简单的个体,相互之间通过协调来实现最优。
Claims (1)
1.一种异构计算***动态任务分配方法,异构计算***由一组异构的处理机共同协作完成应用任务,其将任务分解成一组并行的子任务,并按执行顺序调度到各处理机,其特征在于,该方法包括以下步骤:
a.为各处理机设置一个进队列门限值和一个停止进队列门限值;
b.分配任务给各处理机,执行步骤如下:
(b1)计算处理机上的等待队列的长度值;
(b2)判断该长度值是否小于该处理机的进队列门限值,若是,则执行步骤(b3);
(b3)计算子任务组中各子任务被分配给该处理机中的概率;
(b4)将概率最大的子任务加入该处理机的等待队列,并将该子任务从子任务组中删除;
(b5)计算该处理机上的等待队列的长度值;
(b6)判断该长度值是否小于该处理机的停止进队列门限值,若是,则返回步骤(b3),若否,则返回步骤(b1);
c.在多个处理机竞争同一个子任务时,计算该多个处理机的负载强度,将该子任务分配给负载强度最小的处理机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100375632A CN101582043A (zh) | 2008-05-16 | 2008-05-16 | 一种异构计算***动态任务分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100375632A CN101582043A (zh) | 2008-05-16 | 2008-05-16 | 一种异构计算***动态任务分配方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101582043A true CN101582043A (zh) | 2009-11-18 |
Family
ID=41364198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100375632A Pending CN101582043A (zh) | 2008-05-16 | 2008-05-16 | 一种异构计算***动态任务分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101582043A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467415A (zh) * | 2010-11-03 | 2012-05-23 | 大唐移动通信设备有限公司 | 一种业务面任务处理方法及设备 |
CN102004670B (zh) * | 2009-12-17 | 2012-12-05 | 华中科技大学 | 一种基于MapReduce的自适应作业调度方法 |
WO2013001401A1 (en) * | 2011-06-28 | 2013-01-03 | International Business Machines Corporation | Unified, adaptive ras for hybrid systems |
CN103197976A (zh) * | 2013-04-11 | 2013-07-10 | 华为技术有限公司 | 异构***的任务处理方法及装置 |
CN103530183A (zh) * | 2013-10-24 | 2014-01-22 | 湖南大学 | 大规模异构计算***中任务计算量具有随机性的调度方法 |
CN107291544A (zh) * | 2017-08-03 | 2017-10-24 | 山东浪潮云服务信息科技有限公司 | 任务调度的方法及装置、分布式任务执行*** |
CN108319503A (zh) * | 2018-02-27 | 2018-07-24 | 东莞中子科学中心 | 分布式异构计算方法及*** |
CN109445928A (zh) * | 2018-11-14 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种访问请求处理方法、装置、设备及可读存储介质 |
CN109788046A (zh) * | 2018-12-29 | 2019-05-21 | 河海大学 | 一种基于改进蜂群算法的多策略边缘计算资源调度方法 |
CN109857563A (zh) * | 2019-02-18 | 2019-06-07 | 重庆西部汽车试验场管理有限公司 | 任务执行方法、装置和任务执行*** |
CN110308988A (zh) * | 2019-05-17 | 2019-10-08 | 开放智能机器(上海)有限公司 | 一种应用于异构计算平台的动态调度方法及*** |
-
2008
- 2008-05-16 CN CNA2008100375632A patent/CN101582043A/zh active Pending
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004670B (zh) * | 2009-12-17 | 2012-12-05 | 华中科技大学 | 一种基于MapReduce的自适应作业调度方法 |
CN102467415A (zh) * | 2010-11-03 | 2012-05-23 | 大唐移动通信设备有限公司 | 一种业务面任务处理方法及设备 |
CN102467415B (zh) * | 2010-11-03 | 2013-11-20 | 大唐移动通信设备有限公司 | 一种业务面任务处理方法及设备 |
WO2013001401A1 (en) * | 2011-06-28 | 2013-01-03 | International Business Machines Corporation | Unified, adaptive ras for hybrid systems |
GB2506048B (en) * | 2011-06-28 | 2020-10-14 | Ibm | Unified, adaptive RAS for hybrid systems |
CN103562873A (zh) * | 2011-06-28 | 2014-02-05 | 国际商业机器公司 | 用于混合***的统一的自适应ras |
GB2506048A (en) * | 2011-06-28 | 2014-03-19 | Ibm | Unified, adaptive RAS for hybrid systems |
US8788871B2 (en) | 2011-06-28 | 2014-07-22 | International Business Machines Corporation | Unified, workload-optimized, adaptive RAS for hybrid systems |
CN103562873B (zh) * | 2011-06-28 | 2016-10-26 | 国际商业机器公司 | 用于在计算机***中处理数据的方法和*** |
CN103197976A (zh) * | 2013-04-11 | 2013-07-10 | 华为技术有限公司 | 异构***的任务处理方法及装置 |
CN103530183B (zh) * | 2013-10-24 | 2016-11-02 | 湖南大学 | 大规模异构计算***中任务计算量具有随机性的调度方法 |
CN103530183A (zh) * | 2013-10-24 | 2014-01-22 | 湖南大学 | 大规模异构计算***中任务计算量具有随机性的调度方法 |
CN107291544A (zh) * | 2017-08-03 | 2017-10-24 | 山东浪潮云服务信息科技有限公司 | 任务调度的方法及装置、分布式任务执行*** |
CN107291544B (zh) * | 2017-08-03 | 2020-07-28 | 浪潮云信息技术股份公司 | 任务调度的方法及装置、分布式任务执行*** |
CN108319503A (zh) * | 2018-02-27 | 2018-07-24 | 东莞中子科学中心 | 分布式异构计算方法及*** |
CN108319503B (zh) * | 2018-02-27 | 2024-06-11 | 东莞中子科学中心 | 分布式异构计算方法及*** |
CN109445928A (zh) * | 2018-11-14 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种访问请求处理方法、装置、设备及可读存储介质 |
CN109788046A (zh) * | 2018-12-29 | 2019-05-21 | 河海大学 | 一种基于改进蜂群算法的多策略边缘计算资源调度方法 |
CN109788046B (zh) * | 2018-12-29 | 2020-06-16 | 河海大学 | 一种基于改进蜂群算法的多策略边缘计算资源调度方法 |
CN109857563A (zh) * | 2019-02-18 | 2019-06-07 | 重庆西部汽车试验场管理有限公司 | 任务执行方法、装置和任务执行*** |
CN109857563B (zh) * | 2019-02-18 | 2021-04-27 | 重庆西部汽车试验场管理有限公司 | 任务执行方法、装置和任务执行*** |
CN110308988A (zh) * | 2019-05-17 | 2019-10-08 | 开放智能机器(上海)有限公司 | 一种应用于异构计算平台的动态调度方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101582043A (zh) | 一种异构计算***动态任务分配方法 | |
CN109800071A (zh) | 一种基于改进遗传算法的云计算任务调度方法 | |
CN110096349A (zh) | 一种基于集群节点负载状态预测的作业调度方法 | |
CN104657221A (zh) | 一种云计算中基于任务分类的多队列错峰调度模型及方法 | |
CN100576177C (zh) | 基于QoS约束的双向分级网格资源调度方法 | |
US9239734B2 (en) | Scheduling method and system, computing grid, and corresponding computer-program product | |
CN105446816B (zh) | 一种面向异构平台的能耗优化调度方法 | |
CN103593323A (zh) | 一种MapReduce任务资源配置参数的机器学习方法 | |
CN103927225A (zh) | 一种多核心架构的互联网信息处理优化方法 | |
CN103677990B (zh) | 虚拟机实时任务的调度方法、装置和虚拟机 | |
CN107168770A (zh) | 一种低能耗的云数据中心工作流调度与资源供给方法 | |
CN110347504A (zh) | 众核计算资源调度方法及装置 | |
CN114217966A (zh) | 基于资源调整的深度学习模型动态批处理调度方法和*** | |
Hao et al. | Adaptive energy-aware scheduling method in a meteorological cloud | |
CN106802822A (zh) | 一种基于飞蛾算法的云数据中心认知资源调度方法 | |
Muthu et al. | Optimized scheduling and resource allocation using evolutionary algorithms in cloud environment | |
CN109976873A (zh) | 容器化分布式计算框架的调度方案获取方法及调度方法 | |
US20240004707A1 (en) | Methods and systems for energy-efficient scheduling of periodic tasks on a group of processing devices | |
Abba et al. | Deadline based performance evaluation of job scheduling algorithms | |
CN105117281A (zh) | 一种基于任务申请信号和处理器内核执行代价值的任务调度方法 | |
CN112506640B (zh) | 一种用于加密运算芯片的多处理器架构及调配方法 | |
Yu et al. | Lattice-based scheduling for multi-FPGA systems | |
Reuther et al. | Technical challenges of supporting interactive HPC | |
Li et al. | Cress: Dynamic scheduling for resource constrained jobs | |
Lou et al. | Dynamic scheduling strategy for testing task in cloud computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20091118 |