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

任务调度方法、控制方法、核心、电子设备、可读介质与流程

2022-06-01 14:44:22 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,特别涉及一种任务调度的控制方法、一种任务调度方法、一种任务调度方法、一种核心、一种电子设备、一种计算机可读介质。


背景技术:

2.众核系统可以是至少一个芯片构成的,每个芯片具有多个计算单元,每个芯片中可独立调度并拥有完整计算能力的最小计算单元称为核心。在众核系统中,多个核心可以联合工作,各个核心可以分别独立运行程序指令,利用并行计算的能力加快程序的运行速度,并提供多任务处理能力。
3.在一些相关技术中,通过静态调度,按照提前制定好的调度策略将任务分配到众核系统上运行。静态调度将算法的某一部分映射到芯片的核心,每个核心只运行被映射的那一部分算法,使得众核系统任务处理的灵活性较差。


技术实现要素:

4.本公开提供一种基于众核系统的任务调度的控制方法、一种任务调度方法、一种任务调度方法、一种核心、一种电子设备、一种计算机可读介质。
5.第一方面,本公开实施例提供一种任务调度的控制方法,应用于众核系统的核心,所述控制方法包括:
6.对众核系统的至少一个核心簇进行负载检测,判断所检测的所述核心簇中是否存在目标核心簇,所述目标核心簇为至少一个所述核心簇中需要调整任务分配的核心簇;
7.在存在所述目标核心簇的情况下,根据负载检测结果控制所述目标核心簇调整任务分配;
8.其中,众核系统中包括多个核心,至少一个所述核心组成所述核心簇,所述众核系统包括至少一个所述核心簇。
9.在一些实施例中,对众核系统的至少一个核心簇进行负载检测,判断是否存在目标核心簇的步骤包括:
10.判断所检测的所述核心簇中是否存在超负载或计算资源过剩的核心簇;
11.在所检测的所述核心簇中存在超负载或计算资源过剩的核心簇的情况下,判定超负载或计算资源过剩的核心簇为所述目标核心簇。
12.在一些实施例中,判断众核系统的至少一个所述核心簇中是否存在超负载的核心簇的步骤包括:
13.判断预定时间段内,是否存在候选目标核心簇,所述候选目标核心簇为在n个同步周期内运行时间均最长的核心簇,其中,n为大于或等于预定数量的自然数;
14.在存在所述候选目标核心簇的情况下,判定存在超负载的核心簇;其中,所述候选目标核心簇为超负载的核心簇。
15.在一些实施例中,判断众核系统的至少一个所述核心簇中是否存在超负载的核心
簇的步骤包括:
16.判断是否存在运行时长超过预定同步周期的核心簇;
17.在存在运行时长超过所述预定同步周期的核心簇的情况下,判定存在超负载的核心簇,其中,运行时长超过所述预定同步周期的核心簇为超负载的核心簇。
18.在一些实施例中,根据负载检测结果控制所述核心簇调整任务分配的步骤包括:
19.申请空闲核心作为所述目标核心簇的替代核心簇的替代控制核。
20.在一些实施例中,根据负载检测结果控制所述目标核心簇调整任务分配的步骤还包括:
21.响应于所述替代控制核获取所述目标核心簇处理的任务的任务信息的请求信令,将所述目标核心簇处理的任务的任务信息传输到所述替代控制核。
22.第二方面,本公开实施例提供一种任务调度方法,应用于众核系统的核心,所述任务调度方法包括:
23.对当前核心归属的核心簇进行负载检测,判断所述当前核心归属的核心簇是否为目标核心簇,所述目标核心簇为需要调整任务分配的核心簇;
24.在所述当前核心归属的核心簇是所述目标核心簇的情况下,根据负载检测结果调整所述当前核心归属的核心簇的任务分配;
25.其中,众核系统中包括多个核心,至少一个所述核心组成所述核心簇,所述众核系统包括至少一个所述核心簇。
26.在一些实施例中,判断所述当前核心归属的核心簇是否为目标核心簇的步骤包括:
27.判断所述当前核心归属的核心簇是否超负载或计算资源过剩;
28.在所述当前核心归属的核心簇超负载或计算资源过剩的情况下,判定所述当前核心归属的核心簇为所述目标核心簇。
29.在一些实施例中,判断所述当前核心归属的核心簇是否超负载的步骤包括:
30.确定所述当前核心归属的核心簇在预定时间段内运行时长最大的同步周期的数量;
31.在所述当前核心归属的核心簇在预定时间段内运行时长最大的同步周期的数量超过预定数值的情况下,判定所述当前核心归属的核心簇超负荷。
32.在一些实施例中,判断所述当前核心归属的核心簇是否超负载的步骤包括:
33.判断所述当前核心归属的核心簇的运行时长是否超过预定同步周期;
34.在所述当前核心归属的核心簇的运行时长超过所述预定同步周期的情况下,判定所述核心簇超负载。
35.在一些实施例中,根据负载检测结果调整所述当前核心归属的核心簇的任务分配的步骤包括:
36.申请空闲核心作为所述目标核心簇的替代核心簇的替代控制核;
37.响应于所述替代控制核获取所述当前核心归属的核心簇处理的任务的任务信息的请求信令,将所述当前核心归属的核心簇处理的任务的任务信息传输到所述替代控制核;
38.响应于所述替代控制核获取原始数据的请求信令,获取所述原始数据;
39.将所述原始数据传输到所述替代控制核;
40.将接收到的所述替代核心簇的输入输出信息添加到由多个核心簇组成的流水线中;
41.向所述替代控制核发送启动信令。
42.在一些实施例中,所述获取所述原始数据,包括:
43.根据任务配置时的原始编译信息,从当前核心归属的核心簇中的至少一个核心中查找数据,并将所述数据重组为所述原始数据。
44.在一些实施例中,根据负载检测结果调整所述当前核心归属的核心簇的任务分配的步骤还包括:
45.接收到所述替代控制核发送的所述替代核心簇已启动的消息,解散所述当前核心归属的核心簇。
46.在一些实施例中,根据负载检测结果调整所述当前核心归属的核心簇的任务分配的步骤包括:
47.申请空闲核心作为所述当前核心归属的核心簇所属的核心;
48.重新进行任务分配。
49.第三方面,本公开实施例提供一种任务调度方法,应用于众核系统的核心,所述任务调度方法包括:
50.发送获取目标核心簇处理的任务的任务信息的请求信令,以获取所述任务信息;
51.根据获取的所述任务信息组建所述目标核心簇的替代核心簇;
52.在所述替代核心簇上运行所述目标核心簇处理的任务;
53.其中,众核系统中包括多个核心,至少一个所述核心组成所述核心簇,所述众核系统包括至少一个所述核心簇,所述目标核心簇为需要调整任务分配的所述核心簇。
54.在一些实施例中,根据获取的所述任务信息组建所述目标核心簇的替代核心簇的步骤包括:
55.根据所述任务信息申请多个空闲核心;
56.对多个所述空闲核心进行任务配置;
57.发送获取原始数据的请求信令,以获取所述原始数据;
58.根据所述任务信息将获取的所述原始数据分配到各个所述空闲核心;
59.确定所述替代核心簇的输入输出信息;
60.将所述替代核心簇的输入输出信息发送到所述目标核心簇的控制核;
61.在所述替代核心簇上运行所述目标核心簇处理的任务的步骤包括:
62.响应于所述目标核心簇的控制核发送的启动信令,在所述替代核心簇上运行所述目标核心簇处理的任务。
63.在一些实施例中,在所述替代核心簇上运行所述目标核心簇处理的任务的步骤之后,所述任务调度方法还包括:
64.向所述目标核心簇的控制核发送所述替代核心簇已启动的消息。
65.第四方面,本公开实施例提供一种核心,应用于众核系统,所述核心包括:
66.一个或多个处理单元;
67.存储单元,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多
个处理单元执行,使得所述一个或多个处理单元实现以下方法中的至少一者:
68.本公开实施例第一方面所述的任务调度的控制方法;
69.本公开实施例第二方面所述的任务调度方法;
70.本公开实施例第三方面所述的任务调度方法。
71.第五方面,本公开实施例提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现以下方法中的至少一者:
72.本公开实施例第一方面所述的任务调度的控制方法;
73.本公开实施例第二方面所述的任务调度方法;
74.本公开实施例第三方面所述的任务调度方法。
75.第六方面,本公开实施例提供一种电子设备,包括:
76.多个核心;以及
77.片上网络,被配置为交互所述多个核心间的数据和外部数据;
78.一个或多个所述核心中存储有一个或多个指令,一个或多个所述指令被一个或多个所述核心执行,以使一个或多个所述核心能够执行以下方法中的至少一者:
79.本公开实施例第一方面所述的任务调度的控制方法;
80.本公开实施例第二方面所述的任务调度方法;
81.本公开实施例第三方面所述的任务调度方法。
82.在本公开实施例中,可以通过高级别控制核对众核系统中各个核心簇进行负载检测,也可以由众核系统中各个核心簇的控制核对其归属的核心簇进行负载检测,当存在核心簇需要调整任务分配时,既可以在停机的情况下动态增加或减少需要调整任务分配的核心簇中的核心,也可以在不停机的情况下通过组建替代核心簇动态增减或减少需要调整任务分配的核心簇的计算资源,从而能够提高众核系统任务处理的灵活性,避免部分核心簇处理效率降低导致众核系统整体处理效率降低,同时提高了众核系统计算资源的利用效率。
83.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
84.附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
85.图1是本公开实施例中一种控制方法的流程图;
86.图2是本公开实施例中众核系统的示意图;
87.图3是本公开实施例中另一种控制方法中部分步骤的流程图;
88.图4是本公开实施例中又一种控制方法中部分步骤的流程图;
89.图5是本公开实施例中再一种控制方法中部分步骤的流程图;
90.图6是本公开实施例中再一种控制方法中部分步骤的流程图;
91.图7是本公开实施例中一种任务调度方法的流程图;
92.图8是本公开实施例中另一种任务调度方法中部分步骤的流程图;
93.图9是本公开实施例中又一种任务调度方法中部分步骤的流程图;
94.图10是本公开实施例中再一种任务调度方法中部分步骤的流程图;
95.图11是本公开实施例中再一种任务调度方法中部分步骤的流程图;
96.图12是本公开实施例中再一种任务调度方法中部分步骤的流程图;
97.图13是本公开实施例中一种任务调度方法的流程图;
98.图14是本公开实施例中另一种任务调度方法中部分步骤的流程图;
99.图15是本公开实施例中一种核心的组成框图;
100.图16是本公开实施例中一种计算机可读介质的组成框图;
101.图17是本公开实施例中一种电子设备的组成框图。
具体实施方式
102.为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
103.在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
104.如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
105.本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由
……
制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
106.除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
107.为了解决静态调度使众核系统任务处理的灵活性较差的问题,在本公开实施例中,根据计算任务动态的组建核心簇,核心簇中包括多个核心,众核系统中可以有多个核心簇,每个核心簇执行相应的计算任务。但是,各核心簇通常是以流水线方式执行计算任务。当处理的任务出现变化,例如业务流暴增,可能会导致部分核心簇超负载。在各核心簇以流水线方式执行计算任务的情况下,某一个核心簇处理效率降低会导致整个众核系统处理效率的降低。
108.有鉴于此,第一方面,参照图1,本公开实施例提供一种任务调度的控制方法,包括:
109.在步骤s110中,对众核系统的至少一个核心簇进行负载检测,判断所检测的所述核心簇中是否存在目标核心簇,所述目标核心簇为至少一个所述核心簇中需要调整任务分配的核心簇;
110.在步骤s120中,在存在所述目标核心簇的情况下,根据负载检测结果控制所述目标核心簇调整任务分配;
111.其中,众核系统中包括多个核心,至少一个所述核心组成所述核心簇,所述众核系统包括至少一个所述核心簇。
112.图2为众核系统的示意图。如图2所示,众核系统中包括第一核心和第二核心,多个第二核心组建成为核心簇(如图2中虚线框所示),在每个核心簇的多个第二核心中,包括一个作为该核心簇的控制核的第二核心。众核系统中可以有多个核心簇,每个核心簇执行相应的计算任务。
113.在本公开实施例中,由众核系统中的高级别控制核通过执行步骤s110至步骤s120对众核系统中各个核心簇统一进行负载检测,在有核心簇需要调整任务分配时,控制需要调整任务分配的核心簇调整任务分配。在本公开实施例中,执行步骤s110至步骤s120的高级别控制核可以是如图2所示的众核系统中的第一核心;也可以是众核系统中独立于各个核心簇的任意一个核心。本公开实施例对此不做特殊限定。
114.在本公开实施例中,负载检测是指判断核心簇处理的任务与核心簇的计算资源是否匹配。负载检测的结果可以是目标核心簇超负荷,在步骤s120中调整任务分配可以是增加目标核心簇中的核心数量以增加目标核心簇的计算资源;负载检测的结果也可以是目标核心簇计算资源过剩,在步骤s120中调整任务分配可以是减少目标核心簇中的核心数量以节约众核系统的计算资源,提高众核系统计算资源的利用率;负载检测结果还可以是核心簇处理的任务与核心簇的计算资源相匹配。本公开实施例对此不做特殊限定。
115.在本公开实施例提供的任务调度的控制方法中,通过高级别控制核对众核系统中各个核心簇进行负载检测,在有核心簇需要调整任务分配时,控制需要调整任务分配的核心簇调整任务分配,能够动态地为超负载的核心簇增加计算资源,还能及时的回收计算资源过剩的核心簇的计算资源,从而能够提高众核系统任务处理的灵活性,避免部分核心簇处理效率降低导致众核系统整体处理效率降低,同时提高了众核系统计算资源的利用效率。
116.作为一种可选的实施方式,高级别控制核通过负载检测发现核心簇超负荷或计算资源过剩时,则判定核心簇需要调整任务分配。
117.相应地,参照图3,在一些实施例中,步骤s110包括:
118.在步骤s111中,判断所检测的所述核心簇中是否存在超负载或计算资源过剩的核心簇;
119.在所检测的所述核心簇中存在超负载或计算资源过剩的核心簇的情况下,判定超负载或计算资源过剩的核心簇为所述目标核心簇。
120.在本公开实施例中,各个核心簇以流水线方式处理任务时,多个核心簇具有统一的同步周期。通常,同步周期由运行时间最长的核心簇的运行时长决定的。运行时间越长,表示核心簇的负载越大。作为一种可选的实施方式,可以根据一定时间段内多个核心簇的运行时长的关系,判断是否有超负荷的核心簇。
121.相应地,参照图4,在一些实施例中,步骤s111包括:
122.在步骤s111a中,判断预定时间段内,是否存在候选目标核心簇,所述候选目标核心簇为在n个同步周期内运行时间均最长的核心簇,其中,n为大于或等于预定数量的自然
数;在存在所述候选目标核心簇的情况下,判定存在超负载的核心簇;其中,所述候选目标核心簇为超负载的核心簇。
123.举例来说,预定时间段内可以包括多个同步周期,如果存在一个候选目标核心簇,其在预定时间段内的n个同步周期内运行时间均最长,则可以确定存在超负载的核心簇,n为大于或等于预定数量的自然数。这样,能够准确判断是否存在超负荷的核心簇,以进行任务调整。
124.作为另一种可选的实施方式,可以预设一个预定同步周期,当任意一个核心簇的运行时长超过预定同步周期时,则表示该核心簇超负荷。
125.相应地,参照图5,在一些实施例中,步骤s111包括:
126.在步骤s111b中,判断是否存在运行时长超过预定同步周期的核心簇;
127.在存在运行时长超过所述预定同步周期的核心簇的情况下,判定存在超负载的核心簇,其中,运行时长超过所述预定同步周期的核心簇为超负载的核心簇。
128.在本公开实施例中,在步骤s120中控制目标核心簇调整任务分配时,提供一种不停机调整目标核心簇的任务分配的方案。具体地,当需要调整目标核心簇的任务分配时,动态申请空闲核心,重新组建一个新的核心簇,用新的核心簇替代目标核心簇;其中,组建新的核心簇时,无需暂停目标核心簇的运行。在新的核心簇替代目标核心簇之后,可以解散目标核心簇,目标核心簇中的核心变为空闲核心,从而释放计算资源。
129.作为一种可选的实施方式,由高级别控制核确定新的核心簇的控制核,新的核心簇的控制核通过与高级别控制核、目标核心簇的控制核进行交互,完成新的核心簇的组建。
130.相应地,参照图6,在一些实施例中,步骤s120包括:
131.在步骤s121中,申请空闲核心作为所述目标核心簇的替代核心簇的替代控制核。
132.在本公开实施例中,可以在目标核心簇的控制核中保存目标核心簇处理的任务的任务信息,也可以在高级别控制核中保存各个核心簇处理的任务的任务信息。本公开实施例对此不做特殊限定。新的核心簇的控制核可以从目标核心簇的控制核获取目标核心簇处理的任务的任务信息,也可以从高级别控制核获取目标核心簇处理的任务的任务信息。本公开实施例对此也不做特殊限定。
133.相应地,参照图6,步骤s120还包括:
134.在步骤s122中,响应于所述替代控制核获取所述目标核心簇处理的任务的任务信息的请求信令,将所述目标核心簇处理的任务的任务信息传输到所述替代控制核。
135.在本公开实施例中,对目标核心簇处理的任务的任务信息不做特殊限定。例如,任务信息可以包括替代核心簇中各个核心的配置信息,也可以包括表示替代核心簇中各个核心的存储内容的信息。
136.第二方面,参照图7,本公开实施例提供一种任务调度方法,应用于众核系统的核心,所述任务调度方法包括:
137.在步骤s210中,对当前核心归属的核心归属的核心簇进行负载检测,判断所述当前核心归属的核心簇是否为目标核心簇,所述目标核心簇为需要调整任务分配的核心簇;
138.在步骤s220中,在所述当前核心归属的核心簇为所述目标核心簇的情况下,根据负载检测结果调整所述当前核心归属的核心簇的任务分配;
139.其中,众核系统中包括多个核心,至少一个所述核心组成所述核心簇,所述众核系
统包括至少一个所述核心簇。
140.在本公开实施例中,由众核系统中的各个核心簇的控制核通过执行步骤s210至步骤s220对各个核心簇统一进行负载检测。在核心簇需要调整任务分配时,对核心簇的任务分配进行调整。
141.在本公开实施例中,负载检测是指判断核心簇处理的任务与核心簇的计算资源是否匹配。负载检测的结果可以是目标核心簇超负荷,在步骤s220中调整任务分配可以是增加目标核心簇中的核心数量以增加目标核心簇的计算资源;负载检测的结果也可以是目标核心簇计算资源过剩,在步骤s220中调整任务分配可以是减少目标核心簇中的核心数量以节约众核系统的计算资源,提高众核系统计算资源的利用率;负载检测结果还可以是核心簇处理的任务与核心簇的计算资源相匹配。本公开实施例对此不做特殊限定。
142.在本公开实施例提供的任务调度方法中,由众核系统中各个核心簇的控制核对其归属的核心簇进行负载检测,在核心簇需要调整任务分配时调整核心簇的任务分配,能够在核心簇超负荷时动态地增加计算资源,还能够在核心簇计算资源过剩时及时的释放计算资源,从而能够提高众核系统任务处理的灵活性,避免部分核心簇处理效率降低导致众核系统整体处理效率降低,同时提高了众核系统计算资源的利用效率。
143.作为一种可选的实施方式,目标核心簇的控制核通过负载检测发现目标核心簇超负荷或计算资源过剩时,则判定目标核心簇需要调整任务分配。
144.相应地,参照图8,在一些实施例中,步骤s210包括:
145.在步骤s211中,判断所述当前核心归属的核心簇是否超负载或计算资源过剩;
146.在所述当前核心归属的核心簇超负载或计算资源过剩的情况下,判定所述当前核心归属的核心簇为所述目标核心簇。
147.在本公开实施例中,各个核心簇以流水线方式处理任务时,多个核心簇具有统一的同步周期。通常,同步周期由运行时长最大的核心簇的运行时长决定的。运行时长越大,表示核心簇的负载越大。作为一种可选的实施方式,可以根据一定时间段内目标核心簇的运行时长与其他核心簇的运行时长的关系,判断目标核心簇是否超负荷。
148.相应地,参照图9,在一些实施例中,步骤s211包括:
149.在步骤s211a中,确定所述当前核心归属的核心簇在预定时间段内运行时长最大的同步周期的数量;
150.在所述当前核心归属的核心簇在预定时间段内运行时长最大的同步周期的数量超过预定数值的情况下,判定所述当前核心归属的核心簇超负荷。
151.作为另一种可选的实施方式,可以预设一个预定同步周期,当目标核心簇的运行时长超过预定同步周期时,则表示目标核心簇超负荷。
152.相应地,参照图10,在一些实施例中,步骤s211包括:
153.在步骤s211b中,判断所述当前核心归属的核心簇的运行时长是否超过预定同步周期;
154.在所述当前核心归属的核心簇的运行时长超过所述预定同步周期的情况下,判定所述当前核心归属的核心簇超负载。
155.在本公开实施例中,在步骤s220中调整目标核心簇任务分配时,提供一种不停机调整目标核心簇的任务分配的方案。具体地,当需要调整目标核心簇的任务分配时,动态申
请空闲核心,重新组建一个新的核心簇,用新的核心簇替代目标核心簇;其中,组建新的核心簇时,无需暂停目标核心簇的运行。在新的核心簇替代目标核心簇之后,可以解散目标核心簇,目标核心簇中的核心变为空闲核心,从而释放计算资源。
156.作为一种可选的实施方式,由目标核心簇的控制核确定新的核心簇的控制核,新的核心簇的控制核通过与目标核心簇的控制核进行交互,完成新的核心簇的组建。
157.相应地,参照图11,在一些实施例中,步骤s220包括:
158.在步骤s221中,申请空闲核心作为所述当前核心归属的核心簇的替代核心簇的替代控制核;
159.在步骤s222中,响应于所述替代控制核获取所述当前核心归属的核心簇处理的任务的任务信息的请求信令,将所述当前核心归属的核心簇处理的任务的任务信息传输到所述替代控制核。
160.在本公开实施例中,对目标核心簇处理的任务的任务信息不做特殊限定。例如,任务信息可以包括替代核心簇中各个核心的配置信息,也可以包括表示替代核心簇中各个核心的存储内容的信息。
161.在步骤s223中,响应于所述替代控制核获取原始数据的请求信令,获取所述原始数据;
162.在步骤s224中,将所述原始数据传输到所述替代控制核。
163.在本公开实施例中,新的核心簇的控制核向目标核心簇的控制核申请原始数据,在接收到原始数据后将原始数据分配到新的核心簇中的各个核心,从而使得新的核心簇能够处理目标核心簇处理的任务。
164.本公开实施例对如何执行步骤s223获取原始数据不做特殊限定。作为一种可选的实施方式,目标核心簇的控制核根据目标核心簇任务配置时的原始编译信息,从目标核心簇中的各核心查找数据,重组为所述原始数据。
165.在步骤s225中,将接收到的所述替代核心簇的输入输出信息添加到由多个核心簇组成的流水线中;
166.在步骤s226中,向所述替代控制核发送启动信令。
167.在本公开实施例中,新的核心簇的控制核确定新的核心簇的输入输出路由,并将新的核心簇的输入输出信息发送到目标核心簇的控制核。目标核心簇的控制核通过将新的核心簇的输入输出信息替换到由多个核心簇组成的流水线中,将新的核心簇添加到流水线中。
168.在本公开实施例中,当替代核心簇启动执行当前核心归属的核心簇处理的任务后,解散当前核心归属的核心簇,使得当前核心归属的核心簇中的核心成为空闲核心,从而释放计算资源。
169.相应地,参照图11,在一些实施例中,步骤s220还包括:
170.在步骤s227中,接收到所述替代控制核发送的所述替代核心簇已启动的消息,解散所述当前核心归属的核心簇。
171.在本公开实施例中,在步骤s220中调整目标核心簇任务分配时,提供一种停机调整目标核心簇的任务分配的方案。具体地,当需要调整目标核心簇的任务分配时,动态申请空闲核心作为目标核心簇的核心,并进行任务配置。
172.相应地,参照图12,在一些实施例中,步骤s220包括:
173.在步骤s228中,申请空闲核心作为所述当前核心归属的核心簇所属的核心;
174.在步骤s229中,重新进行任务分配。
175.需要说明的是,在本公开实施例中,包括全局通知机制,例如,将无效状态信息和有效状态信息广播通知众核系统中的所有核心及个人电脑(pc,personal computer)端。这样,便于众核系统中其他核心簇、核心以及pc端根据目标核心簇的状态执行任务切换、任务暂停或者任务重启等操作。
176.第三方面,参照图13,本公开实施例提供一种任务调度方法,包括:
177.在步骤s310中,发送获取目标核心簇处理的任务的任务信息的请求信令,以获取所述任务信息;
178.在步骤s320中,根据获取的所述任务信息组建所述目标核心簇的替代核心簇;
179.在步骤s330中,在所述替代核心簇上运行所述目标核心处理的任务;
180.其中,众核系统中包括多个核心,至少一个所述核心组成所述核心簇,所述众核系统包括至少一个所述核心簇,所述目标核心簇为需要调整任务分配的所述核心簇。
181.在本公开实施例中,提供一种不停机调整目标核心簇的任务分配的方案。具体地,当需要调整目标核心簇的任务分配时,动态申请空闲核心,重新组建一个替代核心簇,用替代核心簇替代目标核心簇;其中,组建替代核心簇时,无需暂停目标核心簇的运行。在替代核心簇替代目标核心簇之后,可以解散目标核心簇,目标核心簇中的核心变为空闲核心,从而释放计算资源。
182.在本公开实施例中,可以由目标核心簇的控制核确定替代核心簇的替代控制核,也可以由高级别控制核确定替代核心簇的替代控制核。本公开实施例对此不做特殊限定。替代控制核通过步骤s310至步骤s330与目标核心簇的控制核或高级别控制核进行交互,完成替代核心簇的组建。
183.在本公开实施例中,可以向高级别控制核发送获取目标核心簇处理的任务的任务信息的请求信令,以获取任务信息;也可以向目标核心簇的控制核发送获取目标核心簇处理的任务的任务信息的请求信令,以获取任务信息。本公开实施例对此不做特殊限定。
184.在本公开实施例提供的任务调度方法中,由高级别控制核或需要调整任务分配的核心簇的控制核确定替代核心簇的替代控制核,然后由替代控制核组建替代核心簇,从而能够在不停机的情况下,在核心簇超负荷时动态地增加计算资源,在核心簇计算资源过剩时及时的释放计算资源,从而能够提高众核系统任务处理的灵活性,避免部分核心簇处理效率降低导致众核系统整体处理效率降低,同时提高了众核系统计算资源的利用效率。
185.参照图14,在一些实施例中,步骤s320包括:
186.在步骤s321中,根据所述任务信息申请多个空闲核心;
187.在步骤s322中,对多个所述空闲核心进行任务配置。
188.在本公开实施例中,对空闲核心进行任务配置可以包括确定个核心对应的配置信息,还可以包括明确各核心应当存储的信息。本公开实施例对此不做特殊限定。
189.在步骤s323中,发送获取原始数据的请求信令,以获取所述原始数据;
190.在步骤s324中,根据所述任务信息将获取的所述原始数据分配到各个所述空闲核心。
191.在步骤s325中,确定所述替代核心簇的输入输出信息;
192.在步骤s326中,将所述替代核心簇的输入输出信息发送到所述目标核心簇的控制核;
193.在本公开实施例中,目标核心簇的控制核将替代核心簇的输入输出信息添加到流水线中后,会向替代核心簇的替代控制核发送启动信令。替代控制核响应于启动信令控制替代核心簇运行目标核心簇处理的任务。
194.相应地,参照图14,在一些实施例中,步骤s330包括:
195.在步骤s331中,响应于所述目标核心簇的控制核发送的启动信令,在所述替代核心簇上运行所述目标核心簇处理的任务。
196.相应地,参照图14,在一些实施例中,所述任务调度方法还包括:
197.在步骤s340中,向所述目标核心簇的控制核发送所述替代核心簇已启动的消息。
198.第四方面,参照图15,本公开实施例提供一种核心,应用于众核系统,所述核心包括:
199.一个或多个处理单元101;
200.存储单元102,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理单元执行,使得一个或多个处理单元实现以下方法中的至少一者:
201.本公开实施例第一方面所述的任务调度的控制方法;
202.本公开实施例第二方面所述的任务调度方法;
203.本公开实施例第三方面所述的任务调度方法。
204.其中,处理单元101为具有数据处理能力的器件,其包括但不限于运算器等;存储单元102为具有数据存储能力的器件,其包括但不限于随机存取存储器(ram)、只读存储器(rom)、带电可擦可编程只读存储器(eeprom)、闪存(flash)。
205.第五方面,参照图16,本公开实施例提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现以下方法中的至少一者:
206.本公开实施例第一方面所述的任务调度的控制方法;
207.本公开实施例第二方面所述的任务调度方法;
208.本公开实施例第三方面所述的任务调度方法。
209.第六方面,参照图17,本公开实施例提供一种电子设备,包括:
210.多个核心201;以及
211.片上网络202,被配置为交互所述多个核心201间的数据和外部数据;
212.一个或多个所述核心201中存储有一个或多个指令,一个或多个所述指令被一个或多个所述核心201执行,以使一个或多个所述核心201能够执行以下方法中的至少一者:
213.本公开实施例第一方面所述的任务调度的控制方法;
214.本公开实施例第二方面所述的任务调度方法;
215.本公开实施例第三方面所述的任务调度方法。
216.为了使本领域技术人员能够更清楚地理解本公开实施例提供的技术方案,下面通过具体的实施例,对本公开实施例提供的技术方案进行详细说明:
217.实施例一
218.在本实施例一中,在需要调整目标核心簇的任务分配时,组建替代核心簇,并由替
代核心簇处理目标核心簇处理的任务,无需暂停目标核心簇的运行。
219.调整目标核心簇的任务分配的流程包括:
220.由目标核心簇的控制核或高级别控制核确定目标核心簇的替代核心簇中的替代控制核;
221.替代控制核获取目标控制核处理的任务的任务信息;在本实施例一中,目标核心簇的控制核保存有目标核心簇处理的任务的任务信息,高级别控制核也保存有目标核心簇处理的任务的任务信息,替代控制核可以向目标核心簇的控制核申请任务信息,也可以向高级别控制核申请任务信息;
222.替代控制核根据任务信息,申请目标数量的空闲核心并进行任务配置;
223.替代控制核向目标核心簇的控制核发送请求信令,获取原始数据;
224.目标核心簇的控制核在接收到请求信令后,根据原始的编译信息,从目标核心簇中的各核心查找数据,重组原始数据,将原始数据返回给替代控制核;
225.替代控制核根据接收到的原始数据,按照任务配置信息,分配到替代核心簇中的各核心。
226.替代控制核确定输入输出路由,将替代核心簇的输入输出信息发送到目标核心簇的控制核;
227.目标核心簇的控制核把替代核心簇的输入输出信息替换到流水线中,并向替代核心簇发送启动信令;
228.替代核心簇根据启动信令启动,并通知目标核心簇。
229.目标核心簇解散。
230.在本实施例一中,替代控制核对替代核心簇中的空闲核心进行任务配置时,可以进行如下配置:分配内存,确定各空闲核心应当存储的信息、参数等;配置运算算子,通过拆解运算等降低运算复杂度;配置路由;配置运算顺序、运算时间等计算控制信息;配置同步管理信息。
231.具体地,在本实施例一中,任务配置包括以下流程:
232.将计算任务分解为若干计算步骤,确定各个计算步骤间的依赖关系;
233.根据需要的内存和计算量将每个计算步骤分解为可并行的若干子任务。其中,每个子任务可映射于一个空闲核心;每个子任务所需的内存不得超过单个空闲核心的内存容量限制,子任务的路由传输量(输入输出)不得超过单个空闲核心的路由传输带宽限制;优选地,各个核的子任务运算量平均分配;
234.确定按照当前对计算任务的分解,计算任务需要的空闲核心的数量、带宽,判断当前计算资源是否满足计算任务的需求;如不满足,重新分解计算任务;如经过多次分解仍不满足,申请更多的空闲核心;如申请更多的空闲核心后对计算任务进行分解仍不满足计算任务的需求,则向上级核心报错;若当前计算资源满足计算任务的需求,则判定对计算任务的分解成功;
235.在对计算任务的分解成功时,根据各个空闲核心的物理位置,寻找最优化的布局方案,确定各个空闲核心需要执行的子任务,最优化的布局方案为使得路由传输带宽最小化的布局方案;
236.根据最优化的布局方案计算路由配置信息,生成各个空闲核心的运算指令、地址
产生逻辑、控制逻辑及同步逻辑等配置信息;
237.将配置信息通过片上网络发送给各个空闲核心,其中,各个空闲核心接收所有配置信息后会返回配置完毕信令。
238.实施例二
239.在本实施例二中,在需要调整目标核心簇的任务分配时,暂停目标核心簇的运行,同时根据负载检测的结果增减目标核心簇中的核心,以使目标核心簇的计算资源与计算任务匹配。
240.调整目标核心簇的任务分配的流程包括:
241.申请新核,并进行任务配置。其中,在重新映射时,包括全局通知机制,例如,invalid和valid要广播通知所有核心以及pc端。
242.在本实施例二中,申请新核并进行任务配置时,可以进行如下配置:分配内存,确定各核心应当存储的信息、参数等;配置运算算子,通过拆解运算等降低运算复杂度;配置路由;配置运算顺序、运算时间等计算控制信息;配置同步管理信息。
243.具体地,在本实施例二中,任务配置包括以下流程:
244.将计算任务分解为若干计算步骤,确定各个计算步骤间的依赖关系;
245.根据需要的内存和计算量将每个计算步骤分解为可并行的若干子任务。其中,每个子任务可映射于一个核心;每个子任务所需的内存不得超过单个核心的内存容量限制,子任务的路由传输量(输入输出)不得超过单个核心的路由传输带宽限制;优选地,各个核的子任务运算量平均分配;
246.确定按照当前对计算任务的分解,计算任务需要的核心的数量、带宽,判断当前计算资源是否满足计算任务的需求;如不满足,重新分解计算任务;如经过多次分解仍不满足,申请更多的核心;如申请更多的核心后对计算任务进行分解仍不满足计算任务的需求,则向上级核心报错;若当前计算资源满足计算任务的需求,则判定对计算任务的分解成功;
247.在对计算任务的分解成功时,根据各个核心的物理位置,寻找最优化的布局方案,确定各个核心需要执行的子任务,最优化的布局方案为使得路由传输带宽最小化的布局方案;
248.根据最优化的布局方案计算路由配置信息,生成各个核心的运算指令、地址产生逻辑、控制逻辑及同步逻辑等配置信息;
249.将配置信息通过片上网络发送给各个核心,其中,各个核心接收所有配置信息后会返回配置完毕信令。
250.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技
术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
251.本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
再多了解一些

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

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

相关文献