CN103257900B - 减少cpu占用的多处理器上实时任务集资源预留方法 - Google Patents
减少cpu占用的多处理器上实时任务集资源预留方法 Download PDFInfo
- Publication number
- CN103257900B CN103257900B CN201310199824.1A CN201310199824A CN103257900B CN 103257900 B CN103257900 B CN 103257900B CN 201310199824 A CN201310199824 A CN 201310199824A CN 103257900 B CN103257900 B CN 103257900B
- Authority
- CN
- China
- Prior art keywords
- task
- time
- period
- real
- resource
- 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
Links
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
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种减少CPU占用的多处理器上实时任务集资源预留方法。本发明包括实时任务集优化划分、任务截止期与激活时间设置以及任务子集的资源预留参数优化。所述的实时任务集优化划分是在动态关键路径划分的基础上,以资源优化使用为目标,使得满足任务集可调度性的同时最小化CPU占用;所述的任务截止期与激活时间设置是与数据传输时延相关联的任务截止期与激活时间设置。本发明针对嵌入式平台在节能、散热上的新需求,提出的新的任务集划分方法,在保证任务集实时性的同时最小化CPU占用。
Description
技术领域
本发明属于嵌入式实时操作系统技术领域,特别是涉及一种以减少CPU占用为目标的面向多处理器的实时任务集资源预留方法,以适应嵌入式多处理器平台对节能和散热控制的实际需要。
背景技术
现代嵌入式实时操作系统中程序的功能和复杂度不断提升,通常由包含多个不同特性软、硬实时任务的混杂程序集构成,互相竞争资源使用权。尤其在开放系统中,由于第三方应用程序的时间参数通常是不确定的,且可以随时到达或离开,使得资源占用具有极大的波动性。因此,隔离实时任务以防其互相干扰成为至关重要的设计准则,而资源预留是解决该问题的重要手段之一。资源预留技术使用伺服器机制,为每个任务的计算需求预留一定量的资源(CPU占用时间),该任务在实际运行时无法获得超过预留额度的资源。通过资源预留,硬、软实时任务甚至非实时任务可共存于同一系统,而不会互相干扰,从而实现任务间的时间隔离。
资源预留机制在单处理器上已较为成熟。然而,漏电、功耗及散热等物理瓶颈限制了单位面积晶体管数量的继续增加,处理器设计由单纯追求主频提升转向综合考虑计算、能耗等各方面因素。多处理器在节约成本,控制功耗、电磁兼容(EMC)等方面的优势使其成为嵌入式计算平台的必然趋势。在多处理器平台上,资源预留的研究和相关技术仍处于起步阶段。通常的做法是将实时操作系统中的程序以实时任务集的形式在多处理器上进行划分,并为所得到的各任务子集预留一定量的资源(CPU占用时间),之后通过实时操作系统调度实现各任务子集的并行执行。
已有的关于并行程序在多处理器上划分的技术,主要考虑如何获得可行的调度方案,或者最小化总调度时长(Makespan),而并没有考虑如何优化资源使用率。随着嵌入式多处理器平台在实际应用中的不断发展,为应对节能和散热控制的切实需要,优化计算资源利用率越来越成为系统设计的最重要因素之一。因此,对于实时任务集在多处理器上的划分,应使其在满足时间约束的情况下,最小化CPU占用率,这在嵌入式系统和移动设备上尤为重要。
当前,实时任务集在多处理器上优化分割的相关技术还较少。Baruah和Fisher提出一种将偶发实时任务划分到多处理器上的方法,但并没有考虑任务间的先后次序约束。Schranzhofer等人以最小化平均能耗为目标,提出了一种将任务划分到多处理器平台的方法,但并没有考虑任务的实时性。卢宇彤等人提出了一种将并行任务分配到多核处理器的映射算法,但其主要考虑的是Cache的划分,而没有考虑任务间的数据通信开销,而后者对于多处理器平台是至关重要的。Li等人提出一种将实时事务划分到多处理器的方法,其目标是在保证实时性的同时最小化系统工作量及处理器占用数。该方法主要针对实时数据库中实时事务的划分,而不是通用的实时并行程序。
将实时程序划分到多处理器上,也即是将实时程序分割到一组可并行执行的处理单元,因此可以参考实时程序在分布式系统划分方面的技术研究。Peng和Shin使用任务图表示周期性实时任务,并使用分支限界法将其划分到分布式系统上,所得的分割方案最小化任务的响应时间。Ramamritham提出一种将周期性任务划分到分布式系统的启发式搜索方法,并将任务优先次序、任务间通信开销、以及任务重复度等综合考虑。Abdelzaher和Shin考虑将大型实时程序划分到异构分布式系统的问题,按照将处理器、实时任务分别聚类再匹配的思想,提出了一种启发式方法,具有较好的可伸缩性。上述方法主要考虑是否能找到可行调度,或最小化任务的响应时间,普遍没有将资源最优利用作为性能目标。
现有研究通常使用带次序约束的子任务集来表示实时程序的内在并行性。而将一组有次序约束的任务划分到多处理器的问题,已被证明是NP完全问题。相关研究提出的启发式算法主要可分为两类。一类是列表调度(ListScheduling)方法。该类方法核心思想是:首先将任务按优先级排序,然后依次选择优先级最高的任务放置到最合适的处理器上;另一类是基于关键路径(CriticalPath)的方法。该类方法考虑任务间的通信开销,以最小化任务图的关键路径长度为目标进行程序划分。上述这些方法的主要目标是缩小总调度时长,而非优化资源利用率。
Buttazzo等人提出了一种优化分割方法,将带次序约束的实时程序划分到多核处理器上,既保证程序的实时性要求,又最小化处理器带宽的总占用率。但该方法并未考虑任务间的数据通信开销,在实际应用中有较大局限性,仅能在如采用共享内存的多核平台等情况下才能使用。
发明内容
本发明针对现有技术的不足,提出了一种减少CPU占用的多处理器上实时任务集资源预留方法,在重点考虑任务间的数据传输时延、改进任务截止期与激活时间的设置方法的基础上,提出了一种新的任务集划分方法,其在保证任务集实时性的同时最小化所需预留的计算资源(CPU占用时间)。方法适用于多核、多处理器及分布式平台。
本发明解决技术问题所采取的技术方案是,一种减少CPU占用的多处理器上实时任务集资源预留方法,包括实时任务集优化划分、任务截止期与激活时间设置以及任务子集的资源预留参数优化,其中:
所述的实时任务集优化划分是在动态关键路径划分的基础上,以资源优化使用为目标,使得满足任务集可调度性的同时最小化CPU占用;所述的任务截止期与激活时间设置是与数据传输时延相关联的任务截止期与激活时间设置。
作为一种优选,所述的以资源优化使用为目标的实时任务集优化划分方法步骤如下:
Step101:初始化划分结果P为空集;
Step102:使用动态关键路径划分方法对任务集V进行划分,该划分结果以P’={Fk}表示,其中执行流Fk表示任务集V的一个子集;
Step103:若划分结果的关键路径长度L大于任务集截止期D,则任务集不可调度;
Step104:取P’中任务执行时间之和最小的执行流F*,将F*从P’中移除;
Step105:取F*中未被访问过的最早开始时间ESTi最小的任务Ti,将其从F*中移除;
Step106:取P’中尚未寻找过的任务执行时间之和最大的执行流Fk,寻找能置放Ti的最早的空闲时间段;
Step107:若未找到空闲时间段,且P’中仍有未寻找过的执行流,则返回Step106;若未找到空闲时间段,且P’中所有执行流均被寻找过,则将Ti放回F*中的原位置;若找到空闲时间段,则将Ti放到该位置;
Step108:若F*中仍有Ti未被访问过,则返回Step105;
Step109:若F*不为空集,则将其加入划分结果P;
Step110:若P’不为空集,则返回Step104;
Step111:按划分结果P将任务集进行划分。
作为一种优选,所述的与数据传输时延相关的任务截止期与激活时间设置包括各任务截止期设置和各任务激活时间设置,其中,
所述的各任务Ti的截止期di设置步骤如下:
Step201:计算关键路径长度与截止期之比U=L/D,其中L为关键路径长度,D为任务集截止期;
Step202:对所有结束任务,设置其截止期为D;
Step203:选择一个所有后继任务的截止期已经被设置的任务Ti,设置di为其所有后继任务Tj中最小的dj-(Cj+ri,jDelayi,j)/U值,其中Cj为任务Tj的执行时间,Delayi,j为任务Ti到Tj的数据传输时延,ri,j为二元变量,当Ti和Tj被划分在同一执行流中,其值为0,反之为1;
Step204:若存在未被设置的任务,返回Step202,否则设置结束;
所述的各任务Ti的激活时间ai设置步骤如下:
Step301:对所有起始任务,设置其激活时间为0;
Step302:选择一个所有前驱任务的激活时间已经被设置的任务Ti,计与ai同属一个执行流的所有ai的前驱任务Tj中最大aj值为a’i,计与ai不属于同一个执行流的所有ai的前驱任务Tj中最大dj+rj,iDelayj,i值为d’i,设置ai=max{a’i,d’i};
Step303:若存在未被设置的任务,返回Step302,否则设置结束。
传统的任务集划分方法通常以最小化总调度时长(makespan)为目标,一般需要使用较多的计算资源才能保证其划分结果的实时性。本发明针对嵌入式平台在节能、散热上的新需求,提出的新的任务集划分方法,在保证任务集实时性的同时最小化CPU占用。同时,本发明重点考虑任务间的数据传输时延,改进了任务截止期与激活时间的设置方法,使得方法可广泛适用于多核、多处理器及分布式平台。本发明能够在保证任务集可调度性的前提下,通过将任务集划分为若干个执行流、设置各任务截止期与激活时间、及设置各执行流资源预留参数,最终最小化总CPU占用率。通过性能评估测试,本发明的方法在平均水平下比传统方法节省CPU占用15-30%左右。
附图说明
图1为本发明一种具体实施方式流程图。
图2为本发明实施例4维矩阵的并行高斯消元程序的任务图。
图3为本发明方法与动态关键路径(DCP)划分方法关于任务数v的影响比较。
图4为本发明方法与动态关键路径(DCP)划分方法关于形状参数s的影响比较。
图5为本发明方法与动态关键路径(DCP)划分方法关于连通度c的影响比较。
图6为本发明方法与动态关键路径(DCP)划分方法关于传输计算比CCR的影响比较。
图7为本发明方法与动态关键路径(DCP)划分方法关于截止期扩展参数dx的影响比较。
具体实施方式
以下结合附图对本发明作进一步说明。
在本发明实施过程中,实时操作系统任务集V为包含v个任务的集合,其实时性由其周期Period以及相对截止期D定义。任务Ti用于表示任务集中顺序执行的一部分,其无法被并行执行。任务的实时性以任务执行时间Ci,截止期di,以及激活时间ai定义。任务是可抢先的,并以最早截止期优先(EarliestDeadlineFirst,EDF)调度算法调度。任务间存在先后次序约束。对于一个任务,若其没有前驱任务,则称其为起始任务,若其没有后继任务,则称其为结束任务。前驱任务Ti的数据到达后继任务Tj所需的时间以Delayi,j表示,称为数据传输时延。只有当所有前驱任务执行完毕且数据完全到达后,后继任务才可以开始执行。任务集可以有向无环图(DAG)表示,其中图的顶点表示任务,图的边表示次序约束。执行流Fk表示任务集V的一个子集,以资源预留的形式为其分配计算资源,在实时操作系统中以(Alphak,Deltak)伺服器实现,其中Alphak≤1为伺服器带宽,Deltak≥0为伺服器最大时延。
本发明包含多个步骤。首先,将实时任务集V划分为m个执行流,每个执行流包含一个或多个任务。之后,为各任务设置激活时间与截止期,从而将任务间的次序约束转化为时间参数,使得可以单独地对每个执行流进行分析与调度。在此基础上,为每个执行流优化分配所需的计算资源,也即对各任务子集进行资源预留参数优化。
第一,任务集优化划分:由于实时任务集V必须在截止期D前完成,因此其总调度时长(Makespan)不得大于D;亦即,V可调度的一个必要条件是其关键路径长度L≤D。本发明在动态关键路径划分方法的基础上,提出以资源优化使用为目标的划分方法,使得满足任务集可调度性的同时最小化资源占用。
(一)动态关键路径(DynamicCriticalPath,DCP)划分方法
动态关键路径(DCP)划分方法基本步骤可归纳如下:
Step401:初始化划分结果P’为空集;
Step402:选择一个最迟开始时间LSTi与最早开始时间ESTi差距最小的任务Ti,若存在多个这样的任务,则优先选取ESTi值小的。此举确保率先选择关键路径上的任务;
Step403:将Ti划分到可以让Ti尽早开始的执行流Fk,也即要使其ESTi值尽量小;
Step404:如果没有任何已有执行流可以提供空闲时间以置放Ti,则将Ti划分到一个新的执行流,并将其加入划分结果P’;
Step405:如果存在还没有被划分的任务,返回Step402;
Step406:按划分结果P’将任务集进行划分。
其中,Step403尝试将Ti分别划分到已有的各个执行流中,并在执行流中寻找可以置放Ti的空闲时间段。当决定最终将Ti置放到某个执行流Fk的某个空闲时间段中时,若Ti与该空闲时间段的前置任务或后置任务不存在次序约束,则需要添加数据传输时延为0的伪次序约束,以确定执行流中任务执行的先后次序。
(二)最小资源预留(MinimumReservedResource,MRR)划分方法:
最小资源预留(MRR)划分方法是在使用动态关键路径(DCP)划分方法对任务集进行划分后,以减少CPU占用为目标,对划分方案进行重组。通常,当执行流数目越小,总的资源需求就越少。因此,最小资源预留(MRR)划分方法在不违反可调度性的基础上,将尽可能多的任务放置到同一执行流中以减少总的CPU占用。其步骤如前述Step101-Step111所示。
第二,与传输时延相关联的任务截止期与激活时间设置:当任务集被划分为多个执行流后,通过对各任务的截止期与激活时间进行设置,可以将任务间次序约束转化为时间参数。本发明的任务截止期与激活时间设置是与传输时延相关联的任务截止期与激活时间设置,具体步骤如前述Step201-Step204及Step301-Step303所示。
第三,任务子集的资源预留参数优化:当任务的截止期与激活时间被设置后,就可以计算满足可调度性的各执行流最大资源需求,并以此对各执行流所需预留的资源进行参数优化。
对于执行流Fk,其资源需求的上界可由其需求界限函数dbfk(t)给出,也即:
其中,(x)0表示max{0,x}。dbfk(t)是一个单调递增的周期性阶跃函数,其给出了任意时间段t内Fk所需的最大资源量。
在实时操作系统中,为执行流Fk预留计算资源,是以(Alphak,Deltak)伺服器实现的。一个(Alphak,Deltak)伺服器所能提供的资源的下界为Alphak(t-Deltak)。为确保执行流Fk的可调度性,伺服器所能提供的资源必须在任何时刻大于等于Fk的资源需求,即Fk资源需求的上界需小于等于伺服器提供资源的下界。因此,伺服器的参数设置必须满足:
dbfk(t)≤Alphak(t-Deltak)(1)
在实际应用中,伺服器是周期性的,其有效的CPU占用率(即单位时间内CPU占用时间)为
Bk=Alphak+2ε(1-Alphak)/Deltak
其中ε为伺服器激活时操作系统上下文切换所需的运行时开销。
任务子集的资源预留参数优化,也就是考虑如何设置Alphak与Deltak的值,使得在满足式(1)条件下,其有效的CPU占用率Bk最小。该问题可由如下的优化问题解得:
minimize:Alphak+2ε(1-Alphak)/Deltak
subjectto:dbfk(t)≤Alphak(t-Deltak)
Alphak<=1,Deltak>=0
当各执行流Fk的CPU占用率Bk确定后,即可计算整个任务集的总CPU占用率。
实施例:对图2所示4维矩阵的并行高斯消元程序的优化划分及资源预留。
图2所示为4维矩阵的并行高斯消元程序任务集对应的有向无环图,包含18个任务,每个任务的执行时间Ci以及任务间的数据传输时延如图中所标示。该任务集截止期为D=520。实施流程如图1所示。
首先,使用最小资源预留(MRR)方法划分任务集:
Step101:初始化划分结果P为空集;
Step102:使使用动态关键路径划分方法对任务集V进行划分(Step401-Step406),所得划分结果为P’={F1,F2,F3},即任务集被划分为3个执行流,各执行流包含的任务为:
F1:T1,T3,T7,T4,T9,T12,T13,T10,T14,T16,T17,T15,T18
F2:T5,T2,T8
F3:T6,T11
Step103:上述划分结果的关键路径长度L=440<D,因此任务集可调度;
Step104:取P’中任务执行时间之和最小的执行流F*,将F*从P’中移除;
Step105:取F*中未被访问过的最早开始时间ESTi最小的任务Ti,将其从F*中移除;
Step106:取P’中尚未寻找过的任务执行时间之和最大的执行流Fk,寻找能置放Ti的最早的空闲时间段;
Step107:若未找到空闲时间段,且P’中仍有未寻找过的执行流,则返回Step106;若未找到空闲时间段,且P’中所有执行流均被寻找过,则将Ti放回F*中的原位置;若找到空闲时间段,则将Ti放到该位置;
Step108:若F*中仍有Ti未被访问过,则返回Step105;
Step109:若F*不为空集,则将其加入划分结果P;
Step110:若P’不为空集,则返回Step104;
Step111:按划分结果P将任务集进行划分,所得划分结果P为:
F1:T1,T6,T3,T7,T8,T11,T4,T9,T12,T13,T10,T14,T16,T17,T15,T18
F2:T5,T2,
第二,进行与数据传输时延相关联的任务截止期与激活时间设置:
(1)各任务Ti的截止期di设置:
Step201:计算关键路径长度与截止期之比U=L/D,其中L为关键路径长度,D为任务集截止期;
Step202:对所有结束任务,设置其截止期为D;
Step203:选择一个所有后继任务的截止期已经被设置的任务Ti,设置di为其所有后继任务Tj中最小的dj-(Cj+ri,jDelayi,j)/U值,其中Cj为任务Tj的执行时间,Delayi,j为任务Ti到Tj的数据传输时延,ri,j为二元变量,当Ti和Tj被划分在同一执行流中,其值为0,反之为1;
Step204:若存在未被设置的任务,返回Step202,否则设置结束;
(2)各任务Ti的激活时间ai设置:
Step301:对所有起始任务,设置其激活时间为0;
Step302:选择一个所有前驱任务的激活时间已经被设置的任务Ti,计与ai同属一个执行流的所有ai的前驱任务Tj中最大aj值为a’i,计与ai不属于同一个执行流的所有ai的前驱任务Tj中最大dj+rj,iDelayj,i值为d’i,设置ai=max{a’i,d’i};
Step303:若存在未被设置的任务,返回Step302,否则设置结束。
任务截止期与激活时间设置结果如下:
任务 | T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 |
激活时间 | 0 | 200 | 0 | 0 | 200 | 0 | 0 | 0 | 0 |
截止期 | 80 | 520 | 160 | 320 | 330 | 120 | 220 | 250 | 350 |
任务 | T10 | T11 | T12 | T13 | T14 | T15 | T16 | T17 | T18 |
激活时间 | 410 | 0 | 0 | 0 | 410 | 410 | 410 | 410 | 410 |
截止期 | 440 | 280 | 390 | 410 | 460 | 510 | 480 | 490 | 520 |
第三,进行任务子集的资源预留参数优化,并计算任务集的总CPU占用率,结果为B=1.34446。
对比例:对图2所示4维矩阵的并行高斯消元程序任务集使用动态关键路径(DCP)方法进行划分。
首先,使用动态关键路径(DCP)方法对任务集进行划分(Step401-Step406),所得划分结果为:
F1:T1,T3,T7,T4,T9,T12,T13,T10,T14,T16,T17,T15,T18
F2:T5,T2,T8
F3:T6,T11
第二,设置任务截止期及激活时间,结果为:
任务 | T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 |
激活时间 | 0 | 214.545 | 0 | 0 | 214.545 | 214.545 | 0 | 332.727 | 0 |
截止期 | 94.5455 | 484.545 | 141.818 | 283.636 | 295.455 | 354.545 | 212.727 | 520 | 319.091 |
任务 | T10 | T11 | T12 | T13 | T14 | T15 | T16 | T17 | T18 |
激活时间 | 375.455 | 332.727 | 0 | 0 | 375.455 | 470 | 375.455 | 375.455 | 470 |
截止期 | 425.455 | 390 | 366.364 | 390 | 449.091 | 508.182 | 472.727 | 484.545 | 520 |
第三,进行任务子集的资源预留参数优化,并计算任务集的总CPU占用率,结果为B=2.00447。
通过实施例和对比例比较两种方法,本发明方法所需的总CPU占用率仅为DCP方法的67%,节约33%。
验证例:下面根据5个可调参数的不同设置而随机生成测试任务集(任务集数量共1770个),就本发明方法与DCP方法进行分析对比。结果显示,本发明相比于传统以缩短总调度时长为目标的划分方法,在平均情况下可降低任务集所需占用的CPU时间15-30%左右。
⑴任务数v:任务集V所包含的任务数量;
⑵形状参s:有向无环图(DAG)的深度h为任务的层数,其值由均值为的均匀分布随机生成;DAG的宽度wi为第i层上的任务数,其值由均值为的均匀分布随机生成。若s>1则所生成的DAG具有较高的并行性,而s<1会生成并行性较低的DAG;
⑶连通度c:任务间的次序约束以随机的方式设置。只有当Ti所在的层高于Tj所在的层时,才可以设置Ti为Tj的前驱任务,以此防止图中出现环路;
⑷传输计算比CCR:其定义为任务集的平均传输时延与平均执行时间之比;
⑸截止期扩展参数dx:由于DAG的关键路径长度L必须在任务集划分确定后才能求得,为确保测试任务集的可调度性,任务集的截止期D将在划分之后被赋值,且其值为D=dx×L。
以下是根据5个可调参数的不同设置而随机生成测试任务集的情况列表:
任务数v | 形状参数s | 连通度c | 传输计算比CCR | 截止期扩展参数dx | 测试任务集数 | |
1 | 10,12,14,…,48,50 | 0.8 | 0.7 | 0.8 | 1.2 | 630(21组) |
2 | 40 | 0.5,0.6,…,1.5 | 0.7 | 0.8 | 1.2 | 330(11组) |
3 | 40 | 0.8 | 0.1,0.2,…,1 | 0.8 | 1.2 | 300(10组) |
4 | 40 | 0.8 | 0.7 | 0.5,0.6,…,1.5 | 1.2 | 330(11组) |
5 | 40 | 0.8 | 0.7 | 0.8 | 1.0,1.1,…,1.5 | 180(6组) |
对任何一组上述参数的设置,我们随机生成30个测试任务集并取结果的均值。对每一个任务集,我们分别使用动态关键路径(DCP)划分方法和本发明方法进行任务集的划分,并比较各自的总CPU占用率B。
首先比较不同任务数v对方法的影响。测试任务集包含的任务数v分别为10,12,14,…,48,50,共21组630个任务集,形状参数s为0.8,连通度c为0.7,传输计算比CCR为0.8,截止期扩展参数dx为1.2。结果图3所示,总CPU占用率B随任务数增加而变大,而本发明方法比DCP方法所占用的CPU时间少,平均节省15-30%。
第二比较形状参数s对方法的影响。测试任务集包含的任务数v为40,连通度c为0.7,传输计算比CCR为0.8,截止期扩展参数dx为1.2,形状参数s分别为0.5,0.6,…,1.5,共11组330个任务集。结果如图4所示,本发明方法均比DCP方法节省资源。
第三比较连通度c对方法的影响。测试任务集包含的任务数v为40,形状参数s分别为0.8,传输计算比CCR为0.8,截止期扩展参数dx为1.2,连通度c分别为0.1,0.2,…,1,共10组300个任务集。结果如图5所示,本发明方法均比DCP方法节省资源。特别地,当任务间的连通度很高,也即存在较多任务间次序约束时,本发明方法可大幅减少所需资源。需要指出的是,当连通度较小时,任务集所需资源随着连通度增大反而减小。这是因为连通度小意味着次序约束较少,较多任务可以并行执行,但这需要使用更多的执行流,以至于总的资源需求增大。
第四比较传输计算比CCR对方法的影响。测试任务集包含的任务数v为40,形状参数s分别为0.8,连通度c为0.7,截止期扩展参数dx为1.2,传输计算比CCR分别为0.5,0.6,…,1.5,共11组330个任务集。结果如图6所示。任务集的资源占用随着CCR的增大而减小,而平均水平下本发明方法可比DCP方法减少资源占用15-30%。
第五比较截止期扩展参数dx对方法的影响。测试任务集包含的任务数v为40,形状参数s分别为0.8,连通度c为0.7,传输计算比CCR为0.8,截止期扩展参数dx分别为1.0,1.1,…,1.5,共6组180个任务集。结果如图7所示。任务集的资源占用随着dx的增大而减小,本发明方法可比DCP方法平均减少资源占用15-30%。
资源预留是实时操作系统中实现实时任务隔离的最有效手段之一,针对资源预留的任务集划分不仅可以保证任务集的实时性能,而且提高了任务的模块化程度和可移植性。另一方面,随着嵌入式多处理器平台在实际应用中的不断发展,为应对节能和散热控制的切实需要,优化资源利用率、减少CPU占用越来越成为系统设计的最重要因素之一。本发明提出一种面向多处理器的实时任务集资源预留方法,在保证实时并行程序可调度性的基础上,以最小化CPU占用率为目标,将任务集划分为多个子集,并以资源预留的形式对各任务子集进行计算资源的分配。任务集划分首先以缩短关键路径为目标,以最大程度满足任务集的可调度性。之后,将尽可能多的任务放置到同一子集中以减少总CPU占用率,从而节省所需预留的资源。性能评估结果表明,相比于传统以缩短总调度时长为目标的划分方法,本发明的方法在平均情况下可降低任务集所需分配的计算资源15-30%左右。
Claims (1)
1.减少CPU占用的多处理器上实时任务集资源预留方法,包括实时任务集优化划分、任务截止期与激活时间设置以及任务子集的资源预留参数优化,其特征在于:
所述的实时任务集优化划分是在动态关键路径划分的基础上,以资源优化使用为目标,使得满足任务集可调度性的同时最小化CPU占用,其步骤如下:
Step101:初始化划分结果P为空集;
Step102:使用动态关键路径划分方法对任务集V进行划分,任务集划分结果以P’={Fk}表示,其中执行流Fk表示任务集V的一个子集;
Step103:若划分结果的关键路径长度L大于任务集截止期D,则任务集不可调度;
Step104:取P’中任务执行时间之和最小的执行流F*,将F*从P’中移除;
Step105:取F*中未被访问过的最早开始时间ESTi最小的任务Ti,将其从F*中移除;
Step106:取P’中尚未寻找过的任务执行时间之和最大的执行流Fk,寻找能置放Ti的最早的空闲时间段;
Step107:若未找到空闲时间段,且P’中仍有未寻找过的执行流,则返回Step106;若未找到空闲时间段,且P’中所有执行流均被寻找过,则将Ti放回F*中的原位置;若找到空闲时间段,则将Ti放到该空闲时间段对应的位置;
Step108:若F*中仍有Ti未被访问过,则返回Step105;
Step109:若F*不为空集,则将其加入初始化划分结果P;
Step110:若P’不为空集,则返回Step104;
Step111:按初始化划分结果P将任务集进行划分;
所述的任务截止期与激活时间设置是与数据传输时延相关联的任务截止期与激活时间设置;其中,各任务的Ti的截止期di设置步骤如下:
Step201:计算关键路径长度与截止期之比U=L/D,其中L为关键路径长度,D为任务集截止期;
Step202:对所有结束任务,设置其截止期为D;
Step203:选择一个所有后继任务的截止期已经被设置的Ti,设置di为其所有后继任务Tj中最小的dj-(Cj+ri,jDelayi,j)/U值,其中Delayi,j为数据传输时延,ri,j为二元变量,当Ti和Tj被划分在同一执行流中,其值为0,反之为1;
Step204:若存在未被设置的任务,返回Step202,否则设置结束;
所述各任务的Ti激活时间ai设置步骤如下:
Step301:对所有起始任务,设置其激活时间为0;
Step302:选择一个所有前驱任务的激活时间已经被设置的Ti,计与ai同属一个执行流的所有ai的前驱任务Tj中最大aj值为a’i,计与ai不属于同一个执行流的所有ai的前驱任务Tj中最大dj+rj,iDelayj,i值为d’i,设置ai=max{a’i,d’i};
Step303:若存在未被设置的任务,返回Step302,否则设置结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310199824.1A CN103257900B (zh) | 2013-05-24 | 2013-05-24 | 减少cpu占用的多处理器上实时任务集资源预留方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310199824.1A CN103257900B (zh) | 2013-05-24 | 2013-05-24 | 减少cpu占用的多处理器上实时任务集资源预留方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103257900A CN103257900A (zh) | 2013-08-21 |
CN103257900B true CN103257900B (zh) | 2016-05-18 |
Family
ID=48961835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310199824.1A Active CN103257900B (zh) | 2013-05-24 | 2013-05-24 | 减少cpu占用的多处理器上实时任务集资源预留方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103257900B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293009B (zh) * | 2016-08-16 | 2018-01-26 | 华中科技大学 | 一种基于区域划分的嵌入式节能调度方法 |
CN106598716B (zh) * | 2016-12-02 | 2019-05-28 | 陕西尚品信息科技有限公司 | 一种基于多处理器的任务调度方法 |
CN109871266B (zh) * | 2018-12-15 | 2024-05-14 | 中国平安人寿保险股份有限公司 | 任务延时处理方法、装置、计算机装置及存储介质 |
CN109684087B (zh) * | 2018-12-17 | 2020-01-10 | 中科寒武纪科技股份有限公司 | 运算方法、装置及相关产品 |
CN109960576B (zh) * | 2019-03-29 | 2021-04-16 | 北京工业大学 | 一种面向cpu-gpu异构的低能耗任务调度策略 |
CN111176817B (zh) * | 2019-12-30 | 2023-03-28 | 哈尔滨工业大学 | 一种多核处理器上基于划分调度的dag实时任务间的干扰分析方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339523A (zh) * | 2007-07-05 | 2009-01-07 | 国际商业机器公司 | 多处理器环境中的流水线处理方法和设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446909B (zh) * | 2007-11-30 | 2011-12-28 | 国际商业机器公司 | 用于管理任务事件的方法和系统 |
US8677071B2 (en) * | 2010-03-26 | 2014-03-18 | Virtualmetrix, Inc. | Control of processor cache memory occupancy |
-
2013
- 2013-05-24 CN CN201310199824.1A patent/CN103257900B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339523A (zh) * | 2007-07-05 | 2009-01-07 | 国际商业机器公司 | 多处理器环境中的流水线处理方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103257900A (zh) | 2013-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103257900B (zh) | 减少cpu占用的多处理器上实时任务集资源预留方法 | |
Zhang et al. | Cost efficient scheduling for delay-sensitive tasks in edge computing system | |
CN109582448B (zh) | 一种面向关键度和时效性的边缘计算任务调度方法 | |
US9218213B2 (en) | Dynamic placement of heterogeneous workloads | |
CN110413391A (zh) | 基于容器集群的深度学习任务服务质量保证方法和系统 | |
CN104731657B (zh) | 一种资源调度方法和系统 | |
CN109960576A (zh) | 一种面向cpu-gpu异构的低能耗任务调度策略 | |
CN110308967A (zh) | 一种基于混合云的工作流成本-延迟最优化任务分配方法 | |
CN101237469A (zh) | 运用蚁群算法优化多QoS网格工作流的方法 | |
CN108628665A (zh) | 基于数据密集型科学工作流的任务调度与虚拟机整合方法 | |
CN103188521A (zh) | 转码分配方法及装置,转码方法及设备 | |
CN109032756A (zh) | 虚拟化云数据中心的调度方法 | |
CN105897864A (zh) | 一种云工作流调度方法 | |
Zhou et al. | Concurrent workflow budget-and deadline-constrained scheduling in heterogeneous distributed environments | |
CN105373426A (zh) | 一种基于Hadoop的车联网内存感知实时作业调度方法 | |
CN107908464A (zh) | 一种考虑可靠性的云计算工作流节能调度方法 | |
CN108768703A (zh) | 一种云工作流调度的能耗优化方法、云计算系统 | |
CN110196773B (zh) | 统一调度计算资源的多时间尺度安全校核系统及方法 | |
Wang et al. | A Smart Semipartitioned Real‐Time Scheduling Strategy for Mixed‐Criticality Systems in 6G‐Based Edge Computing | |
Che et al. | Slack reclamation for real-time task scheduling over dynamic voltage scaling multiprocessors | |
He et al. | Dynamic scheduling of parallel real-time jobs by modelling spare capabilities in heterogeneous clusters | |
Dubey et al. | QoS driven task scheduling in cloud computing | |
US20240004707A1 (en) | Methods and systems for energy-efficient scheduling of periodic tasks on a group of processing devices | |
Dahal et al. | Scheduling in multiprocessor system using genetic algorithms | |
Koneru et al. | Resource allocation method using scheduling methods for parallel data processing in cloud |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |