一种受约束的面向吞吐量优化的异构MPSoC系统任务调度方法与流程

文档序号:15636313发布日期:2018-10-12 21:31阅读:140来源:国知局
本发明涉及操作系统任务调度
技术领域
,尤其涉及一种受约束的面向吞吐量优化的异构mpsoc系统任务调度方法。
背景技术
:随着半导体制造技术的快速发展以及人们对高性能处理器的需求不断增加,多核处理器取代单核处理器成为现代处理器的主要设计范例。在不同处理器上采用并行计算同时执行多个操作或任务,可以满足人们日益增长的计算需求。多核处理器通过使用并行计算在延迟和吞吐量方面提高了系统性能。然而,这种方法导致功率密度过大。过大的功率密度会升高芯片温度,进而降低系统可靠性。虽然动态电压/频率调整(dvfs)方法可用于控制芯片温度,但降低处理器频率会增加宇宙射线引起的瞬态故障的概率。技术实现要素:本发明的目的是提供一种受约束的面向吞吐量优化的异构mpsoc系统任务调度方法,通过混合整数线性规划(milp)和两阶段的启发式方法最小化任务的完工时间,根据分配给每个处理器的任务序列和每个处理器的频率,可以有效地计算出最小完工时间的任务调度方案。本发明的目的是这样实现的:一种受约束的面向吞吐量优化的异构mpsoc系统任务调度方法,该方法包括以下步骤:步骤1:输入应用程序任务的参数,异构多核处理器配置和温度限制;步骤2:对于应用程序的任务数量小于100的情况,使用混合整数线性规划(milp)计算任务调度表,转步骤8;对于应用程序的任务数量大于等于100的情况转步骤3;步骤3:计算每个异构处理器集群的工作负载;步骤4:计算在相应可靠性约束下每个任务的副本数量,判断是否满足实时约束,满足时转步骤5,不满足则任务被视为不可调度;步骤5:验证当前任务调度表是否满足热约束,如果不满足转步骤6,满足则转步骤8;步骤6:使用热感知任务排序方法降低任务执行时集群的温度,验证当前任务调度表是否满足热约束,如果不满足转步骤7,满足则转步骤8;步骤7:使用动态电压/频率调整(dvfs)方法,验证当前任务调度表是否满足热约束,如果不满足则任务被视为不可调度,满足则转步骤8;步骤8:输出任务调度表和处理器的工作频率表。本发明所述步骤1具体包括:步骤a1:输入应用程序任务的参数b={τ1,τ2,…,τn}b是任务的集合,每个任务τi(1≤i≤n)的参数由τi:{μi,ri,wci,d}表示;μi(0<μi≤1)表示任务τi的强度;ri表示任务τi可靠性的最低要求,即任务τi的可靠性大于等于ri;wci表示任务τi最长完工时间;d表示任务的截止时间;步骤a2:输入异构多核处理器配置p={c1,c2,…,cm}p是集群的集合,每个集群ck(1≤k≤m)由相同的处理器组成,这些处理器具有dvfs功能,其电压/频率为lk是集群ck电压/频率的等级,并且1≤l≤lk;为了方便表达,假设和每个集群中的所有处理器都以相同的频率运行;步骤a3:确定温度限制。本发明所述步骤2具体包括:步骤b1:应用程序的任务数量小于100则为少量任务的情况;步骤b2:对于少量任务的情况,将问题转化成带约束的优化问题,即:min:tfinshtpeak≤tmax避免任务重复执行其中,tfinish是所有任务结束的时间;ai,k,l是二进制变量,当τi在集群ck以频率fk,l执行时ai,k,l的值为1,其他情况为0;tfinsh(τi)是任务τi的结束时间;ri,k,l是经过复制后任务τi以频率fk,l在群集ck执行的可靠性;tpeak是处理器的峰值温度,tmax是输入的阈值温度;步骤b3:使用混合整数线性规划(milp)计算任务调度表。本发明所述步骤3具体包括:步骤c1:计算n个任务的总工作负载wtot=wc1+wc2+…+wcnwtot是总工作负载,wci(1≤i≤n)是第i个任务的负载。步骤c2:使系统完工时间最小,计算每个异构处理器集群的工作负载;wk,opt是使系统完工时间最小,异构处理集群k的工作负载;步骤c3:用首次适应算法根据计算出来的每个集群的负载,将n个任务分配到m个集群中。本发明所述步骤4具体包括:步骤d1:计算在相应可靠性约束下每个任务的副本数量λ(f)是处理器在频率f处的故障率,其中λ0是处理器在最大频率fmax的平均故障率,d(d>0)表示故障率的灵敏度;ri(f)是处理器在频率f处的可靠性;γi是复制任务副本的数量;步骤d2:判断是否满足实时约束当tfinsh(τj)<d时,则满足实时约束,否则任务将被视为不可行调度。本发明所述步骤5具体包括:步骤e1:计算峰值温度步骤e2:验证当前任务调度表是否满足热约束当tpeak≤tmax时,满足热约束,否则不满足热约束。本发明所述步骤6具体包括:步骤f1:用群集ck中的任务初始化队列qk,tar;步骤f2:将任务τi分类为热任务和冷任务,将其加入相应的队列当tsteady(τi)≥tmax,将任务τi作为热任务加入热队列qk,hot,并将最热的任务置于队首,否则将任务τ作为冷任务加入冷队列qk,cool,并将最冷的任务置于队首;步骤f3:将任务进行迭代配对和排序如果队列qk,hot和qk,cool都不为空,则将qk,hot和qk,cool队首的任务按照热-冷的顺序进行配对,并使其加入队列qk,tar,然后更新队列qk,hot和qk,cool;否则,将qk,hot和qk,cool中非空队列的任务添加到队列qk,tar的队尾;步骤f4:验证当前任务调度表是否满足热约束当tpeak≤tmax时,满足热约束,否则不满足热约束。本发明所述步骤7具体包括:步骤g1:计算初始可用松弛度步骤g2:用贪心算法缩减热任务的工作频率如果则降低处理器频率,热任务工作频率f(τi)=fk,ξ-1;然后更新可用松弛度重新计算任务副本的数量γi;重复此过程,将集合tk中的所有热任务都检查一遍;步骤g3:验证当前调度表是否能够满足热约束当tpeak≤tmax时,满足热约束,否则不满足热约束任务将被视为不可行调度。本发明所述步骤8具体包括:步骤h1:输出每个集群的任务集合t1,t2,…,tm、每个集群操作频率f(τ1),f(τ2),…,f(τn)、每个集群任务执行顺序q1,tar,q2,tar,…,qm,tar、每个任务的复制任务副本的数量γ1,γ2,…,γn。异构多核处理器系统的每个群集都有指数级别的失败概率,并且系统有温度的限制。本发明是在可靠性和温度的限制下,计算出最小完工时间的任务调度方案。附图说明图1为本发明流程图;图2为使用rbsa、ests和两阶段启发式方法得到11个应用程序的最佳完工时间示意图;图3为使用rbsa、ests和两阶段启发式方法得到11个应用程序的峰值温度示意图;图4为使用rbsa、ests和两阶段启发式方法得到4个标准检查任务的最佳完工时间示意图;图5为使用rbsa、ests和两阶段启发式方法得到4个标准检查任务的峰值温度示意图。具体实施方式以下结合附图及具体实施例,对本发明作进一步的详细说明。实施例步骤1:输入应用程序任务的参数,异构多核处理器配置和温度限制。本发明实施过程中采用两组实验进行演示。第一组实验采用11个模拟应用程序来演示过程,应用程序中任务数量有100到600个,每次增加50个。每个任务完工时间的期望和标准差的范围分别为[4×108,8×109]和[2×108,2×109]。截止时间为总任务完工时间的1.5倍。任务可靠性的范围为[0.7,0.999],环境温度和最高温度分别40℃和70℃。第二组实验采用四个标准检查任务toast,madplay,tmndec和mpegplay演示过程。四个标准检查任务的参数如表1所示。表1:标准检查任务的参数应用描述完工时间期望标准差应用中任务数量toastgsm语音编码器3.2861.27100madplaymp3音频解码器2.2531.01130tmndech.263视频解码器2.7990.76290mpegplaympeg视频解码器2.0360.722140本实验基于versatileexpress开发平台进行建模,包含3个cortexa7处理器和2个cortexa15处理器。cortexa7处理器的频率可以从1ghz变化到1.2ghz,cortexa15处理器的频率可以从1.4ghz变化到2.5ghz。步骤2:对于少量任务和少量群集/处理器的情况,使用混合整数线性规划(milp)计算任务调度表si,j+sj,i≥0si,j+sj,i≤1tstart(τi)≤tstart(τj)+(1-si,j)·△·dtstart(τj)≤tstart(τi)+si,j·△·d其中,tstart(τi)为τi任务的开始时间,是τi任务在频率fk,l时的完工时间,ai,k,l是二进制变量,当τi在集群ck以频率fk,l执行时ai,k,l的值为1,其他情况为0。ri,k,l是经过复制后任务τi以频率fk,l在群集ck执行的可靠性。t(t)是[0,tfinish(ck)]期间的瞬时温度,tfinish(ck)是集群ck所有任务结束的时间。si,j是二进制变量,当τi在τj之前开始时si,j值为1,其他情况为0。△是大于等于1的常数。使用ampl/cplex解决此milp问题,得到出可靠性和热约束条件下的最佳完工时间的任务调度表和处理器的工作频率表。使用混合整数线性规划(milp)、两阶段启发式算法、rbsa和ests得到11个应用程序的最佳完工时间的比较如表2所示。但是使用混合整数线性规划(milp)需要几个小时,而两阶段启发式算法仅需要几分钟。表2:使用混合整数线性规划(milp)、两阶段启发式算法、rbsa和ests得到11个应用程序的最佳完工时间步骤3:计算每个异构处理器集群的工作负载首先计算n个任务的总工作负载wtot=wc1+wc2+…+wcn使系统完工时间最小,计算每个异构处理器集群的工作负载用首次适应算法根据计算出来的每个集群的负载,将n个任务分配到m个集群中。步骤4:计算在相应可靠性约束下每个任务的副本数量步骤5:计算峰值温度步骤6:用群集ck中的任务初始化队列qk,tar。将任务τi分类为热任务和冷任务,将其加入相应的队列。将任务进行迭代配对和排序。步骤7:计算初始可用松弛度。用贪心算法缩减热任务的工作频率。验证当前调度表是否能够满足热约束。步骤8:输出任务调度表和处理器的工作频率表第一组实验中,使用rbsa、ests和两阶段启发式方法得到11个应用程序的最佳完工时间的比较如图2所示。实验结果表明,两阶段启发式方法的最佳完工时间小于rbsa稍大于ests,ests比两阶段启发式算法时间短的原因是ests没有考虑可靠性和温度限制。使用rbsa、ests和两阶段启发式方法得到11个应用程序的可靠性的比较如表3所示。实验结果表明,与rbsa和ests相比,只考虑温度限制,只考虑可靠性限制和考虑所有限制,两阶段启发式方法都具有最高的可靠性。表3:使用rbsa、ests和两阶段启发式方法得到11个应用程序的可靠性使用rbsa、ests和两阶段启发式方法得到11个应用程序的峰值温度的比较如图3所示。实验结果表明,两阶段启发式方法在三种方法中具有最低的峰值温度。第二组实验中,使用rbsa、ests和两阶段启发式方法得到四个标准检查任务toast,madplay,tmndec和mpegplay的最佳完工时间的比较如图4所示。实验结果表明,使用两阶段启发式方法得到的四个标准检查任务的完工时间小于rbsa大于ests。ests比两阶段启发式算法时间短的原因是ests没有考虑可靠性和温度限制。使用rbsa、ests和两阶段启发式方法得到四个标准检查任务的可靠性的比较如表4所示。实验结果表明,与rbsa和ests相比,两阶段启发式方法都具有最高的可靠性。使用rbsa、ests和两阶段启发式方法得到四个标准检查任务的峰值温度的比较如图5所示。实验结果表明,两阶段启发式方法在三种方法中具有最低的峰值温度。表4:使用rbsa、ests和两阶段启发式方法得到四个标准检查任务的可靠性当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1