CN108108225B - 一种面向云计算平台的任务调度方法 - Google Patents

一种面向云计算平台的任务调度方法 Download PDF

Info

Publication number
CN108108225B
CN108108225B CN201711340244.4A CN201711340244A CN108108225B CN 108108225 B CN108108225 B CN 108108225B CN 201711340244 A CN201711340244 A CN 201711340244A CN 108108225 B CN108108225 B CN 108108225B
Authority
CN
China
Prior art keywords
task
virtual machine
father
indicate
cloud computing
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.)
Active
Application number
CN201711340244.4A
Other languages
English (en)
Other versions
CN108108225A (zh
Inventor
耿晓中
柯洪昌
于澜
任斌
鲍杰
徐欣欣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changchun Institute Technology
Original Assignee
Changchun Institute Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Changchun Institute Technology filed Critical Changchun Institute Technology
Priority to CN201711340244.4A priority Critical patent/CN108108225B/zh
Publication of CN108108225A publication Critical patent/CN108108225A/zh
Application granted granted Critical
Publication of CN108108225B publication Critical patent/CN108108225B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种面向云计算平台的任务调度方法,包括:遍历DAG图中的所有任务结点,依次计算得到每个结点任务的静态优先级;按照静态优先级降序排列任务,将任务依次放入任务优先级队列中;对于任务优先级队列中各个任务,只要能够提前当前任务的开始执行时间,且已经被调度的任务不被延迟的情况下,就复制当前任务的父任务,而不仅仅复制当前任务的关键父任务。相对于传统算法,提前了任务复制的开始阶段,先任务复制,然后再选择虚拟机,使任务能在使它完成最快的虚拟机上执行,使虚拟机的选择更加合理。在虚拟机的选择阶段考虑了负载平衡,实现了云计算***良好的负载均衡性,提高了云计算***的资源利用率。

Description

一种面向云计算平台的任务调度方法
技术领域
本发明属于云计算任务调度技术领域,具体涉及一种面向云计算平台的任务调度方法。
背景技术
作为一个商业模型,云计算需要处理大量的用户群体提交的任务集合,怎样有效地调度这些任务是一个至关重要的问题。云计算任务调度策略是决定***性能的关键因素,也是云计算服务质量的重要保证。一个好的任务调度方法应能减少任务的总执行时间,提高虚拟机的资源利用率;在任务调度过程中应能兼顾***的负载平衡,合理有效地利用计算资源,确保用户需求在较短时间内被响应,提高资源的利用率。
对于独立任务调度,一些成熟的理论和方法已经被广泛使用,然而关于相关任务的调度问题仍然是国内外的研究热点之一。当前已有的经典算法的调度策略和应用角度也是各不相同。
启发式算法中的表调度方法由于设计简单并且容易实现而被广泛使用。表调度方法的基本思想是:通过分配每个任务一个优先级构造任务调度列表,然后依次取出每个任务分配给各个处理器,使当前任务的开始执行时间或者完成时间最早,但是没有考虑任务执行的并行性和处理器之间的通信开销。
HEFT算法是一个基于***的表调度方法,只要不违背任务间的优先级限制就可以把任务***到两个已经被调度的任务之间的空闲时间内去执行,HEFT算法按照从当前任务到结束任务的关键路径长度去计算任务的优先级,这种方法比较简单,但是容易陷入局部最优,并且没有使用任务复制技术,很难得到较短的调度时间。
HCPFD和HNDP方法合并了表调度和任务复制技术,HCPFD仅考虑复制关键父任务,HNDP方法不仅考虑复制关键父任务,而且考虑复制关键父任务的父任务,尽可能早地提前了当前任务的开始时间。然而,HCPFD和HNDP方法都没有有效调度非关键路径上的任务,因此影响了任务调度的整体性能。
DDS方法采用先调度后优化的思想,在不违背任务之间约束关系的前提下,将关键任务尽可能调度到处理器的空闲时间段去运行,从而缩短了全体任务的执行时间。但是该算法没有考虑处于不同处理器的关键任务之间的通信开销,也没有考虑***的负载平衡。
因此,现有的各类任务调度方法,无法满足人们对最小化任务调度长度和合理利用虚拟资源的需求。
发明内容
针对现有技术存在的缺陷,本发明提供一种面向云计算平台的任务调度方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种面向云计算平台的任务调度方法,包括以下步骤:
步骤1,初始化任务调度队列,计算每个任务的静态优先级,按照静态优先级降序排列任务,将任务依次放入任务优先级队列中;
具体包括:
构建任务DAG图;DAG图由四元组G=(T,E,W,C)构成,各成员定义如下:
(1)T表示DAG图中的任务集合,共有n个任务,T={T1,T2,…,Tn};
(2)E={Ei,j|Ti,Tj∈T}表示任务间通信边的集合,Ei,j表示从任务Ti到任务Tj的一条有向边;
(3)W是一个n*m矩阵,表示n个任务分别在m个虚拟机上的执行时间,m为虚拟机总数量;虚拟机集合P表示为:P={P1,P 2,…,P m};
W(Ti,Pk)表示任务Ti在虚拟机Pk上的运行时间,Pk∈P;按照公式(1)计算任务Ti的平均运行时间
(4)C是任务间的通信开销,C(Ei,j)表示有向边Ei,j上的通信开销。假设当两个任务被分到同一虚拟机上时,任务间的通信开销为0;
(5)任务Ti的前驱任务集合pred(Ti)表示为:pred(Ti)={Te|Ee,i∈E};
任务Ti的后继任务集合succ(Ti)表示为:succ(Ti)={Ts|Ei,s∈E};
(6)假设DAG图中只有一个起点,用Tstart表示;只有一个终点用Tend表示;
(7)按照如下公式(2)计算DAG图中的每个任务Ti的静态优先级rank(Ti):
以Tend作为计算开始结点,以Tstart作为计算结束结点,按照从下向上,同层从左到右的原则,遍历DAG图中的所有任务结点,依次计算得到每个结点任务的静态优先级;
步骤2,令i=1;
步骤3,选择任务Ti
步骤4,令k=1;
步骤5,按照公式(3)计算任务Ti在虚拟机Pk上的开始执行时间(st(Ti,Pk)):
其中:
任务Ti在虚拟机Pk上的开始执行时间(st(Ti,Pk))是指:任务Ti的所有前驱任务都被执行完,并且虚拟机Pk接收到任务Ti的所有前驱任务的执行结果时,任务Ti可以在Pk上开始运行的时间:
ava(Pk)表示虚拟机Pk的起始可用时间,指虚拟机Pk的就绪时间或最近分配到虚拟机Pk上的任务Ti的完成时间,表示为:ava(Pk)=0或者ava(Pk)=ct(Ti,Pk);
ct(Te,Px)表示任务Ti的前驱任务在除虚拟机Pk外的其他对应虚拟机上的完成时间;
步骤6,将任务Ti的父任务结点按照静态优先级值降序排列,构造得到父任务队列;F为父任务队列中父任务结点数量;父任务队列Ti 0表示为:Ti 0={Ti-1 0,Ti-2 0,…,Ti-F 0};其中,Ti-1 0表示任务Ti的父任务队列中静态优先级最高的任务;Ti-2 0表示任务Ti的父任务队列中静态优先级次高的任务;Ti-F 0表示任务Ti的父任务队列中静态优先级最低的任务;父任务队列Ti 0中任意一个父任务表示为Ti-f 0
步骤7,令f=1;
步骤8,按照公式(5)计算虚拟机Pk相对于任务Ti的空闲时间slot(Ti,Pk);其中,虚拟机Pk的空闲时间指虚拟机Pk已经处于就绪状态,但任务Ti需要等待其前驱任务的执行结果;
slot(Ti,Pk)=st(Ti,Pk)-ava(Pk) (5)
步骤9,判断Ti的父任务Ti-f 0是否满足以下规则:1)slot(Ti,Pk)≥W(Ti-f 0,Pk)并且ct(Qf,Pk)<st(Ti,Pk);而且父任务Ti-f 0没有在虚拟机Pk上执行过;其中,W(Ti-f 0,Pk)代表父任务Ti-f 0在虚拟机Pk上的运行时间;ct(Qf,Pk)表示父任务Ti-f 0在虚拟机Pk上的完成时间;
如果满足,则复制Ti-f 0到虚拟机Pk的空闲时间slot(Ti,Pk)上,更新当前任务Ti的开始执行时间(st(Ti,Pk))和虚拟机Pk的空闲时间slot(Ti,Pk);如果不满足,执行步骤10;
步骤10,令f=f+1;判断f是否大于F,如果大于,则执行步骤11;如果不大于,则返回执行步骤9;
步骤11,任务Ti在虚拟机Pk上的完成时间等于任务Ti的开始执行时间加上任务Ti的执行时间,即:根据公式(4)计算Ti在Pk上的完成时间(ct(Ti,Pk)):
ct(Ti,Pk)=st(Ti,Pk)+W(Ti,Pk) (4)
步骤12,令k=k+1;判断k是否大于m,如果大于,则执行步骤13;如果不大于,则返回执行步骤5;
步骤13,计算云计算***的虚拟机负载平衡标准偏差Lk
步骤14,根据用户需求分配任务Ti到ct(Ti,Pk)+Lk值小的虚拟机上去执行;
步骤15,令i=i+1;判断i是否大于n,如果大于,则执行步骤16;如果不大于,则返回执行步骤3;
步骤16,输出每个任务所分配的虚拟机;由虚拟机执行所分配的对应任务。
优选的,步骤13具体包括以下步骤:
步骤13.1,根据公式(6)计算虚拟机Pk的负载权值load(Pk):
load(Pk)=w1·r_cpu+w2·r_mem+w3·r_bw (6)
其中:r_cpu表示CPU利用率,r_mem表示内存利用率,r_bw表示网络带宽利用率;w1+w2+w3=1,w1,w2,w3分别表示CPU、内存、带宽的影响因子;
步骤13.2,根据公式(7)计算云计算***的虚拟机平均负载loadave
其中:load(Pk)表示虚拟机Pk的负载值;
步骤13.3,根据公式(8)计算云计算***的虚拟机负载平衡标准偏差Lk
由此得到云计算***的虚拟机负载平衡标准偏差Lk
本发明提供的一种面向云计算平台的任务调度方法具有以下优点:
(1)只要能够提前当前任务的开始执行时间,且已经被调度的任务不被延迟的情况下,就复制当前任务的父任务,而不仅仅复制当前任务的关键父任务。该方法最大地提前了当前任务的开始时间,从而提前了全体任务的完成时间。
(2)相对于传统算法,提前了任务复制的开始阶段。先任务复制,然后再选择虚拟机,使任务能在使它完成最快的虚拟机上执行,使虚拟机的选择更加合理。
(3)修改了任务优先级的计算公式,使该调度方法不容易陷入局部最优。
(4)在虚拟机的选择阶段考虑了负载平衡,实现了云计算***良好的负载均衡性,提高了云计算***的资源利用率。
附图说明
图1为本发明提供的一种面向云计算平台的任务调度方法的流程示意图。
图2为任务DAG图的示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
为方便对本发明进行理解,首先介绍基础知识:
云计算是将计算资源进行统一管理与统一分配的一种新型商业计算模式。云计算把具有可伸缩的、动态的、分散的计算资源进行虚拟化以后,以付费的方式提供给用户,用户只需要提交任务给云计算中心,云计算中心就会根据任务的需求分配相应的计算资源来执行这些任务。
任务调度是云计算中心将任务分配给计算资源的过程。由于云计算面对的任务量非常庞大,云中计算资源又具有异构性和动态性等因素,这些因素使得云计算任务调度变得比较复杂,任务调度是云计算的核心技术之一。
本发明的关键点是任务复制和表调度技术的综合使用,通过利用虚拟机的空闲时间复制当前任务的前驱任务,尽可能减小当前任务和其所有父任务间的通信开销,提前了当前任务的开始执行时间;在选择虚拟机时,不仅考虑当前任务的最早完成时间,也考虑了云计算***的负载平衡。
本发明特点如下:
(1)只要能够提前当前任务的开始执行时间,且已经被调度的任务不被延迟的情况下,就复制当前任务的父任务,而不仅仅复制当前任务的关键父任务。该方法最大地提前了当前任务的开始时间,从而提前了总任务的完成时间。
(2)相对于传统算法,提前了任务复制的开始阶段。先任务复制,然后再选择虚拟机,使任务能在使它完成最快的虚拟机上执行,使虚拟机的选择更加合理。
(3)在虚拟机的选择阶段考虑了负载平衡,实现了良好的负载均衡性,提高了云计算***的资源利用率。
参考图1,本发明提供一种面向云计算平台的任务调度方法,是一种云计算环境下基于优先级列表和任务复制技术的改进任务调度方法,包括以下步骤:
步骤1,初始化任务调度队列,计算每个任务的静态优先级,按照静态优先级降序排列任务,将任务依次放入任务优先级队列中;
具体包括:
构建任务DAG图;如图2所示,为一种DAG图具体示例;DAG图由四元组G=(T,E,W,C)构成,各成员定义如下:
(1)T表示DAG图中的任务集合,共有n个任务,T={T1,T2,…,Tn};例如,在图2中,共有12个任务;
(2)E={Ei,j|Ti,Tj∈T}表示任务间通信边的集合,Ei,j表示从任务Ti到任务Tj的一条有向边;例如,在图2中,任务T1到任务T2的一条有向边为E1,2
(3)W是一个n*m矩阵,表示n个任务分别在m个虚拟机上的执行时间,m为虚拟机总数量;虚拟机集合P表示为:P={P1,P 2,…,P m};
W(Ti,Pk)表示任务Ti在虚拟机Pk上的运行时间,Pk∈P;按照公式(1)计算任务Ti的平均运行时间
(4)C是任务间的通信开销,C(Ei,j)表示有向边Ei,j上的通信开销。假设当两个任务被分到同一虚拟机上时,任务间的通信开销为0;例如,在图2中,如果任务T1和任务T2没有被分到同一虚拟机上,则任务T1到任务T2的通信开销C(E1,2)为5;
(5)任务Ti的前驱任务集合pred(Ti)表示为:pred(Ti)={Te|Ee,i∈E};例如,在图2中,任务T5的前驱任务集合pred(T5)为任务T2和任务T3;本发明中,前驱任务均是指直接前驱任务;
任务Ti的后继任务集合succ(Ti)表示为:succ(Ti)={Ts|Ei,s∈E};例如,在图2中,任务T5的后继任务集合succ(T5)为任务T7和任务T10;本发明中,后继任务均是指直接后继任务;
(6)假设DAG图中只有一个起点,用Tstart表示;只有一个终点用Tend表示;例如,在图2中,Tstart即为任务T1;Tend即为任务T12
(7)按照如下公式(2)计算DAG图中的每个任务Ti的静态优先级rank(Ti):
以Tend作为计算开始结点,以Tstart作为计算结束结点,按照从下向上,同层从左到右的原则,遍历DAG图中的所有任务结点,依次计算得到每个结点任务的静态优先级;
步骤2,令i=1;
步骤3,选择任务Ti
步骤4,令k=1;
步骤5,按照公式(3)计算任务Ti在虚拟机Pk上的开始执行时间(st(Ti,Pk)):
其中:
任务Ti在虚拟机Pk上的开始执行时间(st(Ti,Pk))是指:任务Ti的所有前驱任务都被执行完,并且虚拟机Pk接收到任务Ti的所有前驱任务的执行结果时,任务Ti可以在Pk上开始运行的时间:
ava(Pk)表示虚拟机Pk的起始可用时间,指虚拟机Pk的就绪时间或最近分配到虚拟机Pk上的任务Ti的完成时间,表示为:ava(Pk)=0或者ava(Pk)=ct(Ti,Pk);其中,如果虚拟机Pk当前为空闲状态,则ava(Pk)即为虚拟机Pk的就绪时间,值为0;如果虚拟机Pk当前为非空闲状态,则ava(Pk)为最近分配到虚拟机Pk上的任务Ti的完成时间。
ct(Te,Px)表示任务Ti的前驱任务在除虚拟机Pk外的其他对应虚拟机上的完成时间;
步骤6,将任务Ti的父任务结点按照静态优先级值降序排列,构造得到父任务队列;F为父任务队列中父任务结点数量;父任务队列Ti 0表示为:Ti 0={Ti-1 0,Ti-2 0,…,Ti-F 0};其中,Ti-1 0表示任务Ti的父任务队列中静态优先级最高的任务;Ti-2 0表示任务Ti的父任务队列中静态优先级次高的任务;Ti-F 0表示任务Ti的父任务队列中静态优先级最低的任务;父任务队列Ti 0中任意一个父任务表示为Ti-f 0
步骤7,令f=1;
步骤8,按照公式(5)计算虚拟机Pk相对于任务Ti的空闲时间slot(Ti,Pk);其中,虚拟机Pk的空闲时间指虚拟机Pk已经处于就绪状态,但任务Ti需要等待其前驱任务的执行结果;
slot(Ti,Pk)=st(Ti,Pk)-ava(Pk) (5)
步骤9,判断Ti的父任务Ti-f 0是否满足以下规则:1)slot(Ti,Pk)≥W(Ti-f 0,Pk)并且ct(Qf,Pk)<st(Ti,Pk);而且父任务Ti-f 0没有在虚拟机Pk上执行过;其中,W(Ti-f 0,Pk)代表父任务Ti-f 0在虚拟机Pk上的运行时间;ct(Qf,Pk)表示父任务Ti-f 0在虚拟机Pk上的完成时间;
如果满足,则复制Ti-f 0到虚拟机Pk的空闲时间slot(Ti,Pk)上,更新当前任务Ti的开始执行时间(st(Ti,Pk))和虚拟机Pk的空闲时间slot(Ti,Pk);如果不满足,执行步骤10;
步骤10,令f=f+1;判断f是否大于F,如果大于,则执行步骤11;如果不大于,则返回执行步骤9;
步骤11,任务Ti在虚拟机Pk上的完成时间等于任务Ti的开始执行时间加上任务Ti的执行时间,即:根据公式(4)计算Ti在Pk上的完成时间(ct(Ti,Pk)):
ct(Ti,Pk)=st(Ti,Pk)+W(Ti,Pk) (4)
步骤12,令k=k+1;判断k是否大于m,如果大于,则执行步骤13;如果不大于,则返回执行步骤5;
步骤13,计算云计算***的虚拟机负载平衡标准偏差Lk
本步骤具体包括以下步骤:
步骤13.1,根据公式(6)计算虚拟机Pk的负载权值load(Pk):
load(Pk)=w1·r_cpu+w2·r_mem+w3·r_bw (6)
其中:r_cpu表示CPU利用率,r_mem表示内存利用率,r_bw表示网络带宽利用率;w1+w2+w3=1,w1,w2,w3分别表示CPU、内存、带宽的影响因子;
步骤13.2,根据公式(7)计算云计算***的虚拟机平均负载loadave
其中:load(Pk)表示虚拟机Pk的负载值;
步骤13.3,根据公式(8)计算云计算***的虚拟机负载平衡标准偏差Lk
由此得到云计算***的虚拟机负载平衡标准偏差Lk
步骤14,根据用户需求分配任务Ti到ct(Ti,Pk)+Lk值小的虚拟机上去执行;
步骤15,令i=i+1;判断i是否大于n,如果大于,则执行步骤16;如果不大于,则返回执行步骤3;
步骤16,输出每个任务所分配的虚拟机;由虚拟机执行所分配的对应任务。
对比传统方法,本发明有以下优势:
(1)只要能够提前当前任务的开始执行时间,且已经被调度的任务不被延迟的情况下,就复制当前任务的父任务,而不仅仅复制当前任务的关键父任务。该方法最大地提前了当前任务的开始时间,从而提前了全体任务的完成时间。
(2)相对于传统算法,提前了任务复制的开始阶段。先任务复制,然后再选择虚拟机,使任务能在使它完成最快的虚拟机上执行,使虚拟机的选择更加合理。
(3)修改了任务优先级的计算公式,使该调度方法不容易陷入局部最优。
(4)在虚拟机的选择阶段考虑了负载平衡,实现了云计算***良好的负载均衡性,提高了云计算***的资源利用率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (2)

1.一种面向云计算平台的任务调度方法,其特征在于,包括以下步骤:
步骤1,初始化任务调度队列,计算每个任务的静态优先级,按照静态优先级降序排列任务,将任务依次放入任务优先级队列中;
具体包括:
构建任务DAG图;DAG图由四元组G=(T,E,W,C)构成,各成员定义如下:
(1)T表示DAG图中的任务集合,共有n个任务,T={T1,T2,…,Tn};
(2)E={Ei,j|Ti,Tj∈T}表示任务间通信边的集合,Ei,j表示从任务Ti到任务Tj的一条有向边;
(3)W是一个n*m矩阵,表示n个任务分别在m个虚拟机上的执行时间,m为虚拟机总数量;虚拟机集合P表示为:P={P1,P2,…,Pm};
W(Ti,Pk)表示任务Ti在虚拟机Pk上的运行时间,Pk∈P;按照公式(1)计算任务Ti的平均运行时间
(4)C是任务间的通信开销,C(Ei,j)表示有向边Ei,j上的通信开销,假设当两个任务被分到同一虚拟机上时,任务间的通信开销为0;
(5)任务Ti的前驱任务集合pred(Ti)表示为:pred(Ti)={Te|Ee,i∈E};
任务Ti的后继任务集合succ(Ti)表示为:succ(Ti)={Ts|Ei,s∈E};
(6)假设DAG图中只有一个起点,用Tstart表示;只有一个终点用Tend表示;
(7)按照如下公式(2)计算DAG图中的每个任务Ti的静态优先级rank(Ti):
以Tend作为计算开始结点,以Tstart作为计算结束结点,按照从下向上,同层从左到右的原则,遍历DAG图中的所有任务结点,依次计算得到每个结点任务的静态优先级;
步骤2,令i=1;
步骤3,选择任务Ti
步骤4,令k=1;
步骤5,按照公式(3)计算任务Ti在虚拟机Pk上的开始执行时间(st(Ti,Pk)):
其中:
任务Ti在虚拟机Pk上的开始执行时间(st(Ti,Pk))是指:任务Ti的所有前驱任务都被执行完,并且虚拟机Pk接收到任务Ti的所有前驱任务的执行结果时,任务Ti可以在Pk上开始运行的时间:
ava(Pk)表示虚拟机Pk的起始可用时间,指虚拟机Pk的就绪时间或最近分配到虚拟机Pk上的任务Ti的完成时间,表示为:ava(Pk)=0或者ava(Pk)=ct(Ti,Pk);
ct(Te,Px)表示任务Ti的前驱任务在除虚拟机Pk外的其他对应虚拟机上的完成时间;
步骤6,将任务Ti的父任务结点按照静态优先级值降序排列,构造得到父任务队列;F为父任务队列中父任务结点数量;父任务队列Ti 0表示为:Ti 0={Ti-1 0,Ti-2 0,…,Ti-F 0};其中,Ti-1 0表示任务Ti的父任务队列中静态优先级最高的任务;Ti-2 0表示任务Ti的父任务队列中静态优先级次高的任务;Ti-F 0表示任务Ti的父任务队列中静态优先级最低的任务;父任务队列Ti 0中任意一个父任务表示为Ti-f 0
步骤7,令f=1;
步骤8,按照公式(4)计算虚拟机Pk相对于任务Ti的空闲时间slot(Ti,Pk);其中,虚拟机Pk的空闲时间指虚拟机Pk已经处于就绪状态,但任务Ti需要等待其前驱任务的执行结果,任务Ti在等待其前驱任务的执行结果的等待时间,即为,虚拟机Pk的空闲时间;
slot(Ti,Pk)=st(Ti,Pk)-ava(Pk) (4)
步骤9,判断Ti的父任务Ti-f 0是否满足以下规则:slot(Ti,Pk)≥W(Ti-f 0,Pk)并且ct(Qf,Pk)<st(Ti,Pk);而且父任务Ti-f 0没有在虚拟机Pk上执行过;其中,W(Ti-f 0,Pk)代表父任务Ti-f 0在虚拟机Pk上的运行时间;ct(Qf,Pk)表示父任务Ti-f 0在虚拟机Pk上的完成时间;
如果满足,则复制Ti-f 0到虚拟机Pk的空闲时间slot(Ti,Pk)上,更新当前任务Ti的开始执行时间(st(Ti,Pk))和虚拟机Pk的空闲时间slot(Ti,Pk);如果不满足,执行步骤10;
步骤10,令f=f+1;判断f是否大于F,如果大于,则执行步骤11;如果不大于,则返回执行步骤9;
步骤11,任务Ti在虚拟机Pk上的完成时间等于任务Ti的开始执行时间加上任务Ti的执行时间,即:根据公式(5)计算Ti在Pk上的完成时间(ct(Ti,Pk)):
ct(Ti,Pk)=st(Ti,Pk)+W(Ti,Pk) (5)
步骤12,令k=k+1;判断k是否大于m,如果大于,则执行步骤13;如果不大于,则返回执行步骤5;
步骤13,计算云计算***的虚拟机负载平衡标准偏差Lk
步骤14,根据用户需求分配任务Ti到ct(Ti,Pk)+Lk值小的虚拟机上去执行;
步骤15,令i=i+1;判断i是否大于n,如果大于,则执行步骤16;如果不大于,则返回执行步骤3;
步骤16,输出每个任务所分配的虚拟机;由虚拟机执行所分配的对应任务。
2.根据权利要求1所述的面向云计算平台的任务调度方法,其特征在于,步骤13具体包括以下步骤:
步骤13.1,根据公式(6)计算虚拟机Pk的负载权值load(Pk):
load(Pk)=w1·r_cpu+w2·r_mem+w3·r_bw (6)
其中:r_cpu表示CPU利用率,r_mem表示内存利用率,r_bw表示网络带宽利用率;w1+w2+w3=1,w1,w2,w3分别表示CPU、内存、带宽的影响因子;
步骤13.2,根据公式(7)计算云计算***的虚拟机平均负载loadave
其中:load(Pk)表示虚拟机Pk的负载权值;
步骤13.3,根据公式(8)计算云计算***的虚拟机负载平衡标准偏差Lk
由此得到云计算***的虚拟机负载平衡标准偏差Lk
CN201711340244.4A 2017-12-14 2017-12-14 一种面向云计算平台的任务调度方法 Active CN108108225B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711340244.4A CN108108225B (zh) 2017-12-14 2017-12-14 一种面向云计算平台的任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711340244.4A CN108108225B (zh) 2017-12-14 2017-12-14 一种面向云计算平台的任务调度方法

Publications (2)

Publication Number Publication Date
CN108108225A CN108108225A (zh) 2018-06-01
CN108108225B true CN108108225B (zh) 2019-05-24

Family

ID=62216931

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711340244.4A Active CN108108225B (zh) 2017-12-14 2017-12-14 一种面向云计算平台的任务调度方法

Country Status (1)

Country Link
CN (1) CN108108225B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109213587B (zh) * 2018-09-12 2021-11-09 中国人民解放军战略支援部队信息工程大学 GPU平台下的多Stream并行DAG图任务映射策略
CN109784663B (zh) * 2018-12-20 2022-11-25 西北大学 一种工作流调度方法与装置
CN110008026A (zh) * 2019-04-09 2019-07-12 中国科学院上海高等研究院 基于额外预算均分的作业调度方法、装置、终端和介质
CN111782355B (zh) * 2020-06-03 2024-05-28 上海交通大学 一种基于混合负载的云计算任务调度方法及***
CN112306642B (zh) * 2020-11-24 2022-10-14 安徽大学 一种基于稳定匹配博弈理论的工作流调度方法
CN113064870B (zh) * 2021-03-22 2021-11-30 中国人民大学 一种基于压缩数据直接计算的大数据处理方法
CN115080236B (zh) * 2022-06-24 2024-04-16 西安电子科技大学 基于图分割的工作流部署方法
CN117290113B (zh) * 2023-11-22 2024-02-13 太平金融科技服务(上海)有限公司 一种任务处理方法、装置、***和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970609A (zh) * 2014-04-24 2014-08-06 南京信息工程大学 一种基于改进蚁群算法的云数据中心任务调度方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130339972A1 (en) * 2012-06-18 2013-12-19 Zhuoyao Zhang Determining an allocation of resources to a program having concurrent jobs

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970609A (zh) * 2014-04-24 2014-08-06 南京信息工程大学 一种基于改进蚁群算法的云数据中心任务调度方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
云环境下多DAG工作流的调度算法研究;任丰玲;《中国优秀硕士学位论文全文数据库-信息科技辑》;20131015;全文
基于多核分布式环境下的任务调度关键技术研究;耿晓中;《中国博士学位论文全文数据库-信息科技辑》;20130815;全文

Also Published As

Publication number Publication date
CN108108225A (zh) 2018-06-01

Similar Documents

Publication Publication Date Title
CN108108225B (zh) 一种面向云计算平台的任务调度方法
Wu et al. Deadline-constrained cost optimization approaches for workflow scheduling in clouds
Rimal et al. Workflow scheduling in multi-tenant cloud computing environments
US10003500B2 (en) Systems and methods for resource sharing between two resource allocation systems
Ge et al. GA-based task scheduler for the cloud computing systems
CN103810023B (zh) 一种云平台中分布式应用的智能部署方法及***
CN103927225B (zh) 一种多核心架构的互联网信息处理优化方法
CN105159762B (zh) 基于贪心策略的启发式云计算任务调度方法
US8843929B1 (en) Scheduling in computer clusters
Cérin et al. A new docker swarm scheduling strategy
Zhu et al. A cost-effective scheduling algorithm for scientific workflows in clouds
CN107329815A (zh) 一种基于BP‑Tabu搜索的云任务负载均衡调度方法
CN103377407A (zh) 云业务处理方法及相关装置和***
Islam et al. SLA-based scheduling of spark jobs in hybrid cloud computing environments
CN108737462A (zh) 一种基于图论的云计算数据中心任务调度方法
Nair et al. Efficient resource arbitration and allocation strategies in cloud computing through virtualization
Biswas et al. An auto-scaling framework for controlling enterprise resources on clouds
CN104035819B (zh) 科学工作流调度处理方法及装置
CN111913800B (zh) 基于l-aco的云中微服务成本优化的资源分配方法
Geng et al. A task scheduling algorithm based on priority list and task duplication in cloud computing environment
CN109062682A (zh) 一种云计算平台的资源调度方法和***
Fathalla et al. Best-KFF: a multi-objective preemptive resource allocation policy for cloud computing systems
Biswas et al. Predictive auto-scaling techniques for clouds subjected to requests with service level agreements
Singh et al. A comparative study of various scheduling algorithms in cloud computing
CN109976873A (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
GR01 Patent grant
GR01 Patent grant