一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种无关异构多处理器及其实时调度方法与流程

2021-12-08 00:44:00 来源:中国专利 TAG:


1.本发明属于计算机领域,涉及一种多处理器及其调度方法,尤其涉及一种无关异构多处理器及其实时调度方法。


背景技术:

2.随着摩尔定律和登纳德缩放比例定律的失效,处理器中单个计算核的性能增长已近乎停止,结合日渐复杂的计算任务,通过单个处理器核来满足计算任务的资源需求越来越困难。为了应对计算资源不足的问题,通过在单个芯片上集成多个处理器核构成的多核处理器技术或是将多个处理器芯片通过互相的通信来形成一个分布式系统,以此提高计算系统总算力的技术应运而生。平行多处理器和分布式多处理器的差异在于,平行多处理器通过共享内存的形式实现处理器间信息交互;在分布式多处理器里,每个处理器或是处理器组有着局部的内存,处理器间通过消息传递来实现信息交互。这类平行或分布式的多处理器技术是目前计算系统在算力增长手段上的主要手段。
3.此外,通过硬件加速技术来满足计算量特别大的计算任务也是解决计算资源不足的一种方法。硬件加速技术中处理器的设计,是以被加速任务的计算特征为基础,对处理器架构进行设计,牺牲处理器的通用性来提高处理器对特定任务类型的计算速度。将不同架构的处理器或处理器核构成的异构多处理器系统能更好的满足复杂任务所需的计算资源。增加处理器的数量和提高多处理器的异构程度是目前处理器发展的主要趋势。
4.传统上,异构多处理器可以按照处理器间算力的异构程度分成3类,第一类是所有处理器都具有相同算力的等同多处理器,任务在任意处理器中执行所需的时间都相同;第二类是算力呈比例的一致异构多处理器,任务在不同的处理器中执行所需的时间和处理器间的算力比例呈倒数关系;第三类是算力没有比例关系的无关异构多处理器,任务在不同处理器上执行的所需的时间没有规律。
5.对于多处理器系统,为了合理的和最大化利用系统所提供的计算资源,必须有合适的任务调度算法设计和实现。调度算法的工作是将任务的计算工作,按照算法将工作分配到各处理器上执行。调度算法设计的优劣直接影响多处理器系统所能发挥的性能。在异构多处理器中,由于同一个任务在不同处理器上执行所需的计算资源不同,因此调度算法在设计上会比同构多处理器系统的设计更困难。
6.目前,异构多处理器在智能化设备上的应用除了最大化的利用系统的计算资源外,还需要满足任务调度的实时性。而实时性是指任务能在给定的时限内执行完毕的性质,在与人交互的智能化设备尤其重要。但是,现有的针对异构多处理器的实时调度算法只能在一致异构多处理器上进行实时调度,而不能在异构程度更高的无关异构多处理器上进行调度。
7.发明目的
8.本发明的目的就是为了应对现有技术中的不足,提供一种能在无关异构多处理器上进行实时调度的方法。


技术实现要素:

9.根据本发明的一个方面,提供了一种用于无关异构多处理器系统实时调度的调度系统,所述无关异构多处理器系统由多个采用平行架构或分布式架构处理器组成;所述调度系统包括离线分配器和在线执行器构成,所述在线执行器由多个生成执行器构成;所述生成执行器由生成器、联合优先队列模块和执行器构成;所述离线分配器分别与任务配置模块和处理器配置模块连接;所述联合有限队列模块包括多个固定任务作业模块和多个迁移任务作业模块;所述多个固定任务模块按照优先级偏置和作业截止时间进行排列;所述多个迁移任务模块按照优先级偏置和任务序号进行排列。
10.当所述无关异构多处理器系统采用分布式架构组合多个处理器时,将各个局部内存互相映射,并且将映射内存视为全局内存使用;
11.当所述无关异构多处理器系统采用平行架构组合多个处理器时,局部内存即为全局内存,不作映射处理。
12.根据本发明的另一个方面,提供了一种应用上述调度系统的实时调度方法,包括以下步骤:
13.a:离线分配器以任务配置和处理器配置为输入,按照任务分配算法将任务分配到各处理器上,然后将任务分配结果输出到生成执行器;
14.b:每个处理器都有一个对应的生成执行器,生成执行器将任务配置和任务分配结果作为输入,生成器以任务配置生成任务的作业输出到联合优先队列中,作业在联合优先队列里按照优先级排序,执行器执行联合优先队列中最高优先级的作业。
15.进一步地,所述步骤a中,所述任务配置里的多个任务构成一个任务集,所述任务包括周期任务和偶发任务,其中,所述周期任务由计算量向量和周期p表征;所述偶发任务由计算量向量和最小时间间隔t
sporadic
表征;所述计算量向量里的非零元素表征了任务所需的计算功能,所述非零元素的大小表征了任务对该计算功能所需的计算量;
16.所述处理器配置里的多个处理器构成一个处理器集,所述处理器由计算能力向量表征;所述计算能力向量里的非零元素表征了处理器所具备的计算功能,所述非零元素的大小表征了处理器对该计算功能在单位时刻内所能处理的计算量;
17.所述任务集和所述处理器集按照所述任务的计算量向量和计算能力向量进行聚类并划分成子集,聚类的规则是里非零元素的位置和里非零元素的位置一致,聚类后的任务子集和处理器子集构成了一一对应的任务集处理器集对(t
x

x
);
18.所述聚类后任务集处理器集对(t
x

x
)里,任务集t
x
里的任务以计算率向量或按降序排序;处理器集π
x
里的处理器以计算能力向量按降序排序。
19.进一步地,所述步骤a中,每个所述聚类后任务集处理器集对(t
x

x
)的处理过程具体包括以下步骤:
20.步骤a1:以装箱算法将多个任务分配到多个处理器中作为固定任务,直到处理器的剩余容量无法完整容纳剩余任务的计算量,此时任务分配到处理器的执行份额为1;
21.步骤a2:将步骤a1中所剩下的无法作为固定任务分配的任务视为迁移任务,按照处理器剩余的容量所能容纳的任务计算量的比例部分,作为迁移任务分配到处理器的执行份额进行分配,直到迁移任务被分配完为止;若所迁移述任务被分配完全前处理器已经没有剩余的容量,则任务分配失败,反之则分配成功;
22.进一步地,所述步骤b中,生成执行器以调度间隔t
sched
为周期进行周期性执行,每个周期的执行具体包括以下步骤:
23.步骤b1:所述生成器遍历任务列表,并按照所述任务属于周期任务还是偶发任务,按照各自的生成规则,生成所述任务对应的作业,并将该作业输出到联合优先队列里;当所述任务为周期任务时,新作业的生成规则为:当周期任务的上个生成作业的时刻t
last_job
和当前时刻t
now
的时间大于等于周期任务的周期p,即p≥t
now

t
last_job
时,则生成新作业任务;反之则等待下一个调度周期;
24.当所述任务为偶发任务时,新作业的生成规则为:检查是否有对应的偶发事件发生,所述偶发事件由预先定义的外部事件触发,触发时则将事件标志发送到生成器的偶发事件队列里;当偶发事件发生时,所述生成器根据偶发任务的上个生成作业时刻t
last_job
、最小时间间隔t
sporadic
和当前时刻t
now
判断是否生成作业任务,如果t
sporadic
≥t
now

t
last_job
,则生成新作业任务,反之则等待下一个调度周期;
25.步骤b2:如果在步骤b1有新作业生成,将新生成的作业放入到联合优先队列里;所述作业在联合优先队列里按照优先级排列,优先级最高的作业任务在队列的列头;作业的优先级由作业的截止时间、作业的任务类型和任务的序列决定;当作业的任务为固定任务时,作业的优先级由优先级偏置k
off
和截止时间d
job
决定,优先级为k
off
d
job
;当作业的任务为迁移任务时,作业的优先级由优先级偏置k
off
和作业的任务序列i
job
决定,优先级为k
off

i
job
;优先级偏置k
off
为一预设的正整数全局变量,取值要大于总任务数;
26.步骤b3:执行器检查当前执行的作业是否已执行完毕,若执行完毕,则将联合优先队列列头的任务移除队列;执行器检查当前执行的作业和联合优先队列列头的作业是否一致,如果一致,则等待下一个调度周期;反之则暂停当前的作业,并执行联合优先队列的列头。
附图说明
27.图1是本发明所述无关异构多处理器系统调度器的工作原理图。
28.图2是关异构多处理器系统调度器的生成执行器、处理器的结构示意图。
具体实施方式
29.以下结合附图详细说明本发明的实施方式,本领域技术人员应当理解,本发明的实施方式只是示例性的说明本发明最优方式,而不应被视为对本发明保护范围的限定。本发明的保护范围由所提交的权利要求书所确定。
30.图1是本发明所述无关异构多处理器系统的结构示意图,如图所示,无关异构多处理器系统由多个采用平行架构或分布式架构处理器组成;所述调度系统包括离线分配器和在线执行器构成,所述在线执行器由多个生成执行器构成;所述生成执行器由生成器、联合优先队列模块和执行器构成;所述离线分配器分别与任务配置模块和处理器配置模块连接;所述联合有限队列模块包括多个固定任务作业模块和多个迁移任务作业模块;所述多个固定任务模块按照优先级偏置和作业截止时间进行排列;所述多个迁移任务模块按照优先级偏置和任务序号进行排列。
31.当所述无关异构多处理器系统采用分布式架构组合多个处理器时,将各个局部内
存互相映射,并且将映射内存视为全局内存使用;
32.当所述无关异构多处理器系统采用平行架构组合多个处理器时,局部内存即为全局内存,不作映射处理。
33.当所述无关异构多处理器系统采用分布式架构组合多个处理器时,将各个局部内存互相映射,并且将映射内存视为全局内存使用。图2是关异构多处理器系统的生成执行器、处理器的工作原理,如图2所示,当所述无关异构多处理器系统采用平行架构组合多个处理器时,局部内存即为全局内存,不作映射处理。
34.应用上述调度系统对无关异构多处理器系统实时调度的方法包括以下步骤:
35.步骤a:离线分配器以任务配置和处理器配置为输入,按照任务分配算法将任务分配到各处理器上,然后将任务分配结果输出到生成执行器;任务配置里的多个任务构成一个任务集,其中,任务包括周期任务和偶发任务,周期任务由计算量向量和周期p表征;所述偶发任务由计算量向量和最小时间间隔t
sporadic
表征;所述计算量向量里的非零元素表征了任务所需的计算功能,所述非零元素的大小表征了任务对该计算功能所需的计算量;
36.所述处理器配置里的多个处理器构成一个处理器集,所述处理器由计算能力向量表征;所述计算能力向量里的非零元素表征了处理器所具备的计算功能,所述非零元素的大小表征了处理器对该计算功能在单位时刻内所能处理的计算量;
37.所述任务集和所述处理器集按照所述任务的计算量向量和计算能力向量进行聚类并划分成子集,聚类的规则是里非零元素的位置和里非零元素的位置一致,聚类后的任务子集和处理器子集构成了一一对应的任务集处理器集对(t
x

x
);
38.所述聚类后任务集处理器集对(t
x

x
)里,任务集t
x
里的任务以计算率向量或按降序排序;处理器集π
x
里的处理器以计算能力向量按降序排序;
39.每个所述聚类后任务集处理器集对(t
x

x
)的处理过程具体包括以下步骤:
40.步骤a1:以装箱算法将多个任务分配到多个处理器中作为固定任务,直到处理器的剩余容量无法完整容纳剩余任务的计算量,此时任务分配到处理器的执行份额为1;
41.步骤a2:将步骤a1中所剩下的无法作为固定任务分配的任务视为迁移任务,按照处理器剩余的容量所能容纳的任务计算量的比例部分,作为迁移任务分配到处理器的执行份额进行分配,直到迁移任务被分配完为止;若所述迁移任务被分配完全前处理器已经没有剩余的容量,则任务分配失败,反之则分配成功。
42.步骤b:每个处理器都有一个对应的生成执行器,生成执行器将任务配置和任务分配结果作为输入,生成器以任务配置生成任务的作业输出到联合优先队列中,作业在联合优先队列里按照优先级排序,执行器执行联合优先队列中最高优先级的作业;生成执行器以调度间隔t
sched
为周期进行周期性执行,每个周期的执行具体包括以下步骤:
43.步骤b1:所述生成器遍历任务列表,并按照所述任务属于周期任务还是偶发任务,按照各自的生成规则,生成所述任务对应的作业,并将该作业输出到联合优先队列里;当所述任务为周期任务时,新作业的生成规则为:当周期任务的上个生成作业的时刻t
last_job
和当前时刻t
now
的时间大于等于周期任务的周期p,即p≥t
now

t
last_job
时,则生成新作业任务;反之则等待下一个调度周期;
44.当所述任务为偶发任务时,新作业的生成规则为:检查是否有对应的偶发事件发生,所述偶发事件由预先定义的外部事件触发,触发时则将事件标志发送到生成器的偶发
事件队列里;当偶发事件发生时,所述生成器根据偶发任务的上个生成作业时刻t
last_job
、最小时间间隔t
sporadic
和当前时刻t
now
判断是否生成作业任务,如果t
sporadic
≥t
now

t
last_job
,则生成新作业任务,反之则等待下一个调度周期;
45.步骤b2:如果在步骤b1有新作业生成,将新生成的作业放入到联合优先队列里;所述作业在联合优先队列里按照优先级排列,优先级最高的作业任务在队列的列头;作业的优先级由作业的截止时间、作业的任务类型和任务的序列决定;当作业的任务为固定任务时,作业的优先级由优先级偏置k
off
和截止时间d
job
决定,优先级为k
off
d
job
;当作业的任务为迁移任务时,作业的优先级由优先级偏置k
off
和作业的任务序列i
job
决定,优先级为k
off

i
job
;优先级偏置k
off
为一预设的正整数全局变量,取值要大于总任务数。
46.步骤b3:执行器检查当前执行的作业是否已执行完毕,若执行完毕,则将联合优先队列列头的任务移除队列;执行器检查当前执行的作业和联合优先队列列头的作业是否一致,如果一致,则等待下一个调度周期;反之则暂停当前的作业,并执行联合优先队列的列头。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献