CN102749987B - 计算机同构集群系统高能效资源分配方法 - Google Patents
计算机同构集群系统高能效资源分配方法 Download PDFInfo
- Publication number
- CN102749987B CN102749987B CN201210204880.5A CN201210204880A CN102749987B CN 102749987 B CN102749987 B CN 102749987B CN 201210204880 A CN201210204880 A CN 201210204880A CN 102749987 B CN102749987 B CN 102749987B
- Authority
- CN
- China
- Prior art keywords
- task
- bunch
- processor
- energy consumption
- energy
- 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.)
- Expired - Fee Related
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种计算机集群系统资源分配方法,该方法包括如下步骤一、读取实验所用到的各种重要参数信息。二、获取初始基本分簇结果集合Φ(G)。三、优化初始基本分簇结果,得到最佳分簇结果。四、任务簇映射。五、处理器动态电压调节。本发明针对同构集群系统中的能量优化问题,将基于分簇的调度算法和DVS技术结合起来,在满足系统性能要求的同时优化系统能耗。
Description
技术领域
本发明涉及计算机技术领域,具体地指一种计算机同构集群系统高能效资源分配方法。
背景技术
随着微电子、互连网络和自由软件等技术的迅速发展,以集群架构搭建的高性能计算机系统技术也日益成熟,其应用也越来越普及,这就使得集群系统无论是在计算性能还是在系统规模上都得到了较大的发展。由于集群系统具有极高的性价比,因此越来越多的用户愿意选择基于集群架构的高性能计算机系统作为其计算平台。然而,随着系统规模的日益扩大,随之而来的系统能耗问题也愈加突出,高性能计算平台提供强大的计算性能是以消耗巨大的能量为代价的。根据研究调查资料显示,高性能计算平台已经出现了能源危机。在节能环保的时代环境下,如何构建一台绿色节能的集群计算机系统成为众多厂商和研究机构关注的重点和时代的需求。
集群系统作为一种并行分布式处理系统,由很多连接在一起的独立计算机组成,但整体对外像一个单独集成的计算资源一样协同工作,因此对于用户来说就像一个独立的计算系统。自20世纪90年代以来,随着PC机性能的显著提高和价格的日益下降,高速网络的发展,以及集群软件的日益成熟,集群系统已经成为高性能计算的主流平台,为计算密集型和通信密集型任务提供各种计算需求。
集群系统已经在工商业等诸多领域得到广泛应用。然而,集群系统在提供强大计算能力的同时也消耗了巨大的能量。而且随着越来越多的并行应用被更广泛地应用于科学研究和商业应用中,巨大的能量消耗正日益成为集群技术发展的主要阻碍因素。因此,如何有效地降低集群系统中的能量消耗是一个非常值得研究的问题。在集群系统中,调度大规模并行应用时,因其高通信延时和高能耗而存在着很大的挑战。因此,缩短调度长度和节约能耗是设计友好的商业集群系统的两个主要着眼点。
用有向无环图(Directed Acyclic Graph,DAG)来表示并行任务调度问题一直是学术界的研究热点,并行任务调度问题已经被证明是NP完全问题,即Non-deterministic Polynomial的问题,即多项式复杂程度的非确定性问题,在国内外引起了广泛的研究。调度的目标是要在满足任务优先约束关系的前提下,根据适当的分配策略确定一种分派和执行顺序,将可并行执行的任务合理分配到各处理机上有序地执行,以达到减少总的执行时间的目的。在集群、网格等分布式系统中,能量的消耗主要集中于CPU和互联设备上,所以系统中的能耗主要由节点计算能耗和节点间通信能耗构成。
在调度具有约束关系的并行任务时,任务复制策略是改善其系统性能的一种行之有效的方法。这主要是因为通过运用任务复制策略,各处理器间不必要的通信延时被消除了,因而极大的降低了系统总体的通信开销。一般情况下,对于同一个有向无环图(DAG),较之于未运用复制策略的分簇算法,采用了复制策略的分簇算法总是具有更好的系统性能。该方法虽然可以有效地降低任务调度长度,节省通信能耗,但同时也会增加复制任务的计算能耗,因此在节能调度中需慎重考虑。
动态电压调节(Dynamic Voltage Scaling,DVS)技术是一种新型硬件节能机制。其基本思想是在不影响处理器正常运行的情况下动态地调节处理器执行电压和频率,使得处理器不总以最高电压工作,从而起到降低处理器能耗的目的。目前绝大多数处理器都用CMOS技术制造,而且支持多种处理器频率和电压设置。CMOS电路的功耗正比于时钟频率和电压的平方,即每个时钟周期的能量消耗正比于电压的平方。对于一个任务来说,完成它所需要的时钟周期是固定的,所消耗的能量与电压的平方成正比,通过降低电压就可以降低能耗。虽然时钟频率与电压之间的线性关系,降低电压会调低时钟频率,增加任务的完成时间,但可以利用任务的空闲时间降低处理器电压或频率,在不影响其他任务执行的前提下降低系统能耗。在电压调节过程中,电压管理芯片能够执行微小的电压调整,并且能在极短的时间内(几十微秒内)完成电压的调整。动态电压调节(DVS)技术已经被证明是设计低功耗系统最有效的方法之一,并且已成为一种比较成熟的节能机制。近些年来,许多研究者已经成功地将DVS机制运用到了基于能耗感知的集群计算当中。
在先前的工作中,研究人员要么忽略了网络通信过程中的能耗,要么考虑问题过于理想化而不符合系统实际工作情况,要么在给定系统性能的情况下不能最大化节省能耗。近年来,基于集群上的节能调度技术逐渐引起人们的关注,系统能量优化成为研究人员关注的焦点。目前,国内外有关同构集群系统环境下基于性能和能耗的研究主要有:
美国辛辛那提大学的D.P.Agrawal等人在同构集群系统中提出了一种基于任务复制的调度算法TDS,该算法尽可能地复制任务前驱以改进系统性能。
见:Sekhar Darbha and D. P. Agrawal. “Optimal Scheduling Algorithm for Distributed-Memory Machines,” IEEETrans. Parallel and Distributed Systems, 9(1):87-95, 1998。
IEEE的Michael A.Palis等人提出了一种基于并行分布式架构的任务分簇调度算法,该算法在分簇过程中将复制考虑进去,以期获得更优的系统性能。
见:Michael A. Palis, Jing-Chiou Liou and David S. L. Wei. “Task Clustering and Scheduling for Distributed Memory Parallel Architectures,” IEEE TransactionsParallel and Distributed Systems, 7(1): 46-55, 1996。
美国奥本大学的宗子良等人针对任务复制所产生的额外能量开销过高的问题,提出了一种基于任务复制的节能调度算法,该算法设置了一个随机的阈值来控制任务复制,即选择性地复制任务最佳前驱来平衡系统的性能和能耗,以期同时改善系统的性能和能效。
见:Ziliang Zong, Adam Manzanares, Xiaojun Ruan and Xiao Qin. EAD and PEBD: Two Energy-Aware DuplicationScheduling Algorithm for Parallel Tasks on HomogeneousClusters. IEEE TRANSACTIONS ON COMPUTER,60(3):360-374,2011。
清华大学的林闯等人将能量看成一种系统资源,从资源分配和任务管理的角度对绿色网络的机制和策略进行了综述,介绍了模型方法在绿色评价中的应用,提出了基于随机模型的绿色评价框架,为构建绿色网络和节能机制的评价体系奠定了基础。
见:林闯,田源,姚敏. 绿色网络和绿色评价:节能机制、模型和评价. 计算机学报, 34(4):593-612,2011。
国防科技大学的易会战等人在分析了并行处理提高能效的基本原理,给出了并行处理的时间开销和能量开销模型,并基于模型的分析,给出了动态电压调节(DVS)改善并行系统能效的空间。
见:易会战,刘永鹏. 改善系统能量效率的体系结构方法. 并行处理. 计算机学报, 32(12):2475-2481, 2009。
澳大利亚Sydeny大学的Lee等人中提出了一个基于DVS技术的调度算法,该算法旨在最小化处理器能耗,并提出了一个目标函数来平衡性能和能耗。
见:Young Choon Lee and Albert Y. Zomaya. MinimizingEnergy Consumption for Precedence-constrained Applications Using Dynamic Voltage Scaling. In 9th IEEE/ACM International Symposium on Cluster Computing and the Grid, pp. 92-99, 2009。
印第安纳大学的Wang提出了一种基于DVS技术的节能方法,该方法在不影响其他任务执行的情况下,通过探索非关键任务的空闲时间来降低处理器电压以节省能耗。
见:Lizhe Wang, Gregor von Laszewski, Jay Dayal andFugang Wang. Towards energy aware scheduling for precedence constrainedparallel tasks in a cluster with dvfs.Proceedings ofthe 2010 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing, pp。368-377, 2010。
山东大学的马燕等人提出了一种能量最小化的任务调度算法,该算法利用整数线性规划(Integr Linear Programming,ILP)方法选择处理器电压,对支持DVS技术的集群系统中的能耗节省非常有效。
见:MA Yan, GONG Bin and ZOU Li-da. Energy-EfficientScheduling Algorithm of Task Dependent Graph on DVS-Unabled Cluster System. In 10th IEEE/ACM InternationalConference on Grid Computing, pp. 217-224, 2009。
国防科技大学的贺小川等人针对可变电压处理器上运用抢占阈值调度策略的周期性任务集合,将DVS节能调度算法与延迟调度算法结合起来,提出了一种两阶段节能调度算法,该算法能够进一步降低抢占阈值任务调度算法的功耗。
见:贺小川,贾焰. 抢占阈值调度的功耗优化. 计算机学报, 31(11):2060-2071,2008。
文献Task Clustering and Scheduling for Distributed Memory Parallel Architectures, IEEE Transactions Paralleland Distributed Systems, 7(1): 46-55, 1996。公开了COMPUTE-E-VALUE(v,G)算法。
综上所述,以往的调度方法大部分针对性能或能耗的某一部分(系统能耗包括处理器能耗和网络能耗两部分)进行了改进或优化。存在的不足之处有:1.有的方法只考虑性能而完全忽略能耗;2.有些基于任务复制的节能调度方法利用阈值对任务复制进行控制,但所给定的阈值是随机设置的,不能根据并行任务和系统环境获得符合性能和能效的最佳或近似最佳的阈值;③有的方法虽然既考虑了性能又考虑了处理器能耗,但忽略了网络通信能耗,或者即便考虑了通信能耗,但却没有将网络延时考虑进去。
发明内容
本发明的目的就是要提供一种计算机同构集群系统高能效资源分配方法,该方法可以利用阈值有效地控制分簇过程中复制活动的进行,在保证系统性能的同时能够与DVS技术有效地结合起来,从而在满足系统性能要求的前提下有效地节约系统能耗。
为实现此目的,本发明所设计的计算机同构集群系统高能效资源分配方法,其特征在于,它包括如下步骤:
步骤1.1:DSP(Digital Signal Processing,数字信号处理)的程序读入并行任务有向无环图文件,还读入处理器参数信息、网络参数信息以及平均通信计算比率信息;
步骤2.1:通过拓扑排序读入并行任务有向无环图,生成拓扑排序序列;
步骤2.2:通过COMPUTE-E-VALUE(v,G)算法,按照所述拓扑排序序列从入口任务v1开始,计算每个任务的最早开始时间下界e值直至出口任务vn结束,从而获得各任务的e值和相应的簇;
步骤2.3:按照所述各任务的e值非降序排列每个簇中的任务;
步骤3.1:逆拓扑排序所有上述任务节点,生成有序序列queqe;
步骤3.2:所述有序序列queqe中的第一个节点v被标记为“1”,并将第一个节点v相应的簇C(v)放入集合Φ(G)中,同时标记这个簇中的所有节点已经被分簇,即这个簇中的所有节点已经在集合Φ(G)中;
步骤3.3:标记所有满足以下条件的节点u为“1”:存在边arc(u,w),其中
且w∈C(v),并将上述满足条件的节点u中相应的簇放入集合Φ(G)中,同时标记这个簇中的所有节点已经被分簇,即上述簇中的所有节点已经在集合Φ(G)中;
步骤3.4:对经过上述步骤3.2和步骤3.3后没有被标记为“1”的节点中的第一个节点标记为“1”,并将上述节点相应的簇C(v)放入集合Φ(G)中;然后按照步骤3.3中的方式对满足以下条件的节点标记为“1”:存在边arc(u,w),其中
且w∈C(v),并将上述满足条件的节点u中相应的簇放入集合Φ(G)中,同时标记这个簇中的所有节点已经被分簇,即上述簇中的所有节点已经在集合Φ(G)中;
步骤3.5:重复步骤3.4,直到所有节点都被标记分簇为止;
步骤4.1:计算各个任务的计算能耗和所有的具有优先约束关系的任意两个任务之间的通信能耗;
其中,计算能耗的计算方法为:
公式(3)中eni表示任务vi执行时所产生的计算能耗,PNhighest表示最高功耗,ti表示任务vi在处理器上的执行时间,
任务集V中所有任务的计算能耗:
下面公式(5)中PNidle代表处理器的空闲功耗,即处理器不工作时的功率,因此,有了空闲功耗和空闲时间,就可以得到任一处理器的空闲能耗,其中,n表示任务个数,xij 表示任务i被分配到了处理器j上:
公式(5)中makespan表示所有任务最终都被执行完毕的时间,也即最后一个任务被执行完毕的时间,如果m表示总的处理器个数,所有节点总的空闲能耗:
整个并行应用总的计算能耗:
所述整个网络的通信能耗:
公式(8)中,PL表示网络连接功耗,而且,如果任务vi被分配到处理器p上,xip为“1”, 否则为“0”;如果任务vj被分配到处理器q上,xjq为“1”, 否则为“0”, cij是信息传递时间,即两个节点间的通信时间;
最终,整个集群系统总的能耗为:
步骤4.2:将所述第一个被标记的节点所对应的簇定为主任务簇,且初始标记主任务簇中的所有任务都已经分簇;
步骤4.3:从主任务簇开始遍历每个簇中的各个任务,如果一个簇中至少存在一个任务没有被分簇,则进入该簇分析该分簇中的各个任务的more_energy,more_energy的计算方法为:more_energy = enu -eluv,其中,任务u是任务v的前驱节点,enu代表u的计算能耗,eluv代表u和v之间的通信能耗;将最大的more_energy记为max_more_energy,判断max_more_energy是否大于0,如果max_more_energy≤0,则阈值控制部分失效,删除冗余的任务簇;
步骤5.1:从主任务簇开始,将每个分簇中的所有任务映射到一个未被占用的处理器上,并标记该处理器已被占用;
步骤5.2:重复步骤5.1,直到每个任务簇都被分配一个处理器为止;
步骤6.1:任务之间的依赖关系会导致相应的处理器产生空闲时间,从第一个处理器开始,依次搜索每个处理器上具有空闲执行时间的任务;
步骤6.2:利用DVS机制,在任务执行过程中,在不影响其他任务执行时间的前提下将任务执行频率和电压降低到近似最优值;
处理器的功耗可以用给定的参数表示为;
公式(10)中Cef代表开关电容,Vdd代表供电电压,f任务的执行频率,DVS的应用过程实际上就是选择最佳执行频率和电压的过程,这个过程表示为:
公式(11)中 fhighest代表处理器的最高执行频率,AESTi代表任务vi在处理器上的最早开始执行时间,令μ(vi)代表任务vi的计算时间,则AECTi等于AESTi与μ(vi)的和,AESTj表示每个处理器上任务vi执行完成后的第一个执行任务的最早开始执行时间;
给定处理器的最大功率,最高执行频率和最高电压,利用公式(10)推导出在任意电压V和频率f下的处理器功耗,最终,处理器上任一任务vi的计算能耗表示为:
公式(12)中ti代表任务vi在处理器上的执行时间,如果任务vi无空闲时间,则其执行频率为最高频率,执行时间为其计算时间,即Pbest =PNhighest, ti = μ(vi);
步骤6.3、重复步骤6.1和步骤6.2,直到所有的处理器的所有任务都已经被搜索完毕为止,而完成系统资源分配过程。
上述技术方案中,所述步骤4.3中判断max_more_energy是否大于0,如果max_more_energy>0,所述资源分配方法还包括:
步骤4.4:所述资源分配方法将会根据给定的要求搜索一个最佳阈值来平衡系统的性能和能耗,
所述最佳阈值的搜索方式为:计算各个任务的计算能耗和所有的具有优先约束关系的任意两个任务之间的通信能耗,假设任务u是任务v的前驱节点,令enu代表u的计算能耗,eluv代表u和v之间的通信能耗,且令more_energy = enu - eluv;首先计算每个任务的more_energy,将0设定为阈值选择的下界,将最大的more_energy设定为阈值选择的上界,记为max_more_energy,将区间[0, max_more_energy] 作为阈值选择区间,接下来设定一个合适的值为步长对阈值区间进行搜索;对于每个搜索到的阈值,计算在此阈值条件下的系统调度长度和总能耗,从而分别生成两个区间:调度长度区间和总能耗区间,然后分别比较两个区间内所有的值,以得到能够同时满足最佳调度长度和最小总能耗的所有阈值,当算法执行完毕后,所有满足条件的阈值将会被返回;
步骤4.5:比较计算所得的more_energy与给定的最佳阈值的大小,如果计算所得的more_energy大于给定的最佳阈值,则说明复制任务u不能满足用户所要求的系统性能,因此系统将会删除该簇中从当前任务到第一个任务的所有任务;如果该簇中所有的任务都已经被标记分簇,则该簇为冗余簇,将该簇删除。
本发明针对同构集群系统中的能量优化问题,将基于分簇的调度算法和DVS技术结合起来,在满足系统性能要求的同时优化系统能耗。首先,本发明中基于分簇的调度算法根据系统环境(主要包括处理器参数和网络连接参数)获取一个平衡系统性能和能耗的最佳阈值;然后利用该阈值对初始基本任务簇进行优化,即选择性地对任务复制活动进行控制,从而消除冗余的簇和复制任务以获取近似最优分组;最后,将各分簇分别调度到一个未被占用的处理器上,并通过探索任务之间的依赖关系所产生的空闲时间,利用DVS技术动态调整处理器电压以进一步节省处理器能耗。
附图说明
图1 为本发明的流程图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步的详细说明:
计算机同构集群系统高能效资源分配方法,其特征在于,它包括如下步骤:
基本可以分为六个主要步骤:一、读取实验所用到的各种重要参数信息。三、获取初始基本分簇结果集合Φ(G)。四、优化初始基本分簇结果,得到最佳分簇结果。五、任务簇映射。六、处理器动态电压调节(Dynamic Voltage Scaling,DVS)。
具体步骤如下:
步骤1.1:DSP的程序读入并行任务有向无环图(Directed AcyclicGraph,DAG)文件,还读入处理器参数信息、网络参数信息和平均通信计算比率信息;
步骤2.1:通过拓扑排序读入并行任务有向无环图,生成拓扑排序序列;
步骤2.2:通过COMPUTE-E-VALUE(v,G)算法,按照所述拓扑排序序列从入口任务v1开始,计算每个任务的最早开始时间下界e值直至出口任务vn结束,从而获得各任务的e值和相应的簇;
对于每个节点v∈V,首先计算节点v的最早可能开始时间的下界e(v)。令C(v)表示包含节点v和v的前驱节点集合{u1,…,uk}的簇, 当簇C(v)中的节点都在同一个处理器上被执行时,这个簇允许任务v在此簇中尽可能早的被开始执行。因此,e(v) ≥ GREEDY-SCHEDULE(C-{v}),其中GREEDY-SCHEDULE(▪)返回单处理器调度的整体最佳执行时间。
接下来考虑经过簇C(v)的边。例如边 arc (u, w),定义其c值为c(u, w) = e(u) +μ(u) +λ(u, w)。节点v在时间c(u, w)之前不可能被调度,因为存在一条从节点u到节点v的边经过节点w。因此,e(v) ≥ MAX-C-VALUE(C),其中MAX-C-VALUE(C)表示经过簇C(v)的所有边中最大的c值。
从以上两式可知,对于簇C(v),一定满足式(1)和(2)。
和
这一步的目的就是得到使e(v)最小的簇C(v)。簇C(v)可以通过一个简单的贪心算法得到,即初始时簇C(v)中只含活动v,然后考虑跨簇的活动中数据到达时间c大于e(v)且到达时间最晚的活动,若加入该活动可减少e(v),则复制到v所在簇中。在此,跨簇C(v)的活动是指不在C(v)中但有子活动在C(v)中的活动。
步骤2.3:按照所述各任务的e值非降序排列每个簇中的任务;
步骤3.1:逆拓扑排序所有上述任务节点,生成有序序列queqe;
步骤3.2:所述有序序列queqe中的第一个节点v被标记为“1”,并将第一个节点v相应的簇C(v)放入集合Φ(G)中,同时标记这个簇中的所有节点已经被分簇,即这个簇中的所有节点已经在集合Φ(G)中;
步骤3.3:标记所有满足以下条件的节点u为“1”:存在边arc(u,w),其中
且w∈C(v),并将上述满足条件的节点u中相应的簇放入Φ(G)中,同时标记这个簇中的所有节点已经被分簇,即上述簇中的所有节点已经在集合Φ(G)中;
步骤3.4:对经过上述步骤3.2和步骤3.3后没有被标记为“1”的节点中的第一个节点标记为“1”,并将上述节点相应的簇C(v)放入集合Φ(G)中;然后按照步骤3.3中的方式对满足以下条件的节点标记为“1”:存在边arc(u,w),其中
且w∈C(v),并将上述满足条件的节点u中相应的簇放入Φ(G)中,同时标记这个簇中的所有节点已经被分簇,即上述簇中的所有节点已经在集合Φ(G)中;
步骤3.5:重复步骤3.4,直到所有节点都被标记分簇为止;
步骤4.1:计算各个任务的计算能耗和所有的具有优先约束关系的任意两个任务之间的通信能耗;
其中,计算能耗的计算方式为:令eni表示任务vi执行时所产生的计算能耗,用PNhighest表示最高功耗,ti表示任务vi在处理器上的执行时间,因此任务vi的计算能耗可以用式(3)表示。
任务集V中所有任务的计算能耗ENactive,通过下述公式(4)算出,
令PNidle代表处理器的空闲功耗,即处理器不工作时的功率。因此,有了空闲功耗和空闲时间,就可以得到任一处理器的空闲能耗,如式(5),其中,n表示任务个数,xij 表示任务i被分配到了处理器j上。
其中makespan表示所有任务最终都被执行完毕的时间,也即最后一个任务被执行完毕的时间,如果令m表示总的处理器个数,所有节点总的空闲能耗可以运用式(6)计:
整个并行应用总的计算能耗通过式(7)计算:
所述整个网络的通信能耗用式(8)计算:
公式(8)中,PL表示网络连接功耗,而且,如果任务vi被分配到处理器p上,xip为“1”, 否则为“0”;如果任务vj被分配到处理器q上,xjq为“1”, 否则为“0”, cij是信息传递时间,即两个节点间的通信时间;
最终,整个集群系统总的能耗可以表示为式(9)。
步骤4.2:将所述第一个被标记的节点所对应的簇定为主任务簇,且初始标记主任务簇中的所有任务都已经分簇;
步骤4.3:从主任务簇开始遍历每个簇中的各个任务,如果一个簇中至少存在一个任务没有被分簇,则进入该簇分析该分簇中的各个任务的more_energy,more_energy的计算公式为:more_energy = enu -eluv,其中,任务u是任务v的前驱节点,enu代表u的计算能耗,eluv代表u和v之间的通信能耗;将最大的more_energy记为max_more_energy,判断max_more_energy是否大于0,如果max_more_energy≤0,则阈值控制部分失效,算法此时仅会删除冗余的任务簇,如果max_more_energy>0,执行步骤4.4;
步骤4.4:在此,算法将会根据给定的要求搜索一个最佳阈值来平衡系统的性能和能耗。
最佳阈值的搜索方式为:计算各个任务的计算能耗和所有的具有优先约束关系的任意两个任务之间的通信能耗,假设任务u是任务v的前驱节点,令enu代表u的计算能耗,eluv代表u和v之间的通信能耗,且令more_energy = enu - eluv。首先计算每个任务的more_energy,将0设定为阈值选择的下界,将最大的more_energy设定为阈值选择的上界,记为max_more_energy,将区间[0, max_more_energy] 作为阈值选择区间,接下来设定一个合适的值为步长对阈值区间进行搜索;对于每个搜索到的阈值,计算在此阈值条件下的系统调度长度和总能耗,从而分别生成两个区间:调度长度区间和总能耗区间,然后分别比较两个区间内所有的值,以得到能够同时满足最佳调度长度和最小总能耗的所有阈值。当算法执行完毕后,所有满足条件的阈值将会被返回;
步骤4.5:比较计算所得的more_energy与给定的最佳阈值的大小,如果计算所得的more_energy大于给定的最佳阈值,则说明复制任务u不能满足用户所要求的系统性能,因此系统将会删除该簇中从当前任务到第一个任务的所有任务;如果该簇中所有的任务都已经被标记分簇,则该簇为冗余簇,将该簇删除;
优化初始基本分簇结果,得到最佳分簇结果。将第一个被标记的节点所对应的簇设定为主任务簇,且初始标记主任务簇中的所有任务都已经分簇。从主任务簇开始遍历每个簇中的各个任务,如果一个簇中至少存在一个任务没有被分簇,则进入该簇分析其中各个任务的more_energy。此时,得到的最佳阈值将被用来平衡系统的性能和能耗。如果计算所得的more_energy大于给定的阈值,则说明复制任务u不能满足用户所要求的性能,因此算法将会删除该簇中从当前任务到第一个任务的所有任务;如果该簇中所有的任务都已经被标记分簇,则将该簇删除。
在此需要注意的是,如果计算所得的max_more_energy ≤ 0,则阈值控制部分失效,算法此时仅会删除冗余的任务簇,即那些所有的任务都已经被标记分簇的任务簇,其他的各个簇中的复制任务并不会受到影响。
步骤5.1:从主任务簇开始,将每个分簇中的所有任务映射到一个未被占用的处理器上,并标记该处理器已被占用;
步骤5.2:重复步骤5.1,直到每个任务簇都被分配一个处理器为止;
步骤6.1:任务之间的依赖关系会导致相应的处理器产生空闲时间,从第一个处理器开始,依次搜索每个处理器上具有空闲执行时间的任务;
步骤6.2:利用DVS(Dynamic Voltage Scaling,处理器动态电压调节)机制,在任务执行过程中,在不影响其他任务执行时间的前提下将任务执行频率和电压降低到近似最优值;动态电压调节所用的频率和电压都是离散的,所以几乎不可能会降到精确的某个值,只能是一个小于本身且最接近的那个值。
处理器的功耗可以用给定的参数表示为式(10)。
其中Cef代表开关电容,Vdd代表供电电压,f任务的执行频率,DVS的应用过程实际上就是选择最佳执行频率和电压的过程,这个过程用公式表示如式(11)
其中 fhighest代表处理器的最高执行频率,AESTi代表任务vi在处理器上的最早开始执行时间,令μ(vi)代表任务vi的计算时间,则AECTi等于AESTi与μ(vi)的和,AESTj表示每个处理器上任务vi执行完成后的第一个执行任务的最早开始执行时间。
给定处理器的最大功率,最高执行频率和最高电压,利用公式(10)推导出在任意电压V和频率f下的处理器功耗,最终,处理器上任一任务vi的计算能耗可以用式(12)表示:
其中ti代表任务vi在处理器上的执行时间,如果任务vi无空闲时间,则其执行频率为最高频率,执行时间为其计算时间,即Pbest = PNhighest,ti = μ(vi);
步骤6.3、重复步骤6.1和步骤6.2,直到所有的处理器的所有任务都已经被搜索完毕为止。
本说明书未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (2)
1.一种计算机同构集群系统高能效资源分配方法,该方法包括如下步骤:
步骤1.1:DSP的程序读入并行任务有向无环图文件,还读入处理器参数信息、网络参数信息以及平均通信计算比率信息;
步骤2.1:通过拓扑排序读入并行任务有向无环图,生成拓扑排序序列;
步骤2.2:通过COMPUTE-E-VALUE(v,G)算法,按照所述拓扑排序序列从入口任务v1开始,计算每个任务的最早开始时间下界e值直至出口任务vn结束,从而获得各任务的e值和相应的簇;
步骤2.3:按照所述各任务的e值非降序排列每个簇中的任务;
步骤3.1:逆拓扑排序所有上述任务节点,生成有序序列queqe;
步骤3.2:所述有序序列queqe中的第一个节点v被标记为“1”,并将第一个节点v相应的簇C(v)放入集合Φ(G)中,同时标记这个簇中的所有节点已经被分簇,即这个簇中的所有节点已经在集合Φ(G)中;
步骤3.3:标记所有满足以下条件的节点u为“1”:存在边arc(u,w),其中且w∈C(v),并将上述满足条件的节点u中相应的簇放入集合Φ(G)中,同时标记这个簇中的所有节点已经被分簇,即上述簇中的所有节点已经在集合Φ(G)中;
步骤3.4:对经过上述步骤3.2和步骤3.3后没有被标记为“1”的节点中的第一个节点标记为“1”,并将上述节点相应的簇C(v)放入集合Φ(G)中;然后按照步骤3.3中的方式对满足以下条件的节点标记为“1”:存在边arc(u,w),其中且w∈C(v),并将上述满足条件的节点u中相应的簇放入集合Φ(G)中,同时标记这个簇中的所有节点已经被分簇,即上述簇中的所有节点已经在集合Φ(G)中;
步骤3.5:重复步骤3.4,直到所有节点都被标记分簇为止;
步骤4.1:计算各个任务的计算能耗和所有的具有优先约束关系的任意两个任务之间的通信能耗;
其中,计算能耗的计算方法为:
eni=PNhighest·ti (3)
公式(3)中eni表示任务vi执行时所产生的计算能耗,PNhighest表示最高功耗,ti表示任务vi在处理器上的执行时间,
任务集V中所有任务的计算能耗:
下面公式(5)中PNidle代表处理器的空闲功耗,即处理器不工作时的功率,因此,有了空闲功耗和空闲时间,就可以得到任一处理器的空闲能耗,其中,n表示任务个数,xij表示任务i被分配到了处理器j上:
公式(5)中makespan表示所有任务最终都被执行完毕的时间,也即最后一个任务被执行完毕的时间,如果m表示总的处理器个数,所有节点总的空闲能耗:
整个并行应用总的计算能耗:
EN=ENactive+ENidle; (7)
所述整个网络的通信能耗:
公式(8)中,PL表示网络连接功耗,而且,如果任务vi被分配到处理器p上,xip为“1”,否则为“0”;如果任务vj被分配到处理器q上,xjq为“1”,否则为“0”,cij是信息传递时间;
最终,整个集群系统总的能耗为:
Etotal=EN+EL; (9)
步骤4.2:将所述第一个被标记的节点所对应的簇定为主任务簇,且初始标记主任务簇中的所有任务都已经分簇;
步骤4.3:从主任务簇开始遍历每个簇中的各个任务,如果一个簇中至少存在一个任务没有被分簇,则进入该簇分析该分簇中的各个任务的more_energy,more_energy的计算方法为:more_energy=enu-eluv,其中,任务u是任务v的前驱节点,enu代表u的计算能耗,eluv代表u和v之间的通信能耗;将最大的more_energy记为max_more_energy,判断max_more_energy是否大于0,如果max_more_energy≤0,则阈值控制部分失效,删除冗余的任务簇;
步骤5.1:从主任务簇开始,将每个分簇中的所有任务映射到一个未被占用的处理器上,并标记该处理器已被占用;
步骤5.2:重复步骤5.1,直到每个任务簇都被分配一个处理器为止;
步骤6.1:任务之间的依赖关系会导致相应的处理器产生空闲时间,从第一个处理器开始,依次搜索每个处理器上具有空闲执行时间的任务;
步骤6.2:利用DVS机制,在任务执行过程中,在不影响其他任务执行时间的前提下将任务执行频率和电压降低到最优值;
处理器的功耗可以用给定的参数表示为;
公式(10)中Cef代表开关电容,Vdd代表供电电压,f任务的执行频率,DVS的应用过程实际上就是选择最佳执行频率和电压的过程,这个过程表示为:
公式(11)中fhighest代表处理器的最高执行频率,AESTi代表任务vi在处理器上的最早开始执行时间,令μ(vi)代表任务vi的计算时间,则AECTi等于AESTi与μ(vi)的和,AESTj表示每个处理器上任务vi执行完成后的第一个执行任务的最早开始执行时间;
给定处理器的最大功率,最高执行频率和最高电压,利用公式(10)推导出在任意电压V和频率f下的处理器功耗,最终,处理器上任一任务vi的计算能耗表示为:
ENi=Pbest·ti (12)
公式(12)中ti代表任务vi在处理器上的执行时间,如果任务vi无空闲时间,则其执行频率为最高频率,执行时间为其计算时间,即Pbest=PNhighest,ti=μ(vi);
步骤6.3、重复步骤6.1和步骤6.2,直到所有的处理器的所有任务都已经被搜索完毕为止,而完成系统资源分配过程。
2.如权利要求1所述的计算机同构集群系统高能效资源分配方法,其特征在于:所述步骤4.3中判断max_more_energy是否大于0,如果max_more_energy>0,所述资源分配方法还包括:
步骤4.4:所述资源分配方法将会根据给定的要求搜索一个最佳阈值来平衡系统的性能和能耗,
所述最佳阈值的搜索方式为:计算各个任务的计算能耗和所有的具有优先约束关系的任意两个任务之间的通信能耗,假设任务u是任务v的前驱节点,令enu代表u的计算能耗,eluv代表u和v之间的通信能耗,且令more_energy=enu-eluv;首先计算每个任务的more_energy,将0设定为阈值选择的下界,将最大的more_energy设定为阈值选择的上界,记为max_more_energy,将区间[0,max_more_energy]作为阈值选择区间,接下来设定一个合适的值为步长对阈值区间进行搜索;对于每个搜索到的阈值,计算在此阈值条件下的系统调度长度和总能耗,从而分别生成两个区间:调度长度区间和总能耗区间,然后分别比较两个区间内所有的值,以得到能够同时满足最佳调度长度和最小总能耗的所有阈值,当算法执行完毕后,所有满足条件的阈值将会被返回;
步骤4.5:比较计算所得的more_energy与给定的最佳阈值的大小,如果计算所得的more_energy大于给定的最佳阈值,则说明复制任务u不能满足用户所要求的系统性能,因此系统将会删除该簇中从当前任务到第一个任务的所有任务;如果该簇中所有的任务都已经被标记分簇,则该簇为冗余簇,将该簇删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210204880.5A CN102749987B (zh) | 2012-06-20 | 2012-06-20 | 计算机同构集群系统高能效资源分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210204880.5A CN102749987B (zh) | 2012-06-20 | 2012-06-20 | 计算机同构集群系统高能效资源分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102749987A CN102749987A (zh) | 2012-10-24 |
CN102749987B true CN102749987B (zh) | 2014-12-03 |
Family
ID=47030250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210204880.5A Expired - Fee Related CN102749987B (zh) | 2012-06-20 | 2012-06-20 | 计算机同构集群系统高能效资源分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102749987B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103179674B (zh) * | 2013-03-26 | 2015-10-28 | 重庆邮电大学 | 一种无线异构网络系统中的用户动态分组方法 |
CN108108237B (zh) * | 2017-12-27 | 2021-09-28 | 电子科技大学 | 一种基于milp的周期关联任务异构多核映射调度方法 |
CN109101315B (zh) * | 2018-07-04 | 2021-11-19 | 上海理工大学 | 基于包簇框架的云数据中心资源分配方法 |
CN111679901A (zh) * | 2020-08-13 | 2020-09-18 | 南京江北新区科技投资集团有限公司 | 基于作业调度软件和并行文件系统的高性能服务系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101847044A (zh) * | 2010-03-22 | 2010-09-29 | 北京航空航天大学 | 一种适用于千万亿次计算机机群的低功耗管理方法 |
CN102156533A (zh) * | 2011-02-25 | 2011-08-17 | 曙光信息产业(北京)有限公司 | 机柜集群系统的功耗控制方法 |
CN102207769A (zh) * | 2011-05-24 | 2011-10-05 | 东北大学 | 一种基于静态电压调度的dvs系统的能量优化方法 |
CN102231122A (zh) * | 2011-07-13 | 2011-11-02 | 武汉理工大学 | 一种集群环境中基于分簇的节能调度方法 |
CN102360246A (zh) * | 2011-10-14 | 2012-02-22 | 武汉理工大学 | 一种异构分布式系统中基于自适应阈值的节能调度方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7281145B2 (en) * | 2004-06-24 | 2007-10-09 | International Business Machiness Corporation | Method for managing resources in a CPU by allocating a specified percentage of CPU resources to high priority applications |
CN102016748A (zh) * | 2008-04-21 | 2011-04-13 | 自适应计算企业股份有限公司 | 用于管理计算环境中的能量消耗的系统和方法 |
-
2012
- 2012-06-20 CN CN201210204880.5A patent/CN102749987B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101847044A (zh) * | 2010-03-22 | 2010-09-29 | 北京航空航天大学 | 一种适用于千万亿次计算机机群的低功耗管理方法 |
CN102156533A (zh) * | 2011-02-25 | 2011-08-17 | 曙光信息产业(北京)有限公司 | 机柜集群系统的功耗控制方法 |
CN102207769A (zh) * | 2011-05-24 | 2011-10-05 | 东北大学 | 一种基于静态电压调度的dvs系统的能量优化方法 |
CN102231122A (zh) * | 2011-07-13 | 2011-11-02 | 武汉理工大学 | 一种集群环境中基于分簇的节能调度方法 |
CN102360246A (zh) * | 2011-10-14 | 2012-02-22 | 武汉理工大学 | 一种异构分布式系统中基于自适应阈值的节能调度方法 |
Non-Patent Citations (4)
Title |
---|
一种面向同构集群系统的并行任务节能调度优化方法;李新等;《计算机学报》;20120331;第35卷(第3期);第591-602页 * |
周文煜等.基于虚拟机迁移的虚拟机集群资源调度.《华中科技大学学报》.2011,第39卷第130-133页. * |
基于虚拟机迁移的虚拟机集群资源调度;周文煜等;《华中科技大学学报》;20110630;第39卷;第130-133页 * |
李新等.一种面向同构集群系统的并行任务节能调度优化方法.《计算机学报》.2012,第35卷(第3期),第591-602页. * |
Also Published As
Publication number | Publication date |
---|---|
CN102749987A (zh) | 2012-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102193826B (zh) | 一种异构多核处理器高效任务调度方法 | |
Xu et al. | Exploring power-performance tradeoffs in database systems | |
CN103345298B (zh) | 一种基于虚拟it资源分配技术的数据中心节能系统的方法 | |
Cheng et al. | An energy-saving task scheduling strategy based on vacation queuing theory in cloud computing | |
Wang et al. | Virtual network embedding by exploiting topological information | |
CN102749987B (zh) | 计算机同构集群系统高能效资源分配方法 | |
Mao et al. | A multi-resource task scheduling algorithm for energy-performance trade-offs in green clouds | |
Xiao et al. | Minimizing schedule length of energy consumption constrained parallel applications on heterogeneous distributed systems | |
Gu et al. | Energy efficient scheduling of servers with multi-sleep modes for cloud data center | |
CN102063336A (zh) | 一种分布式计算多应用功能异步并发调度方法 | |
CN102866912A (zh) | 一种单指令集异构多核系统静态任务调度方法 | |
CN102622273A (zh) | 基于自学习负载预测的集群按需启动方法 | |
CN102231122A (zh) | 一种集群环境中基于分簇的节能调度方法 | |
CN107168770A (zh) | 一种低能耗的云数据中心工作流调度与资源供给方法 | |
Tang et al. | CPU–GPU utilization aware energy-efficient scheduling algorithm on heterogeneous computing systems | |
CN103500123A (zh) | 异构环境中并行计算调度方法 | |
CN104102532B (zh) | 一种异构集群中基于低能耗的科学工作流调度方法 | |
CN101594371A (zh) | 食品安全追溯数据库的负载均衡优化方法 | |
Zhou et al. | IECL: an intelligent energy consumption model for cloud manufacturing | |
CN109582457A (zh) | 片上网络异构多核系统任务调度与映射 | |
CN104142850A (zh) | 数据中心的节能调度方法 | |
Aziz et al. | Power efficient scheduling heuristics for energy conservation in computational grids | |
Daoud et al. | Cloud-IoT resource management based on artificial intelligence for energy reduction | |
Swaminathan et al. | Pruning-based energy-optimal device scheduling for hard real-time systems | |
Liu et al. | An energy efficient clustering-based scheduling algorithm for parallel tasks on homogeneous DVS-enabled clusters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141203 Termination date: 20150620 |
|
EXPY | Termination of patent right or utility model |