CN115756803A - 面向异构计算***的任务调度方法、装置、设备及介质 - Google Patents
面向异构计算***的任务调度方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115756803A CN115756803A CN202211520501.3A CN202211520501A CN115756803A CN 115756803 A CN115756803 A CN 115756803A CN 202211520501 A CN202211520501 A CN 202211520501A CN 115756803 A CN115756803 A CN 115756803A
- Authority
- CN
- China
- Prior art keywords
- queue
- node
- probability distribution
- task
- computing system
- 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
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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种面向异构计算***的任务调度方法、装置、设备及介质,包括:获取目标异构计算***上应用程序任务对应的有向无环任务图并确定其任务节点队列,基于任务节点队列及有向无环任务图的拓扑关系确定概率分布矩阵与拓扑可行点队列;基于随机游走算法,在预设范围内取任一随机数,基于随机数在概率分布矩阵中确定多个指定点,得到指定点集合;基于指定点集合将拓扑可行点队列转换为边覆盖队列;基于概率分布算法对边覆盖队列进行模拟调度,更新当前概率分布矩阵;重复随机游走与概率分布估计算法达到预设次数,得到目标概率分布矩阵,进而得到目标调度方案。本发明提出了使用边覆盖队列进行调度的方法,并基于概率分布估计算法和图随机游走策略,设计出了一种边覆盖队列的生成方法,降低运算复杂度和迭代次数。
Description
技术领域
本发明涉及异构计算***任务调度技术领域,涉及一种面向异构计算***的任务调度方法、装置、设备及介质。
背景技术
异构计算***是指具有不同计算和存储能力并相互连接的一组处理器。由于任务的多样性和处理器工艺架构的差异性,异构计算***广泛的存在于各种计算场景下。各个应用程序在实际应用中通常被建模为有向无环图 (Directed Acyclic Graph,DAG),图中的每一个节点代表应用程序的子任务,而后再将该有向无环图调度到异构计算***。高效的调度方案能够提高异构计算***性能和用户体验质量。由于异构计算***的异构性、任务之间的优先级约束以及有向无环图的NP-Hard特性,获得高效的调度十分困难。
现有的调度算法分为表调度算法和进化算法两大类。表调度算法具有低的运算复杂度和时间复杂度,但是在很多场景下调度结果不够理想,容易陷入局部最优解。进化算法是全局优化的算法,在足够的运算量下能得到优秀的调度结果,但是具有非常高的运算复杂度和时间复杂度。在并行和分布式异构计算***中,基于启发式的任务调度算法通常包括任务优先级确定和处理器选择两个阶段。在基于启发式的任务调度算法中,不同的优先级会在异构计算***上产生不同的最大完成时间。因此,一个好的调度算法应该能够根据最小化最大完成时间有效地为每个子任务分配优先级和处理器。
表调度算法的使用分为两个阶段。首先,依据任务优先级,按权重对任务进行排序,得到任务调度队列。然后,采用某种固定方式将队列中的任务依次放置到处理器上。早期的调度算法大多针对同构处理***,该类别的代表算法中,最早开始时间(EarliestStart Time,EST)算法和最早完成时间(Earliest Finish Time,EFT)算法,都是最简单的时间贪心算法。为了适应异构环境,提出了异构最早完成时间(HeterogeneousEarliestStart Time,HEFT) 和关键路径算法。异构最早完成时间算法中,任务根据从节点到DAG底部的最长路径长度值排序。然后,在将处理器的可用空闲时隙考虑在内的前提下,任务被依次分配到能使其取得最早完成时间的处理器上。关键路径算法中,先计算出DAG的关键路径,再将关键路径分配到使得关键路径的完成时间最短的同一个处理器上,其余任务再依次分配。预测类表调度算法通过估计任务分配对其后续任务的影响进行调度。在预测类表调度算法之一的预测最早完成时间(Predict Earliest Finish Time,PEFT)算法中,算法构建了一个乐观成本表,列出了任务和处理器的每个组合从其子节点到出口节点的最短路径。利用每个任务平均乐观成本表(Optimistic Cost Table,OCT)值,从高到低对任务进行排序。最后,引入***处理器可用空闲时隙策略,并将任务分配到EFT+OCT最短的处理器上。预测先行(Lookahead,LO)算法指一种比较特殊的表调度算法,每个任务在调度时分配到使其所有子任务完成时间最短的处理器上,在中等规模的DAG和一些特定的场景调度中具有良好的效果,但是也是运算复杂度最高的一类表调度算法。
进化类算法是全局优化的算法,能够在可接受的时间内为复杂问题提供满意的解决方案。对于DAG-SP问题,各种进化算法,遗传算法(GA)、蚁群优化(ACO)、差分进化(DE)都被尝试着在任务调度问题上使用。进化算法除了直接给出任务-处理器调度方案,更进一步地,针对初始任务调度队列优先级的进化算法也有研究工作。MPQGA方法提出了一种基于多优先队列遗传算法的异构计算***任务调度方案。遗传算法(GA)方法适合于有向无环图(DAG)调度场景的交叉、突变和适应度函数为每个子任务分配优先级,同时使用基于启发式的最早完成时间(EFT)方法搜索任务到处理器映射的解决方案。但是进化算法较大的迭代次数以及迭代时间也限制了其应用范围。
发明内容
本发明的目的在于克服现有面向异构计算***DAG调度算法中进化类算法运算复杂度高、迭代时间较长难以实际发挥作用而表调度算法效果较差的问题,提供一种面向异构计算***的任务调度方法、装置、设备及介质,本方法在搜索得到调度最优解的同时,相较于现有技术计算时间与运算量均有明显减少。
为了实现上述发明目的,本发明提供了以下技术方案:
一种面向异构计算***的任务调度方法,包括:
S1、获取目标异构计算***对应的有向无环图,
S2、确定初始调度方案以及所述有向无环图对应的任务节点队列,基于所述任务节点队列及其拓扑关系确定概率分布矩阵,以及,基于所述任务节点队列的拓扑关系构建拓扑可行点队列;
S3、基于随机游走算法,在预设范围内取任一随机数,基于所述随机数在所述概率分布矩阵中确定多个指定点,得到指定点集合;基于所述指定点集合将所述拓扑可行点队列转换为边覆盖队列;
S4、基于概率分布算法对边覆盖队列进行模拟调度,更新当前概率分布矩阵;
S5、重复步骤S3~S4,直到达到预设次数,得到目标概率分布矩阵及其边覆盖队列,进而生成目标调度方案。
根据一种具体的实施方式,上述面向异构计算***的任务调度方法中,所述预设范围为:
[0,1/(n+1)]
其中,n为所述任务节点队列的节点总数。
根据一种具体的实施方式,上述面向异构计算***的任务调度方法中,所述基于所述随机数在所述概率分布矩阵中确定多个指定点,包括:
遍历所述概率分布矩阵中的所有节点,判断每个节点对应的对角元元素的虚部是否超过了所述随机数,若是,则该节点为指定点,若否,则该节点不是指定点。
根据一种具体的实施方式,上述面向异构计算***的任务调度方法中,所述基于所述指定点集合将所述拓扑可行点队列转换为边覆盖队列,包括:
从所述拓扑可行点队列中的第二个节点开始,遍历每个节点pii,判断pii是否为所述指定点集合中的节点,若是,则将pii及其后序节点succ(pii)转换为(pii,succ(pii))放入边覆盖队列,若否,则选择节点pii对应的目标前序节点pred(pii),将(succ(pii),pii)加入所述边覆盖队列;其中,所述目标前序节点为与当前节点通信代价最大的前序节点。
根据一种具体的实施方式,上述面向异构计算***的任务调度方法中,所述方法还包括:在基于所述指定点集合将所述拓扑可行点队列转换为边覆盖队列之后的去连续步骤;
所述去连续步骤,包括:基于指定点集合[mi],找到所述边覆盖队列中的(pred(mi),mi),检查删去该边后是否产生逻辑错误,若否,则删除,若是,则保留。
根据一种具体的实施方式,上述面向异构计算***的任务调度方法中,所述S2中,基于所述任务节点队列及其拓扑关系确定概率分布矩阵,包括:
初始化一个复数矩阵,基于所述任务节点队列及其拓扑关系对所述复数矩阵中的元素进行赋值;计算所述任务节点队列中每个节点的PL值并排序;选择PL值从大到小个节点组成点集合PL_S;其中,n为任务节点队列的节点总数,PL为任务在处理器上异构度方差;
基于所述点集合PL_S对所述复数矩阵进行概率分布迭代,直到达到所述预设次数,生成所述概率分布矩阵。
本发明的另一方面,提供一种面向异构计算***的任务调度装置,包括:
获取单元,用于获取目标异构计算***对应的有向无环图,
初始化单元,用于确定初始调度方案以及所述有向无环图对应的任务节点队列,基于所述任务节点队列及其拓扑关系确定概率分布矩阵,以及,基于所述任务节点队列的拓扑关系构建拓扑可行点队列;
边覆盖队列迭代单元,用于生成并输出目标调度方案,其中,通过以下方法生成所述目标调度方案,包括:S3、基于随机游走算法,在预设范围内取任一随机数,基于所述随机数在所述概率分布矩阵中确定多个指定点,得到指定点集合;基于所述指定点集合将所述拓扑可行点队列转换为边覆盖队列;S4、基于概率分布算法对边覆盖队列进行模拟调度,更新当前概率分布矩阵;S5、重复步骤S3~S4,直到达到预设次数,得到目标概率分布矩阵及其边覆盖队列,进而生成目标调度方案。
本发明的另一方面,提供一种电子设备包括处理器、网络接口和存储器,所述处理器、所述网络接口和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述面向异构计算***的任务调度方法。
本发明的另一方面,提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序指令,所述程序指令被至少一个处理器执行时,用于实现上述面向异构计算***的任务调度方法。
与现有技术相比,本发明的有益效果:
本发明提出了使用边覆盖队列进行调度的思想,在调度过程中,边覆盖队列能够在点贪心的基础上探索局部贪心,是一种点贪心与边贪心的混合调度策略,基于分布估计算法(Estimation of Distribution Algorithm,EDA)和图随机游走策略,设计出了一种边覆盖队列的生成方法,具有较低的运算复杂度和迭代次数。
附图说明
图1为本发明在一种实施例中的面向异构计算***的任务调度方法流程图;
图2为本发明在一种实施例中的面向异构计算***的任务调度装置运行流程图;
图3为本发明在一种实施例中的DAG图及其任务表示意图;
图4为本发明在一种实施例中的最终的调度方案示意图;
图5为本发明在一种实施例中的ECSA与其他算法的运行效果对比图1;
图6为本发明在一种实施例中的ECSA与其他算法的运行效果对比图2;
图7为本发明在一种实施例中的ECSA与其他算法的运行效果对比图3;
图8为本发明在一种实施例中的电子设备结构框图。
具体实施方式
下面结合试验例及具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。
实施例1
图1示出了本发明示例性实施例的一种面向异构计算***的任务调度方法,包括:
S1、获取目标异构计算***对应的有向无环图,
S2、确定初始调度方案以及所述有向无环图对应的任务节点队列,基于所述任务节点队列及其拓扑关系确定概率分布矩阵,以及,基于所述任务节点队列的拓扑关系构建拓扑可行点队列;
S3、基于随机游走算法,在预设范围内取任一随机数,基于所述随机数在所述概率分布矩阵中确定多个指定点,得到指定点集合;基于所述指定点集合将所述拓扑可行点队列转换为边覆盖队列;
S4、基于概率分布算法对边覆盖队列进行模拟调度,更新当前概率分布矩阵;
S5、重复步骤S3~S4,直到达到预设次数,得到目标概率分布矩阵及其边覆盖队列,进而生成目标调度方案(即每个处理器在什么时间处理什么任务)。
本实施例提出了使用边覆盖队列进行调度的思想,边覆盖队列在调度过程中在点贪心的基础上能够探索局部贪心,是一种点贪心与边贪心的混合调度策略;基于分布估计算法(Estimation of Distribution Algorithm,EDA)和图随机游走策略,设计出了一种边覆盖队列的生成方法,降低运算复杂度和迭代次数。
实施例2
在一种可能的实现方式中,上述面向异构计算***的任务调度方法(以下称ECSA算法)中,所述S2中,确定初始调度方案以及所述有向无环图对应的任务节点队列,具体包括:
对获取到的目标异构计算***对应的DAG图(有向无环图),采用任一启发式调度算法(例如:HEFT算法、PEFT算法等)生成所述DAG图点队列;比较所述pi_HEFT和pi_PEFT,选择初始性能更优的作为DAG图的作为初始调度方案与任务节点队列Qi。
在一种可能的实现方式中,上述面向异构计算***的任务调度方法中,所述S2中基于所述任务节点队列及其拓扑关系确定概率分布矩阵,以及,基于所述任务节点队列的拓扑关系构建拓扑可行点队列,具体包括:
S21、将DAG的邻接矩阵转换为01矩阵A,对A矩阵通过动态规划求最长路径s,进而求得P=A1+A2+…+As。P矩阵包含了DAG图的所有有向路径信息、能够用于表示节点的拓扑关系,得到的P矩阵中,Pij>0表示 i节点为j节点的拓扑前序节点,i和j之间不能进行交换;Pij=0表示i节点与 j节点没有拓扑关系,i和j之间可以随意进行交换。对应Pij=0的节点i与j是随机扩散中的主力,Pij=0的节点是EDA算法的主要对象;并基于所述任务节点队列的拓扑关系构建拓扑可行点队列(不违背拓扑关系的队列)
S22、初始化一个复数矩阵S(n+1)(n+1)。对i行j列的元素Sij,按以下规则赋值,得到赋值后的复数矩阵S:
若i=j:Re(Sij)=0
若i≠j:Re(Sij)=0.5or0(如果P矩阵中Pij=0,则赋0.5;如果Pij≠0, 则赋0),
以及,计算所述任务节点队列Qi中每个节点qi的PL(prediction lookahead,任务在处理器上异构度方差)并排序:
再次对矩阵S中元素按以下规则赋值:
若i=j:Im(Sij)=1/(n+1)or0(如果i=0,则赋0);其中,n为所述任务节点队列的节点总数;
若i≠j:Im(Sij)=0;
S22、依次在点集PL_S内取一点,作为指定点;基于所述指定点将所述任务节点队列转换为边覆盖队列:从任务节点队列的第二个节点开始,遍历每个节点qi,判断qi是否为所述指定点,若是,则将qi及其后序节点succ(qi 转换为(ni,succ(qi))放入边覆盖队列,若否,则选择节点ni对应的目标前序节点pred(qi),将(pred(qi),qi)加入所述边覆盖队列;其中,所述目标前序节点为与当前节点通信代价最大的前序节点;同时基于当前指定点si,找到所述边覆盖队列中的(pred(si),si),检查删去该边后是否产生逻辑错误,若否,则删除,若是,则保留,生成去连续后的边覆盖队列;
据此,基于生成的边覆盖队列调度结果更新S矩阵虚部:
Im(Sii)=k*Im(Sii)+(1-k)*Δt;
在一种可能的实现方式中,上述面向异构计算***的任务调度方法中,所述S3具体包括:
S31、基于随机游走算法,在预设范围内取任一随机数;所述预设范围为:[0,1/(n+1)];其中,n为所述任务节点队列的节点总数;
S33、遍历所述概率分布矩阵中的所有节点,判断每个节点对应的对角元元素的虚部是否超过了所述随机数,若是,则该节点为指定点,若否,则该节点不是指定点,进而得到指定点集合[mi];
S33、基于所述指定点集合将所述拓扑可行点队列转换为边覆盖列队。
从所述拓扑可行点队列中的第二个节点开始,遍历每个节点pii,判断pii是否为所述指定点集合中的节点,若是,则将pii及其后序节点succ(pii)转换为(pii,succ(pii))放入边覆盖列队,若否,则选择节点pii对应的目标前序节点pred(pii),将(pred(pii),pii)加入所述边覆盖列队;其中,所述目标前序节点为与当前节点通信代价最大的前序节点。
以及,基于所述指定点集合[mi],找到所述边覆盖列队集合中的 (pred(mi),mi),检查删去该边后是否产生逻辑错误,若否,则删除,若是,则保留;生成去连续后的边覆盖列队;
进一步,在生成边覆盖列队后,执行S4(基于概率分布算法对边覆盖列队进行模拟调度,更新当前概率分布矩阵),并返回S3;重复步骤S3~S4,直到达到预设次数(次),得到目标概率分布矩阵,基于所述目标概率分布矩阵生成边覆盖列队与目标调度方案。
具体的,图随机游走算法是从一个或一系列顶点开始遍历一张图。在任意一个顶点,遍历者将以概率(1-a)游走到这个顶点的邻居顶点,以概率a随机跳跃到图中的任何一个顶点,称a为跳转发生概率,每次游走后得出一个概率分布,该概率分布刻画了图中每一个顶点被访问到的概率,用这个概率分布作为下一次游走的输入并反复迭代这一过程。当满足一定前提条件时,这个概率分布会趋于收敛;收敛后,即可以得到一个平稳的概率分布。
在ECSA算法中,随机游走模块内容如下:
random(0,1/(n+1)),对角线大于等于这个值的点放入点集(如果被选择的点中能组成边,选择其中PL值较大的那个),顺序为虚部由大到小。
本发明的另一方面,提供一种面向异构计算***的任务调度装置,包括:
获取单元,用于获取目标异构计算***对应的有向无环图,
初始化单元,用于确定初始调度方案以及所述有向无环图对应的任务节点队列,基于所述任务节点队列及其拓扑关系确定概率分布矩阵,以及,基于所述任务节点队列的拓扑关系构建拓扑可行点队列;
边覆盖队列迭代单元,用于生成并输出目标调度方案,其中,通过以下方法生成所述目标调度方案,包括:S3、基于随机游走算法,在预设范围内取任一随机数,基于所述随机数在所述概率分布矩阵中确定多个指定点,得到指定点集合;基于所述指定点集合将所述拓扑可行点队列转换为边覆盖列队;S4、基于概率分布算法对边覆盖列队集合进行模拟调度,更新当前概率分布矩阵;S5、重复步骤S3~S4,直到达到预设次数,得到目标概率分布矩阵,基于所述目标概率分布矩阵生成边覆盖列队与目标调度方案。
具体的,所述边覆盖队列迭代单元,包括:边覆盖队列生成模块、概率分布模块(EDA)、随机游走模块;
边覆盖队列生成模块:边覆盖队列生成分为两个子模块,包括:点队列 -边覆盖队列转换模块和去连续性模块。
1.1点队列-边覆盖队列转换模块:
点队列-边覆盖队列转换模块得到一个拓扑可行点队列pi和指定点队列 [ni]。从pi的第二个节点开始,对节点pii变为(pred(pii),pii)并放置进入显示队列。如果pii是指定点队列[ni]中一员,所有succ(pii)变为(pii,succ(pii)) 并放入显式队列中。如果不是,则选择最大边权的pred(pii)。将其余 (pred(pii),pii)放入隐式队列。最终将得到的显示队列作为模块的输出。
1.2去连续性模块:
在点队列-边覆盖队列转换模块生成的边覆盖队列中,如果要ni变为非连续节点,找到(pred(ni),ni),检查删去后是否产生逻辑错误,不会产生拓扑错误则删去。
概率分布模块(EDA),分为两个模块引导拓扑关系改变发生的 EDA-exchange模块和引导S矩阵更新的EDA-update模块。
2.1EDA-exchange模块:
将所有(ni,succ(ni))提出来做一次拓扑排序并依次放置到一个空队列中,放置过程中S矩阵中相应的succ(ni)之间的概率分布值轮盘法决定该边的位置,得到(ni,succ(1)),(ni,succ(2))…,再按这个顺序将边填回显式队列中。如果回填位置出现拓扑错误,则继续将其放在队列开头并选择下一条边回填。如果最后[ni]队列不为空队列,则将该位置回填为初始位置。
2.2EDA-update模块:
根据新队列与老队列的Δt和succ(ni)之间的拓扑关系。对nj∈ succ(ni),nk∈succ(ni),如果任务nj在nk之前:
3.随机游走模块
图随机游走算法是从一个或一系列顶点开始遍历一张图。在任意一个顶点,遍历者将以概率(1-a)游走到这个顶点的邻居顶点,以概率a随机跳跃到图中的任何一个顶点,称a为跳转发生概率,每次游走后得出一个概率分布,该概率分布刻画了图中每一个顶点被访问到的概率,用这个概率分布作为下一次游走的输入并反复迭代这一过程。当满足一定前提条件时,这个概率分布会趋于收敛。收敛后,即可以得到一个平稳的概率分布。
在ECSA算法中,随机游走模块内容如下:
random(0,i/(n+1)),对角线大于等于这个值的点放入点集(如果被选择的点中能组成边,选择其中PL值较大的那个),顺序为虚部由大到小。
据此,上述模块构成边覆盖队列迭代单元,边覆盖队列迭代模块中,S 矩阵指导生成新的边覆盖队列,具体步骤如下:
(1)接收初始队列和指定调度算法。
(2)利用随机游走,在预设范围内取一个随机数,对角线上值,虚部大于等于这个值的点放入点集(如果被选择的点中有能组成边的,选择二者之中PL值较大的那个,并将另一个删去),顺序为虚部由大到小。
(3)将初始点队列和点集传入点队列到边覆盖队列生成模块,得到一个边覆盖队列。
(4)边覆盖队列和点集合传入去连续性模块,得到一个新的边覆盖队列。
(5)局部EDA模块,在S矩阵的实部指导下依次对点集中ni的succ(ni) 拓扑关系做出改变,并根据调度结果更新S矩阵实部。
(6)将点集中的所有点的虚部更新,并归一化。
据此,本发明实施例提供的面向异构计算***的任务调度装置,以DAG 的通信矩阵和异构计算矩阵作为输入,以DAG的调度方案作为输出,具体地,如图2示出了该调度方法的工作流程。
综上,本发明实施例将边覆盖队列运用到被建模为有向无环图的任务调度模型中,并利用概率分布算法和随机游走算法引导生成合适的边覆盖队列以获得更好的调度结果。通过理论和实验证明,在随机任务图和工程常见程序图(FFT,GE)上都能够使得调度长度得到有效降低。
实施例3
在本发明进一步的实施例中,以图3所示的某异构计算***对应的DAG 图及其任务节点队列为例,说明本发明实施例所述的ECSA调度算法的流程,包括:
1、获得该DAG图的邻接矩阵A,计算得到最长路径长度为4;计算拓扑矩阵P=A1+A2+…+A4,由此,得到DAG对应的拓扑矩阵;
2、通过启发式贪心方法,最快时间(FT)or最快OEFT调度该DAG,从这两种贪心方法中选择出一个看起来更好的启发式贪心方法(FTorOEFT);在这个例子中,OEFT贪心方法更优秀,因此ECSA得启发式贪心方法为 OEFT,初始点队列为[1,4,6,2,3,5,8,7,9,10];
3.初始化概率矩阵S:
计算PL值,得到PLS=[1,2,7];将初始点队列[1,4,6,2,3,5,8,7,9,10]和[1] 传入vertex-to-line和loss-continuity函数得到:Line2=[(1,4),(1,6),(1,2),(1,3),(1,5),(4,8),(3,7),(5,9),(8,10)];
将Line2和[1]进行EDA,得到line3;line3调度并更新S矩阵中实部虚部;同样的方法对[3],[7],至此S矩阵初始化完毕。
4.随机游走random(0,1/(n+1)),将对角线虚部大于这个点的放入V1点集合,再利用V1点集合在S矩阵中对应对角元的实部放入V2;例如:本次迭代运行中,V1=[1],V2=[1]:
Line1=vertex-to-line(π,V1);
Line2=loss-continuity(line1,V2);
Line3=EDA-exchange(line2,V1,S);
重复上述步骤迭代次。最后一次迭代的输出line3就是ECSA得到的边覆盖队列,这次得到的边覆盖队列是:[(1,3),(1,2),(1,4),(1,6),(1,5),(4,8), (3,7),(5,9),(8,10)];最终的调度结果如图4。
进一步的,为了评估将本发明所提供的ECSA的相对性能,通过DAG 生成程序TGFF(一种DAG生成工具)生成用于模拟某异构计算***的DAG 图,对于TGFF,有许多与任务图结构相关的参数:图中节点数量下限的平均值、成熟、图节点的最大入度和出度等,基于预设的参数随机生成1920 组不同的DAG,在每个DAG中,20个不同的随机图产生的不同通信成本边和计算成本任务,因此,在重新搜索中使用了38400个随机DAG。
在ECSA,在EDA和图形随机游走更新中,学习率k是0.005;为了评估ECSA的性能,我们将它与四种算法(EFT、HEFT、PEFT与LO)进行比较,所有算法都编码在MATLAB-2021b,运行在AMD 5800x 3.8GHz和 32GB RAM的同一台计算机上,其中,运行结果如图5~7所示。
图5、图6(图5、6中,纵坐标为最大完成时间,m为异构计算***处理器个数,n为任务个数)显示了作为DAG大小n、处理器型号m和CCR 的函数的最大完成时间,从图5、6可以看出,随着DAG规模的逐渐增大, ECSA可以有效降低DAG图的最大完工时间。任务数量越多,最大完工时间下降越多。HEFE和PEFT在随机DAG中保持相似的性能,EFT是最简单的贪婪算法、性能最差,LO算法被设计并用于特定结构的DAG中,虽然它具有较高的复杂度,但当DAG的大小较小时,与HEFE和PEFT性能相似,但当DAG的大小较大时,性能比HEFE和PEFT性能差。总体来说,将所有随机图作为整体考虑,与EFT相比ECSA在最大完工时间上减少8%,与 HEFT相比ECSA在最大完工时间上减少5%,与PEFT相比ECSA在最大完工时间上减少4.3%,相对LO算法减少6.2%。
最大完工时间是任务调度中最直接的目标,而SLR是更能反映调度算法性能的参数;从图7(图7中,由上至下分别是EFT、LO、HEFT、PEFT、 ECSA)可以看出,ECSA给出的调度方案比其他调度算法具有更低的SLR,并且随着DAG大小的增加,SLR会增加,而ECSA会更多的减少SLR:
其中,makespan是调度方案的调度长度,CPMIN是DAG图最短关键路径。
综上,从试验结果可知,ECSA相较于现有调度算法在性能上具有明显提升。
实施例4
在本发明的另一方面,如图8所示,还提供一种电子设备,包括处理器、网络接口和存储器,所述处理器、所述网络接口和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述面向异构计算***的任务调度方法。
在本发明的实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field Programmable GateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。
本发明的另一方面,还提供一种计算机存储介质,所述计算机存储介质中存储有程序指令,所述程序指令被至少一个处理器执行时,用于实现上述一种面向异构计算***的任务调度方法。
在一中可能的实现方式中,上述存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称 ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器 (Electrically EPROM,简称EEPROM)或闪存。
易失性存储器可以是随机存取存储器(Random Access Memory,简称 RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的 RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器 (Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,简称DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器 (DirectRambus RAM,简称DRRAM)。
本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
应该理解到,本发明所揭露的***,可通过其它的方式实现。例如所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,模块之间的通信连接可以是通过一些接口,服务器或单元的间接耦合或通信连接,可以是电性或其它的形式。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种面向异构计算***的任务调度方法,其特征在于,包括:
S1、获取目标异构计算***对应的有向无环图,
S2、确定初始调度方案以及所述有向无环图对应的任务节点队列,基于所述任务节点队列及其拓扑关系确定概率分布矩阵,以及,基于所述任务节点队列的拓扑关系构建拓扑可行点队列;
S3、基于随机游走算法,在预设范围内取任一随机数,基于所述随机数在所述概率分布矩阵中确定多个指定点,得到指定点集合;基于所述指定点集合将所述拓扑可行点队列转换为边覆盖队列;
S4、基于概率分布算法对边覆盖队列进行模拟调度,更新当前概率分布矩阵;
S5、重复步骤S3~S4,直到达到预设次数,得到目标概率分布矩阵及其边覆盖队列,进而生成目标调度方案。
2.根据权利要求1所述的面向异构计算***的任务调度方法,其特征在于,所述预设范围为:
[0,1/(n+1)]
其中,n为所述任务节点队列的节点总数。
3.根据权利要求1所述的面向异构计算***的任务调度方法,其特征在于,所述基于所述随机数在所述概率分布矩阵中确定多个指定点,包括:
遍历所述概率分布矩阵中的所有节点,判断每个节点对应的对角元元素的虚部是否超过了所述随机数,若是,则该节点为指定点,若否,则该节点不是指定点。
4.根据权利要求1所述的面向异构计算***的任务调度方法,其特征在于,所述基于所述指定点集合将所述拓扑可行点队列转换为边覆盖队列,包括:
从所述拓扑可行点队列中的第二个节点开始,遍历每个节点pii,判断pii是否为所述指定点集合中的节点,若是,则将pii及其后序节点succ(pii)转换为(pii,succ(pii))放入边覆盖队列,若否,则选择节点pii对应的目标前序节点Pred(pii),将(pred(pii),pii)加入所述边覆盖队列;其中,所述目标前序节点为与当前节点通信代价最大的前序节点。
5.根据权利要求4所述的面向异构计算***的任务调度方法,其特征在于,所述方法还包括:在基于所述指定点集合将所述拓扑可行点队列转换为边覆盖队列之后的去连续步骤;
所述去连续步骤,包括:基于指定点集合[mi],找到所述边覆盖队列中的(pred(mi),mi),检查删去该边后是否产生逻辑错误,若否,则删除,若是,则保留。
8.一种面向异构计算***的任务调度装置,其特征在于,包括:
获取单元,用于获取目标异构计算***对应的有向无环图,
初始化单元,用于确定初始调度方案以及所述有向无环图对应的任务节点队列,基于所述任务节点队列及其拓扑关系确定概率分布矩阵,以及,基于所述任务节点队列的拓扑关系构建拓扑可行点队列;
边覆盖队列迭代单元,用于生成并输出目标调度方案,其中,通过以下方法生成所述目标调度方案,包括:S3、基于随机游走算法,在预设范围内取任一随机数,基于所述随机数在所述概率分布矩阵中确定多个指定点,得到指定点集合;基于所述指定点集合将所述拓扑可行点队列转换为边覆盖队列;S4、基于概率分布算法对边覆盖队列进行模拟调度,更新当前概率分布矩阵;S5、重复步骤S3~S4,直到达到预设次数,得到目标概率分布矩阵及其边覆盖队列,进而生成目标调度方案。
9.一种电子设备,其特征在于,包括处理器、网络接口和存储器,所述处理器、所述网络接口和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的面向异构计算***的任务调度方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序指令,所述程序指令被至少一个处理器执行时,用于实现如权利要求1-7任一项所述的面向异构计算***的任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211520501.3A CN115756803A (zh) | 2022-11-30 | 2022-11-30 | 面向异构计算***的任务调度方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211520501.3A CN115756803A (zh) | 2022-11-30 | 2022-11-30 | 面向异构计算***的任务调度方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115756803A true CN115756803A (zh) | 2023-03-07 |
Family
ID=85341186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211520501.3A Pending CN115756803A (zh) | 2022-11-30 | 2022-11-30 | 面向异构计算***的任务调度方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115756803A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251380A (zh) * | 2023-11-10 | 2023-12-19 | 中国人民解放军国防科技大学 | 一种面向单调流式图的优先级异步调度方法及*** |
-
2022
- 2022-11-30 CN CN202211520501.3A patent/CN115756803A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251380A (zh) * | 2023-11-10 | 2023-12-19 | 中国人民解放军国防科技大学 | 一种面向单调流式图的优先级异步调度方法及*** |
CN117251380B (zh) * | 2023-11-10 | 2024-03-19 | 中国人民解放军国防科技大学 | 一种面向单调流式图的优先级异步调度方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lera et al. | Availability-aware service placement policy in fog computing based on graph partitions | |
Arabnejad et al. | List scheduling algorithm for heterogeneous systems by an optimistic cost table | |
He et al. | QoS-driven service selection for multi-tenant SaaS | |
Wang et al. | Integer-ordered simulation optimization using R-SPLINE: Retrospective search with piecewise-linear interpolation and neighborhood enumeration | |
CN103530182A (zh) | 一种作业调度方法和装置 | |
JP2007140710A (ja) | タスク割り当て方法およびタスク割り当て装置 | |
CN111367644A (zh) | 一种面向异构融合***的任务调度方法及装置 | |
Masood et al. | HETS: Heterogeneous edge and task scheduling algorithm for heterogeneous computing systems | |
CN113867843A (zh) | 一种基于深度强化学习的移动边缘计算任务卸载方法 | |
CN115756803A (zh) | 面向异构计算***的任务调度方法、装置、设备及介质 | |
Denninnart et al. | Improving robustness of heterogeneous serverless computing systems via probabilistic task pruning | |
CN117097806A (zh) | 一种微服务调用图部署和请求路由联合优化方法及*** | |
Badri et al. | A sample average approximation-based parallel algorithm for application placement in edge computing systems | |
Deniziak et al. | Cost optimization of real-time cloud applications using developmental genetic programming | |
CN106407007B (zh) | 面向弹性分析流程的云资源配置优化方法 | |
CN114139730B (zh) | 一种面向边缘云网络中机器学习任务的动态定价和部署方法 | |
CN117670005A (zh) | 基于蚁群算法的超算互联网多目标工作流优化方法及*** | |
CN117687759A (zh) | 一种任务调度方法、装置、处理设备及可读存储介质 | |
Yu et al. | A sum-of-ratios multi-dimensional-knapsack decomposition for DNN resource scheduling | |
CN116782298A (zh) | 一种在云边***中实现资源抢占式卸载方法 | |
Fan et al. | Associated task scheduling based on dynamic finish time prediction for cloud computing | |
CN116069473A (zh) | 一种基于深度强化学习的Yarn集群工作流调度方法 | |
Herrmann et al. | Memory-aware list scheduling for hybrid platforms | |
Vinothina | Scheduling scientific workflow tasks in cloud using swarm intelligence | |
CN115129481A (zh) | 一种计算资源分配方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |