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为父任务队列中父任务结点数量;父任务队列Ti0表示为:Ti0={Ti-10,Ti-20,…,Ti-F0};其中,Ti-10表示任务Ti的父任务队列中静态优先级最高的任务;Ti-20表示任务Ti的父任务队列中静态优先级次高的任务;Ti-F0表示任务Ti的父任务队列中静态优先级最低的任务;父任务队列Ti0中任意一个父任务表示为步骤7,令f=1;
步骤8,按照公式(5)计算虚拟机Pk相对于任务Ti的空闲时间slot(Ti,Pk);其中,虚拟机Pk的空闲时间指虚拟机Pk已经处于就绪状态,但任务Ti需要等待其前驱任务的执行结果;
slot(Ti,Pk)=st(Ti,Pk)-ava(Pk) (5)步骤9,判断Ti的父任务 是否满足以下规则:1) 并且ct(Qf,Pk)<st(Ti,Pk);而且父任务 没有在虚拟机Pk上执行过;其中, 代表父任务 在虚拟机Pk上的运行时间;ct(Qf,Pk)表示父任务 在虚拟机Pk上的完成时间;
如果满足,则复制 到虚拟机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,输出每个任务所分配的虚拟机;由虚拟机执行所分配的对应任务。
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。