有效
一种计算资源感知的任务调度方法
王毅、陈家贤、陈洁欣、廖好、周池、毛睿
深圳大学
摘要
本发明公开了一种计算资源感知的任务调度方法,根据任务的应用类型属性对待处理任务进行分组,将各组中不同类型的任务按截止时间进行排序,将排序后的任务根据延迟需求对不同类型的任务进行分组打包得到多个任务块,对任务块的截止时间进行更新,将任务块放入执行队列后按截止时间进行升序排序得到基本调度方案;根据待处理任务属性和计算资源,对潜在的会错过截止时间的高优先级任务进行重新调度,在保证系统吞吐率和延迟的同时充分考虑各任务属性,对执行顺序进行调整,尽量避免任务错过截止时间,充分利用多核设备并行计算优势,采用细粒度的任务调度对计算资源进行灵活分配,确保高优先级的任务不会错过截止时间,得到了高效的任务调度结果。
1.一种计算资源感知的任务调度方法,其特征在于,包括如下步骤:获取待处理任务对应的属性及任务执行的延迟需求,所述属性包括应用类型、任务到达时间、任务截止时间和任务的优先级;根据应用类型对待处理任务进行分组,将各个组中不同类型的任务按截止时间进行排序,将排序后的任务根据任务执行的延迟需求,对不同类型的任务进行分组打包得到多个任务块,接着对任务块的截止时间进行更新,将任务块放入执行队列后按截止时间进行升序排序,得到基本调度方案;根据待处理任务属性和计算资源,对基本调度方案中潜在的会错过截止时间的高优先级任务进行重新调度,得到最终的调度方案,包括:步骤1:将所有待处理任务分为A、B、C、D四类,其中A类任务是优先级位于[a,maxPrior]中的任务,B类任务是优先级位于[b,a]的任务,C类任务是优先级位于[c,b]的任务,D类任务是指优先级位于[0,c]的任务,maxPrior为计算系统支持的最高优先级级别,采用taskNum[p]表示优先级为p的任务的数量,p∈[0,maxPrior],taskTotal表示所有任务的总数量,a=max(|0.9*maxPrior|,x 1 ),其中x 1 满足 b=max(|0.7*maxPrior|,x 2 ),其中x 2 满足 c=max(|0.4*maxPrior|,x 3 ),其中x 3 满足 步骤S2:预先根据任务块的属性预分配对应的资源块,检查执行队列中是否存在可能逾期的任务块,判断与任务块对应的资源块的完成时间是否大于任务块中任务的最早截止时间,若存在可能预期的任务块则跳转到步骤S3,否则结束调度;步骤S3:从执行队列中找到需要重新调度的任务块,并将预先为任务块分配的计算资源标记为资源块;步骤S4:将待调度的资源块放入资源队列中,并按资源块的预期完成时间进行排序;步骤S5:将资源块中待调度的任务A、B、C、D四个任务类别分别放入4个分类队列中;步骤S6:对分类队列中的任务进行重新调度;步骤S7:搜索是否存在需要重新调度的任务块,若存在则跳转步骤S3,否则跳转步骤S8;步骤S8:如果分类队列中仍然存在待调度的任务,则将任务根据应用类型分组打包后插入到执行队列的队尾。
2.根据权利要求1所述的计算资源感知的任务调度方法,其特征在于,步骤S7中搜索是否存在需要重新调度的任务块的过程,包括:步骤S71:判断分类队列中是否存在A类分类队列或B类任务分类队列,若存在跳转步骤S72,否则结束流程;步骤S72:找到分类队列中A类或B类任务中最早的截止时间;步骤S73:对于任意满足资源块的完成时间小于任务截止时间的任务块,统计任务块中A类任务的个数aTask和B类任务的个数bTask,计算执行队列中每个任务块的重要性imb,其中imb=(bTask+2*aTask)/nTask,nTask是任务块中的任务总数量;步骤S74:统计分类队列中A类任务的个数aTask′、B类任务的个数bTask′,计算分类队列中任务的重要性imcq,其中imcq=(bTask′+2*aTask′)/(bTask′+aTask′);步骤S75:判断imb值最低的任务块,是否满足imb<imcq,若满足跳转步骤S76,否则结束流程;步骤S76:将满足imb<imcq的任务块标记为待调度的资源块。
3.根据权利要求1所述的计算资源感知的任务调度方法,其特征在于,步骤S6中对分类队列中的任务进行重新调度的过程,包括:步骤S61:判断资源队列是否为空,如果非空跳转步骤S62,否则结束流程;步骤S62:从资源队列头部取出一个资源块;步骤S63:按A类、B类、C类、D类的顺序访问分类队列中的每个队列,用type代表当前访问队列的类别;步骤S64:判断分类队列中的每个队列是否都已经访问过,如果还有存在未访问的队列PQ[type],则跳转步骤S65,否则跳转步骤S67;步骤S65:从队列PQ[type]中取出截止时间晚于资源块完成时间的任务集合Tset[type];步骤S66:将任务集合Tset[type]中的任务分配到资源块中,跳转步骤S64;步骤S67:将任务集合中未调度的任务放回分类队列中。
4.根据权利要求3所述的计算资源感知的任务调度方法,其特征在于,步骤S66中将任务集合Tset[type]中的任务分配到资源块的过程,包括:步骤S661:将任务集合Tset[type]中的任务根据应用类型和对应的根据任务执行的延迟需求进行重新分组打包,得到任务碎片,对于任务碎片中的任务,若当前分类队列CQ[type]对应A类或B类任务,则将任务按任务优先级进行排序;若CQ[type]对应C类任务,则将任务按照到任务达时间进行排序;若CQ[type]对应D类任务,则将任务的顺序随机打乱;步骤S662:将任务碎片按照集合中任务个数nTask进行降序排序,并放入任务碎片队列中;步骤S663:将资源块放入资源碎片列表;步骤S664:判断任务碎片队列是否为空,若非空则跳转步骤S665,否则结束流程;步骤S665:从任务碎片队列头部取出任务碎片TaskFrag;步骤S666:判断资源碎片列表是否遍历完毕,若遍历完毕则跳转步骤S667,否则跳转至步骤S6610;步骤S667:从资源碎片队列中获取尚未访问的碎片ResFrag;步骤S668:根据资源碎片ResFrag对任务碎片TaskFrag进行规整化;步骤S669:计算资源碎片ResFrag和任务碎片TaskFrag的亲和度affinity,跳转到步骤S666;步骤S6610:将任务碎片TaskFrag放入与之亲和度最高的资源碎片中;如果TaskFrag找不到合适的资源碎片,则将TaskFrag中的任务放回任务集合Tset[type]中;步骤S6611:如果步骤S668或步骤S6610中产生额外的资源碎片或任务碎片,则将它们分别放入对应的资源或任务碎片队列中,跳转到步骤S664。
5.根据权利要求4所述的计算资源感知的任务调度方法,其特征在于,步骤S668中根据资源碎片ResFrag对任务碎片TaskFrag进行规整化的过程,包括:对于给定的任务碎片和资源碎片,如果存在任务数量nTask>nPE,nPE为给定资源块、碎片的可用处理核数,则每个处理器核需要处理一个以上的任务,如果nTask%nPE!=0,说明在任务碎片处理过程中,有处理器核会处于空转状态,此时需对任务碎片进行规整化;如果(nTask%nPE)/nPE≤thrCut,thrCut表示任务块划分的阈值,对任务碎片TaskFrag进行切割,切割成任务大小为nPE-(nTask%nPE)的碎片,切割后需要对任务数量nTask、期望花费时间tCost值进行更新,同时切割会额外产生任务大小为nTask%nPE的碎片;如果(nTask%nPE)/nPE>thrCut,则不会对任务碎片TaskFrag进行任何处理。
6.根据权利要求4所述的计算资源感知的任务调度方法,其特征在于,步骤S669中计算资源碎片ResFrag和任务碎片TaskFrag的亲和度affinity的过程,包括:当任务碎片的预期完成时间tCost小于或等于资源碎片的可用时间限制tLimit时,分成四种不同的具体情况:第一种情况:任务碎片的处理器核占用数uPE等于资源碎片的可用处理器核数nPE,任务的预期花费时间也恰好等于资源的可用时间限制,亲和度affinity=3+nTask/nPE;第二种情况:任务碎片的处理器核占用数uPE等于资源碎片的可用处理器核数nPE,任务的预期花费时间小于资源的可用时间限制,亲和度affinity=2+nTask/nPE,这类情况下资源碎片会分割出一个新的资源碎片;第三种情况:任务碎片的处理器核占用数uPE小于资源碎片的可用处理器核数nPE,任务的预期花费时间恰好等于资源的可用时间限制,亲和度affinity=2,这类情况下资源碎片会分割出一个新的资源碎片;第四种情况:任务碎片的处理器核占用数、预期花费时间都分别小于资源碎片的可用处理器核数、可用时间限制,亲和度affinity=1,这类情况下资源碎片会分割出两个新的资源碎片。
7.根据权利要求4所述的计算资源感知的任务调度方法,其特征在于,步骤S669中计算资源碎片ResFrag和任务碎片TaskFrag的亲和度affinity的过程,包括:当任务碎片的预期完成时间tCost大于资源碎片的可用时间限制tLimit时,需要对任务碎片进行进一步的“拉伸”或“分割”操作,使得tCost′<tLimit,其中tCost’表示经过“拉伸”或“分割”操作后,任务碎片的预期完成时间,分为两类不同的具体情况:第一种情况,任务碎片的处理器核占用数uPE小于资源碎片的可用处理器核数nPE,使用任务拉伸的处理策略,同一个任务可以由多个处理器核协同完成,经过拉伸操作后,uPE=nPE;若此时存在tCost′≤tLimit,则亲和度affinity=-nPE/nTask,否则affinity=-∞;第二种情况,任务碎片的处理器核占用数uPE等于资源碎片的可用处理器核数nPE,对任务碎片进行切割,重新估算最多可以处理的任务数量nTask’,若nTask’=0,则亲和度affinity=-∞,否则affinity=-nPE/nTask′。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如权利要求1-7任一项所述的计算资源感知的任务调度方法。
9.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如权利要求1-7任一项所述的计算资源感知的任务调度方法。



