任务调度方法、装置、电子设备及存储介质与流程

文档序号:33630591发布日期:2023-03-28 22:46阅读:22来源:国知局
1.本技术涉及电子设备
技术领域
:,更具体地,涉及一种任务调度方法、装置、电子设备及存储介质。
背景技术
::2.随着科技水平和生活水平的快速进步,智能手机、电脑等电子设备的使用越来越广泛。并且,随着电子设备功能越来越丰富多样以及数据量的逐渐增多,人们对电子设备的性能需求也越来越高。与之相对应地,处理器制造技术不断提高,越来越多的厂商为电子设备配置多个处理器,以此来提高电子设备整体的处理能力。但是,相较于处理器性能较低的电子设备,处理器性能增高的同时也会为电子设备带来更高的功耗,对于拥有多处理器的电子设备难以做到性能与功耗间的平衡。技术实现要素:3.本技术提出了一种任务调度方法、装置、电子设备及存储介质,以改善上述缺陷。4.第一方面,本技术实施例提供了一种任务调度方法,应用于多处理器系统,所述方法包括:获取所述多处理器系统当前执行的目标任务,确定与所述目标任务对应的目标控制参数,所述目标控制参数用于表示执行所述目标任务所需的处理器性能参数;获取所述多处理器系统中当前处于运行状态的处理器,所述运行状态包括非独占状态和独占状态;将所述当前处于运行状态的处理器中处于非独占状态的处理器数量作为第一数量;确定与所述目标控制参数对应的处理器数量,作为第二数量;基于所述第一数量和所述第二数量,调整当前处于运行状态的多个处理器中处于非独占状态的处理器的数量,以使所述当前处于运行状态的处理器中处于非独占状态的处理器数量达到第二数量。5.第二方面,本技术实施例提供了一种任务调度装置,应用于多处理器系统,所述装置包括:第一获取单元、第二获取单元、第一确定单元、第二确定单元以及调整单元。其中,第一获取单元,用于获取所述多处理器系统当前执行的目标任务,确定与所述目标任务对应的目标控制参数,所述目标控制参数用于表示执行所述目标任务所需的处理器性能参数;第二获取单元,用于获取所述多处理器系统中当前处于运行状态的处理器,所述运行状态包括非独占状态和独占状态;第一确定单元,用于将所述当前处于运行状态的处理器中处于非独占状态的处理器数量作为第一数量;第二确定单元,用于确定与所述目标控制参数对应的处理器数量,作为第二数量;调整单元,用于基于所述第一数量和所述第二数量,调整当前处于运行状态的多个处理器中处于非独占状态的处理器的数量,以使所述当前处于运行状态的处理器中处于非独占状态的处理器数量达到第二数量。6.第三方面,本技术实施例提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行上述任务调度方法。7.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述任务调度方法。8.第五方面,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的方法。9.本技术提供的任务调度方法、装置、电子设备及存储介质,所述任务调度方法应用于多处理器系统。首先获取多处理器系统当前执行的目标任务,确定与目标任务对应的目标控制参数,目标控制参数用于表示执行所述目标任务所需的处理器性能参数。然后获取多处理器系统中当前处于运行状态的处理器,所述运行状态包括非独占状态和独占状态。将所述当前处于运行状态的处理器中处于非独占状态的处理器数量作为第一数量;确定与所述目标控制参数对应的处理器数量,作为第二数量。然后基于第一数量和第二数量调整当前处于运行状态的多个处理器中处于非独占状态的处理器的数量,以使当前处于运行状态的处理器中处于非独占状态的处理器数量达到第二数量。本技术可以根据当前系统正在执行的不同任务来动态调整处理器的状态,使系统中的处理器在执行当前任务的同时,可以达到满足使用需求以及消耗更低功耗的目的。附图说明10.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。11.图1示出了本技术一实施例提供的多处理器系统的系统架构示意图。12.图2示出了本技术一实施例提供的任务调度方法的流程示意图。13.图3示出了本技术另一实施例提供的多处理器系统的系统架构示意图。14.图4示出了本技术又一实施例提供的多处理器系统的系统架构示意图。15.图5示出了本技术另一实施例提供的任务调度方法的流程示意图。16.图6示出了本技术一实施例提供的场景分类模型的示意图。17.图7示出了本技术又一实施例提供的任务调度方法的流程示意图。18.图8示出了本技术一实施例提供的调度器的结构框图。19.图9示出了本技术另一实施例提供的强化学习模型训练的流程框图。20.图10示出了本技术一实施例提供的任务调度装置的结构框图。21.图11示出了本技术一实施例提供的电子设备的结构框图。22.图12示出了本技术一实施例提供的计算机可读存储介质的结构框图。具体实施方式23.为了使本
技术领域
:的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。24.随着智能手机、电脑等电子设备应用场景的日益复杂,人们对电子设备性能和功耗的要求也越来越高。在满足人们对于电子设备性能需求的同时降低功耗,成为各大厂商为此不懈努力的目标。现有对于处理器的调度方案通常是基于软件算法实现,由于任务调度和软件执行的延时可能导致调度的实时性较差。由此,可能会当前处理器负载过高,导致处理器调度操作不及时带来的性能问题;也可能因为当前处理器负载过低,导致处理器调度操作滞后带来的功耗过高问题。25.发明人经过长期的研究发现,可以通过获得多处理器系统当前执行的任务,基于当前执行的任务实际需要的处理器性能来动态调整处理器的状态,使系统中的处理器在执行当前任务的同时,可以达到满足使用需求以及消耗更低功耗的目的。因此,发明人提出了一种任务调度方法、装置、电子设备及存储介质。26.下面将对本技术所涉及的一种多处理器系统的系统架构进行介绍。27.请参阅图1,其示出了本技术一实施例提供的多处理器系统的系统架构示意图。在一些实施方式中,本技术中所述的多处理器系统100可以是拥有两个或两个以上处理器的系统。28.多处理器系统100可以包括调度器120以及处理器130。处理器130可以是由多个处理器组成的集合,例如,图1所示的第一处理器131、第二处理器132、第三处理器133以及第四处理器134。29.在一些实施方式中,调度器120可以是运行在多处理器系统100中的计算机程序,其中,调度器120可以用于调度基于前端应用110而产生的任务。前端应用110可以产生一个或多个任务(如图1所示的任务1~任务n,n为正整数)。调度器120可以将前端应用110产生的任务,调度至处理器130中的一个或多个处理器,以便由对应的处理器执行该任务。调度器120可以根据前端应用110产生的任务,对任务进行分配。30.可选地,调度器120可以运行于任一处于工作状态的处理器中。当然,调度器120也可以基于处于工作状态的处理器的负载情况,确定运行调度器120的处理器,然后将调度器120迁移至该处理器运行,由此保证处理器之间的负载均衡;也可以设置专门运行调度器120的处理器或者其他的硬件(例如,专用集成电路、可编程逻辑器件等),以提升调度器120的运行速度。31.在本技术实施例中,多处理器系统可以是一个电子设备组成,也可以由不同的电子设备组成,由不同的电子设备组成时,同一个电子设备中可以包含一个或多个处理器。可选地,可以将一个多处理器系统作为一个由处理能力相同的处理器共同组成的处理器集群(cluster),可以理解的是,在同一个电子设备中,可以拥有一个或多个处理能力或高或低的处理器集群。32.在一些的实施例中,第一处理器131、第二处理器132、第三处理器133及第四处理器134的处理能力相同,该多处理器系统100在接收到前端应用110产生的任务后可以将这些任务通过调度器120调度至本系统中的一个或多个处理器。可选地,在本系统中各处理器的负载量未达到峰值时可以接收由运算力低于本系统的其他多处理器系统中超出该系统处理能力的部分任务;在本系统中各处理器的负载量达到峰值时可以将超出本系统处理能力的任务调度至运算力高于本系统的其他多处理器系统处理。33.示例性地,处理器130中的处理器可以是2.04ghz的amda55处理器、2.54ghz的amda77处理器或者3.13ghz的amda77处理器。34.在本技术的一些实施例中,图1所示的多处理器系统100,是以多个处理器组成的集合为例进行说明,实际应用中,也可以是包括多个处理器核。应当理解,图1所示的多处理器系统的系统架构仅是示例性说明,多处理器系统的系统架构中也可以包括更多或者更少的器件或者软件模块等,例如,图1中所示的多处理器系统100中,可以包括更多的处理器或者更多的处理器核等,在此不做限定。35.需要说明的是,电子设备可以是移动电话、智能电话(例如,基于iphonetm,基于androidtm的电话),便携式游戏设备(例如nintendodstm,playstationportabletm,gameboyadvancetm,iphonetm)、膝上型电脑、pda、便携式互联网设备、音乐播放器、数据存储设备以及车载智能终端等。作为一种方式,电子设备可以是具有无线连接功能的手持式设备、车载智能设备等。作为另一种方式,电子设备也可以是手机、平板电脑、笔记本电脑、掌上电脑、可穿戴设备,虚拟现实(virtualreality,vr)设备、增强现实(augmentedreality,ar)设备、工业控制中的有线或无线终端、无人驾驶中的无线终端、智慧家庭中的有线或无线终端等,在此并不作限定。36.请参阅图2,图2示出了本技术一实施例提供的任务调度方法的流程示意图,所述任务调度方法可以应用于多处理器系统。该方法包括:s210至s250。37.步骤s210:获取所述多处理器系统当前执行的目标任务,确定与所述目标任务对应的目标控制参数,所述目标控制参数用于表示执行所述目标任务所需的处理器性能参数。38.在一些实施例中,当根据多处理器系统中各处理器当前的负载量和任务数量来调整处理器的状态时,由于存在任务调度和执行上的延迟,可能会引发负载过高导致调度不及时带来的性能问题,也可能会引发负载过低而调度滞后带来的功耗过高问题。因此,在本技术的实施例中,可以根据系统当前正在执行的目标任务来动态地调整处理器的状态。首先,可以获取多处理器系统当前执行的目标任务,然后,确定与目标任务对应的目标控制参数。39.在一些实施方式中,目标任务可以是前端应用产生的任务。示例性地,当用户打开游戏应用时,游戏应用的启动过程中可以产生对应的游戏任务,例如播放音频的任务、显示游戏画面的任务等等。可选地,一个前端应用可以对应生成一个或多个目标任务。其中,目标任务还可以是一段程序的执行过程,例如可以是进程。40.可以理解的是,不同的目标任务对处理器的性能要求不同。例如,对于播放音频的任务,该任务对处理器的利用率要求不高,不需要使用图形处理器(graphicsprocessingunit,gpu);而对于显示游戏画面的任务,该任务对处理器的利用率极高,同时对gpu的利用率也极高。因此,在一些实施方式中,在获得了多处理器系统当前执行的目标任务后,可以根据目标任务来确定执行目标任务时所需要的处理器性能参数,即目标控制参数。41.可选地,执行目标任务时所需要的处理器性能参数不仅可以是具体地处理器参数,例如执行目标任务时所需要的系统负载、刷新帧率、关键线程等等,还可以是执行目标任务所述多处理器系统的负载阈值,例如可以包括多处理器系统可运行的任务数量、所述多处理器系统运行的处理器数量以及系统负载等等。42.步骤s220:获取所述多处理器系统中当前处于运行状态的处理器,所述运行状态包括非独占状态和独占状态。43.在本技术的实施例中,可以基于处理器是否正在执行任务,而将处理的状态分为运行状态和空闲状态。可以理解的是,正在执行任务的处理器处于运行状态,而未执行任务的处理器处于空闲状态。可以获取多处理器系统中当前处于运行状态的处理器,可以用于表示多处理器系统当前的负载情况,便于根据当前的负载情况来实时调整处理器的状态。44.在本技术的实施例中,为了降低多处理器系统的功耗,还可以将多处理器系统中的处理器分为独占状态和非独占状态。其中,对于独占状态的处理器,调度器不会将任务迁移到该处理器,这样处于独占状态的处理器就会有更多的机会处于空闲状态,可以达到降低功耗的目的。对于非独占状态的处理器,调度器可以将任务迁移到该处理器,这样处于非独占状态的处理器可以执行前端应用产生的任务,不会影响多处理器系统的性能。45.可以理解的是,在当前处于运行状态的处理器中,可能有部分处理器处于独占状态,也可能有部分处理器处于非独占状态。因此,本技术所述的运行状态可以包括非独占状态和独占状态。46.在一些实施例中,可以获取一个调度时间内该多处理器系统中正在运行的任务。可选地,在一个调度时间内,若一个处理器运行的任务数量上限是1,那么可以将一个调度时间内该多处理器系统中正在运行任务的处理器作为该多处理器系统中当前处于运行状态的处理器。示例性,一个调度时间可以为20ms。47.步骤s230:将所述当前处于运行状态的处理器中处于非独占状态的处理器数量作为第一数量。48.在本技术的实施例中,对于目标任务来说,调度器不会将目标任务分配给处于独占状态的处理器执行。因此,在一些实施例中,可以获取处于非独占状态的处理器,并且将当前处于运行状态的处理器中处于非独占状态的处理器数量作为第一数量,便于根据当前系统中实际处于非独占状态的处理器的第一数量对目标任务进行调度。49.步骤s240:确定与所述目标控制参数对应的处理器数量,作为第二数量。50.在本技术的实施例中,除了需要确定表示处理器系统中当前处于运行状态的处理器中处于非独占状态的处理器数量的第一数量外,还可以确定目标控制参数对应的处理器数量,作为第二数量。第二数量可以表示多处理器系统在执行目标任务时的负载情况,然后通过第一数量和第二数量来实时调整处理器的状态。51.在一些实施方式中,由于目标控制参数可以表示执行目标任务时所需要的处理器性能参数,在执行该目标任务时,可以基于目标控制参数对该系统中的各个处理器进行调度,使得调度后该系统中的处理器数量可以满足目标任务的需求,目标任务可以正常运行。因此,可以基于目标控制参数来确定在执行目标任务时多处理器系统中处于运行状态的处理器数量,作为与所述目标控制参数对应的处理器数量。52.在另一些实施例中,同一个电子设备可以拥有一个或多个处理能力或高或低的处理器集群。除了该多处理器系统外,进一步地,若电子设备还拥有运算力低于该多处理器系统的其他多处理器系统,在该多处理器系统中各处理器的负载量未达到峰值时,还可以接收运算力低于该系统的其他多处理器系统中超出该系统处理能力的部分任务,因此,第二数量不仅基于目标控制参数来确定,还可以基于运算力低于该系统的其他多处理器系统迁移到该系统的实际任务数量而确定。更进一步地,若电子设备还拥有运算力高于该多处理器系统的其他多处理器系统,在该多处理器系统中各处理器的负载量达到峰值时,还可以将超出本系统处理能力的任务调度至运算力高于本系统的其他多处理器系统处理,因此,第二数量还可以基于该系统迁移到运算力高于该系统的其他多处理器系统的实际任务数量而确定。53.步骤s250:基于所述第一数量和所述第二数量,调整当前处于运行状态的多个处理器中处于非独占状态的处理器的数量,以使所述当前处于运行状态的处理器中处于非独占状态的处理器数量达到第二数量。54.在一些实施方式中,在获取得到执行目标任务时多处理器系统中需要运行的处理器数量与当前处于非独占状态的处理器数量,即第二数量与第一数量后,根据第一数量和第二数量可以实时调整处理器的状态。由于调度器会将目标任务分配给处于非独占状态的处理器执行,因此基于第一数量和第二数量,可以调整当前处于运行状态的多个处理器中处于非独占状态的处理器的数量,以使当前处于运行状态的处理器中处于非独占状态的处理器数量达到第二数量,满足目标任务的使用需求。55.在一些实施例中,在目标任务需求较大时,可以让更多地处理器处于非独占状态,使目标任务可以正常运行;在另一些实施例中,在目标任务需求较小时,可以让更多地处理器处于独占状态,使处于非独占状态的处理器数量等于第二数量,使目标任务正常运行的同时,可以将多余处于非独占状态的处理器调整为独占状态,降低功耗。56.基于此,在本技术的实施方式中,可以比较第二数量与第一数量,通过比较结果来调整当前处于运行状态的多个处理器中处于非独占状态的处理器的数。在本技术的一些实施例中,若第一数量大于第二数量,表示多处理器系统中当前处于运行状态的处理器中处于非独占状态的处理器数量已经超过执行目标任务时所需要的处理器数量,可以将当前处于运行状态的处理器中处于非独占状态的部分处理器的状态调整为独占状态,使当前处于运行状态的处理器中处于非独占状态的处理器数量达到第二数量,从而在执行目标任务时可以把目标任务分配给处于非独占状态的处理器执行,使目标任务正常运行的同时,可以将多余的处理器调整为独占状态,降低功耗。可选地,在一些方式中,可以随机地将当前处于非独占状态的部分处理器的状态调整为独占状态。在另一些方式中,也可以根据处理器的优先级来调整处理器的状态。57.如图3所示,若第一处理器131、第二处理器132、第三处理器133处于运行状态,而第四处理器134处于空闲状态。其中,第一处理器131、第二处理器132还处于非独占状态。此时,可以得到第一数量为2,如果计算得到第二数量为1,那么可以将运行状态中处于非独占状态的第一处理器131、第二处理器132中的任一处理器的调整为独占状态,最终使得运行状态中处于非独占状态的处理器的数量变为第二数量。可以随机地选择将第一处理器131、第二处理器132的状态调整为独占状态,如图4所示,例如可以将第二处理器132的状态调整为独占状态,从而使运行状态中处于非独占状态的处理器只剩第三处理器133这1个。58.可以理解的是,若第二处理器132调整为独占状态的优先级较高,那么可以优先选择将第二处理器132的状态调整为独占状态,同样可以使处于运行状态中非独占状态的处理器只剩1个,可以满足目标任务的性能需求。59.在本技术的另一些实施例中,若所述第一数量小于所述第二数量,此时运行状态中处于非独占状态的处理器数量不能满足目标任务的需求,因此需要将运行状态中处于独占状态的处理器的状态调整为非独占状态,使处于非独占状态的处理器数量达到第二数量。60.综上所述,本技术提供的任务调度方法,应用于多处理器系统。首先获取多处理器系统当前执行的目标任务,确定与目标任务对应的目标控制参数,目标控制参数用于表示执行所述目标任务所需的处理器性能参数。然后获取多处理器系统中当前处于运行状态的处理器,所述运行状态包括非独占状态和独占状态。将所述当前处于运行状态的处理器中处于非独占状态的处理器数量作为第一数量;确定与所述目标控制参数对应的处理器数量,作为第二数量。然后基于第一数量和第二数量调整当前处于运行状态的多个处理器中处于非独占状态的处理器的数量,以使当前处于运行状态的处理器中处于非独占状态的处理器数量达到第二数量。本技术可以根据当前系统正在执行的不同任务来动态调整处理器的状态,使系统中的处理器在执行当前任务的同时,可以达到满足使用需求以及消耗更低功耗的目的。61.请参阅图5,图5示出了本技术另一实施例提供的任务调度方法的流程示意图。所述任务调度方法可以应用于多处理器系统。下面将针对图5所示的流程进行详细的阐述,所述任务调度方法具体可以包括:s510至s590。62.步骤s510:获取所述多处理器系统当前执行的目标任务。63.在本技术实施例中,可以根据多处理器系统当前执行的目标任务来调整系统中各个处理器的状态,因此,首先可以获取该系统中当前执行的目标任务。具体过程可以参阅前述实施例的内容,在此不再赘述。64.步骤s520:获取所述多处理器系统当前执行目标任务时的目标状态信息。65.在一些实施例中,由于不同目标任务对处理器的性能要求不同,因此在获得了目标任务后,可以根据目标任务来确定执行目标任务时所需要的处理器性能参数,即前述实施例中所述目标控制参数。66.在一些实施方式中,目标控制参数可以是执行目标任务时所述多处理器系统的负载阈值,例如可以包括多处理器系统可运行的任务数量、所述多处理器系统运行的处理器数量以及处理器负载等等。在本技术的实施例中,可以基于系统中当前执行的不同任务来调整该负载阈值,进一步地可以达到调整处理器的状态的目的。因此,在本技术的一些实施例中,为了确定与目标任务对应的目标控制参数,首先可以获取所述多处理器系统当前执行目标任务时的目标状态信息。其中,目标状态信息可以是执行目标任务时多处理器系统的运行状态,目标状态信息可以包括多处理器系统中处理器的各个处理器的状态,例如处理器负载、处理器的工作频率、性能检测单元(performancemonitorunit,pmu)的计数器状态,gpu的状态,例如gpu的负载情况以及wcn(wirelesscommunicationnetwork,无线通信网络)的状态,例如数据上传速率和数据下载速率等。例如,若目标任务为游戏应用产生的显示游戏画面的任务,在开始执行目标任务时,多处理器系统可能会出现负载升高、gpu的利用率升高、wcn上传或下载的速率加快等等,可以将这些运行状态记录下来,作为执行目标任务时多处理器系统的目标状态信息。67.步骤s530:基于场景分类模型确定所述目标状态信息对应的目标场景类型。68.在本技术的实施例中,在获取到执行目标任务时的目标状态信息后,如图6所示,可以根据图6中预先训练得到的场景分类模型识别与目标状态信息相对应的目标场景类型。可选地,为了使场景识别更加准确,目标状态信息还可以是多处理器系统的刷新帧率(framespersecond,fps)、ddr(doubledataratesdram,双倍速率同步动态随机存储器)的状态(例如ddr负载、ddr工作频率、bus总线带宽以及ddr延时(latency)等)、多处理器系统中正在运行的关键任务(例如关键线程以及与关键线程绑定的处理器等)、modem(调制解调器)的状态(例如pa(poweramplifier,功率放大器)的状态、吞吐率、繁忙率等等)。69.示例性地,基于场景分类模型更加准确地识别出这些目标状态信息对应的目标场景类型,例如当识别到目标状态信息中存在处理器负载、gpu利用率、ddr负载均较高以及关键任务绑定在运算力较高的多处理器系统中时,可以识别出此时目标状态信息对应的目标场景类型为游戏场景。除此之外,在该目标任务下,如果通过无线连接网络,可能出现wcn的数据上传速率和数据下载速率升高等情况;如果通过modem连接网络,可能出现modem的吞吐率升高等情况。对应地,当识别到目标状态信息中存在处理器负载、gpu利用率、ddr负载等较低,以及关键任务绑定在运算力较高的多处理器系统中时,可以识别出此时目标状态信息对应的目标场景类型为网页浏览场景。可以理解的是,场景分类模型中还可以包括多媒体场景以及与多媒体场景对应的目标状态信息等。70.具体地,请参阅图7,在基于场景分类模型确定目标状态信息对应的目标场景类型之前,还可以对场景分类模型进行模型训练。训练过程可以包括:s531至s532。71.步骤s531:获取所述多处理器系统执行过的历史任务以及执行每个所述历史任务时所述多处理器系统的历史状态信息,其中,每个所述历史任务对应一个场景类型。72.在本实施例中,可以基于多处理器系统执行过的历史任务以及执行每个所述历史任务时所述多处理器系统的历史状态信息来训练场景分类模型。因此,首先可以获取这些历史任务和历史状态信息,其中,每个历史任务都可以对应一个场景类型。示例性地,在多处理器系统执行前端应用产生的任务时,可以将这些任务以及执行这些任务时的运行状态记录下来。73.如图8所示,在一些实施方式中,可以通过图8中的调度器来实现本技术实施例所述的任务调度方法。示例性地,可以通过软件控制模块810中的采集模块sw0采集包括历史任务以及历史状态信息在内的多处理器系统中的关键信息。例如,通过任务采集模块sw02来搜集系统中的任务信息,包括系统中任务队列中的任务数量、系统中的异常任务、系统中处理器的使用率、负载占用较高的任务信息等等。除此之外,在软件控制模块810中可以通过处理器采集模块sw00来搜集系统的各处理器的关键信息,例如系统中处于空闲、运行、独占、非独占等各个状态下的处理器数量;还可以通过系统控制信息采集模块sw01来搜集处理器的控制信息,例如系统允许处于独占状态、非独占状态的最大处理器数量和最小处理器数量,判断处理器是否繁忙的繁忙阈值,处理器选择独占状态或非独占状态的优先级等;还可以通过任务控制信息采集模块sw03来采集记系统中任务的控制信息,例如系统中各个处理器可运行的任务数量范围,低运算力系统中需要迁移到高运算力系统的任务数量范围等等。74.步骤s532:基于所述历史任务及所述多处理器系统的历史状态信息训练所述场景分类模型,以使每个所述场景类型对应一种多处理器系统的状态信息。75.接着,在本实施例中,可以基于上述步骤获取的历史任务及历史状态信息来训练场景分类模型,最终可以使多处理器系统中的每个场景类型对应一种表示多处理器系统运行状态的状态信息。示例性地,可以通过图8的模型训练模块820中的场景分类模型训练模块sw1来训练场景分类模型,可以从软件控制模块810中提取出与场景分类有关的特征信息,例如可以将采集的历史任务及历史状态信息等作为特征信息,然后将这些特征信息作为训练样本输入到场景分类模型训练模块sw1中训练场景分类模型。例如,可以采用卷积神经网络(convolutionalneuralnetworks,cnn)算法来训练场景分类模型,通过在卷积层进行特征提取,在池化层进行下采样以及在全连接层进行组织综合,最终得到场景分类模型。在获取到目标状态信息后,可以基于场景分类模型确定与目标状态信息对应的目标场景类型。76.步骤s540:基于强化学习模型确定所述目标场景类型对应的目标控制参数,作为所述目标任务对应的目标控制参数。77.进一步地,在获取得到与目标任务对应的目标场景类型后,在一些实施方式中,可以基于强化学习模型确定该目标场景类型对应的目标控制参数,作为所述目标任务对应的目标控制参数,可以达到根据多处理器系统中实际执行的任务来动态调整目标控制参数的目的。78.具体地,在基于强化学习模型确定所述目标场景类型对应的目标控制参数之前,还可以对强化学习模型进行模型训练。79.在一些实施方式中,可以基于多处理器系统执行过的历史任务、执行每个所述历史任务时所述多处理器系统的历史状态信息以及上述实施例中训练得到的场景分类模型对执行不同场景类型下的任务时所需的处理器性能参数进行强化学习训练,以得到强化学习模型。80.请再次参见图8,在一些实施例中,可以通过图8模型训练模块820中的强化学习模型训练模块sw2来训练强化学习模型。示例性地,可以将采集模块sw0中采集的历史任务及历史状态信息作为采集模块sw0的参数输入,将场景分类模型训练模块sw1训练得到场景分类模型作为场景分类模型训练模块sw1的参数输入,然后可以采用马尔可夫决策过程,通过使用动态规划、随机采样等方法来得到性能和功耗收益最大的策略。如图9所示,将采集模块sw0、场景分类模型训练模块sw1的参数(例如历史任务及历史状态信息以及场景分类模型)作为强化学习模型训练模块sw2的输入参数,然后进行强化学习,得到最优控制参数,将该最优控制参数通过执行模拟动作(action)后得到对应的性能收益和功耗收益,然后将性能收益和功耗收益作为回报(reward)函数的依据。这样不断通过学习得到的强化学习模块,可以根据不同目标任务得到不同场景下的最优目标控制参数。其中,目标控制参数中处理器性能参数可以包括多处理器系统可运行的任务数量、所述多处理器系统运行的处理器数量以及处理器负载。81.示例性地,仍然以游戏应用产生的显示游戏画面的任务为例,基于场景分类模型可以将显示游戏画面的任务对应的目标场景类型识别为游戏场景,由于游戏场景对处理器负载要求较高,因此在执行显示游戏画面的任务时,可以将目标控制参数中的处理器性能参数的范围增大,例如可以将多处理器系统可运行的任务数量范围从0~2增大为0~3,表示在执行目标任务时多处理器系统最多可运行3个任务;同时可以将多处理器系统可运行的处理器数量从2~3扩大为3~5,表示在执行目标任务时多处理器系统最少需运行的处理器数量为3,最多需运行的处理器数量为5;此外,还可以保持处理器负载阈值为75%不变,使多处理器系统的性能可以满足显示游戏画面的任务的需求。82.步骤s550:获取所述多处理器系统中当前处于运行状态的处理器,所述运行状态包括非独占状态和独占状态。83.在本实施例中,可以获取多处理器系统中当前处于运行状态的处理器,具体过程可以参考前述方法实施例中的对应过程,在此不再赘述。84.在一些实施方式中,请再次参见图8,通过硬件控制模块830中的存储模块hw0可以存储采集模块sw0中采集到的多处理器系统中的关键信息。例如,系统信息存储模块hw00可以存储由处理器采集模块sw00、任务采集模块sw02采集得到的对应信息;控制信息存储模块hw01可以存储由系统控制信息采集模块sw01、任务控制信息采集模块sw03采集得到的对应信息。可选地,控制信息存储模块hw01还可以存储由强化学习模型训练模块sw2训练得到的强化学习模型以及相关的参数等待。可选地,在第一计算模块hw10中可以获取得到当前处于运行状态的处理器。85.步骤s560:将所述当前处于运行状态的处理器中处于非独占状态的处理器数量作为第一数量。86.在本实施例中,可以将当前处于运行状态的处理器中处于非独占状态的处理器数量作为第一数量,具体过程可以参考前述方法实施例中的对应过程,在此不再赘述。87.可以理解的是,同样可以在第一计算模块hw10中计算得到第一数量。88.步骤s570:获取所述多处理器系统中当前正在运行的任务数量。89.在一些实施方式中,与目标控制参数对应的处理器数量可以与多处理器系统中当前正在运行的任务数量相关。其中,当前正在运行的任务数量可以用于表示当前执行所述目标任务时所述多处理器系统的负载情况。因此,首先可以获取多处理器系统中当前正在运行的任务数量。90.在本技术的一些实施方式中,首先可以获得多处理器系统的任务队列中的任务以及每个任务的运行时间,然后基于每个任务的运行时间以及处理任务队列中任务所需的调度时间,来确定当前正在运行的任务数量。示例性地,若任务队列中有q个任务,每个任务的运行时间为t1,那么n个任务运行时间综合为q*t1,然后使用调度时间t2进行归一化计算,可以得到一个调度时间内系统运行的任务数量为q*t1/t2,可以将该任务数量作为多处理器系统中当前正在运行的任务数量。91.步骤s580:基于所述目标控制参数以及所述当前正在运行的任务数量对所述多处理器系统中的处理器进行调度,得到执行所述目标任务时所需的处理器数量,作为所述第二数量。92.在本技术的实施例中,接着可以根据目标控制参数及当前正在运行的任务数量来预测执行目标任务时所需的处理器数量,作为所述第二数量。具体地,可以基于目标控制参数及当前正在运行的任务数量对多处理器系统中的处理器进行调度,以得到第二数量。示例性地,仍然以游戏应用对应的显示游戏画面的任务为例,可以识别到对应的目标场景类型为游戏场景,其中,游戏场景下可以将目标控制参数中的处理器性能参数的范围增大,首先可以比较当前正在运行的任务数量以及目标控制参数来判断当前处理器的繁忙程度或空闲程度,若处于繁忙状态,可以确定当前正在运行的处理器数量不足以满足显示游戏画面的任务的执行需要,进一步地,可以基于具体的繁忙程度来确定第二数量。例如,若计算得到当前正在运行的任务数量为1.7,且在重新调整处理器状态前仅有1个处理器在运行,若基于目标任务对目标控制参数调整前,多处理器系统最多可运行的任务数量为2,导致处理器负载已经超过负载阈值75%,因此应当将多处理器系统最多可运行的任务数量增大为3的同时,还将会增加一个处理器来处理这1.7个任务,最终可以得到第二数量为2,从而在满足目标任务的需求的同时还可以使处理器负载下降。可选地,如图8所示,可以在第二计算模块hw11中计算得到第二数量。93.步骤s590:基于所述第一数量和所述第二数量,调整当前处于运行状态的多个处理器中处于非独占状态的处理器的数量,以使所述当前处于运行状态的处理器中处于非独占状态的处理器数量达到第二数量。94.在一些实施方式中,可以通过图8中的第一计算模块hw10可以计算得到第一数量,通过第二计算模块hw11可以计算得到第二数量,然后可以在算法控制模块hw1中基于所述第一数量和所述第二数量,调整当前处于运行状态的多个处理器中处于非独占状态的处理器的数量,以使所述当前处于运行状态的处理器中处于非独占状态的处理器数量达到第二数量。95.可选地,可以比较第一数量与第二数量的大小,然后通过比较结果来调整当前处于运行状态的多个处理器中处于非独占状态的处理器的数量。96.在本技术的一些实施例中,若第一数量大于第二数量,可以说明多处理器系统中当前处于运行状态中处于非独占状态的处理器数量已经超过执行目标任务时所需要的处理器数量。其中,由于调度器不会将任务迁移到处于独占状态的处理器,因此,为了减少不必要的损耗,可以将执行目标任务时不需要的但当前处于运行状态的处理器中处于非独占状态的部分处理器的状态调整为独占状态,从而在执行目标任务时可以把目标任务分配给处于运行状态的处理器中非独占状态的处理器执行。例如,可以将当前处于运行状态的处理器中指定数量个处于非独占状态的处理器的状态调整为独占状态,其中,指定数量为第一数量与第二数量的差值,可以使当前处于运行状态的处理器中处于非独占状态的处理器数量达到第二数量,使目标任务正常运行的同时,将多余的处理器调整为独占状态,降低功耗。97.在本技术的另一些实施例中,若所述第一数量小于所述第二数量,此时运行状态中处于非独占状态的处理器数量无法满足目标任务的需求,因此需要将运行状态中处于独占状态的处理器的状态调整为非独占状态。例如,将当前处于运行状态的处理器中指定数量个处于非独占状态的处理器的状态调整为独占状态,其中,所述指定数量为第一数量与第二数量的差值。由此,可以使处于非独占状态的处理器数量达到第二数量。98.可以理解的是,在进行状态调整前,还可以比较第二数量与当前处于运行状态的处理器数量的大小。可以将当前处于运行状态的处理器数量作为第三数量。在一些实施例中,在第一数量小于第二数量的情况下,若第二数量小于第三数量,说明当前处于运行状态的处理器数量已经可以满足目标任务的性能需求,但还需要将运行状态中部分处于独占状态的处理器调整为非独占状态,使得运行状态中处于非独占状态的处理器数量达到第二数量。示例性地,若第三数量为4,第一数量为2,而第二数量为3,在状态调整前,运行状态中处于非独占状态和独占状态的处理器均有2个,2个非独占状态的处理器显然无法满足目标任务3个处理器的需求。因此,可以将运行状态中的2个处于独占状态的处理器任选一个将状态调整为非独占状态,经过状态调整后,运行状态中处于非独占状态的处理器数量达到3个,而独占状态的处理器数量为1个,可以满足目标任务的需求。99.在另一些实施例中,在第一数量小于第二数量的情况下,若第二数量大于第三数量,说明当前处于运行状态的处理器数量无法满足目标任务的性能需求,还需要从处于空闲状态的处理器中调度部分处理器来执行目标任务。因此,在第二数量大于第三数量的情况下,还可以获取处于空闲状态的处理器,并且可以将处于空闲状态的处理器中处于非独占状态的处理器的数量作为第四数量。进一步地,比较第三数量与第四数量之和,与第二数量的大小。100.若第二数量小于或等于第三数量与第四数量之和,那么不仅需要将运行状态中处于独占状态的全部处理器调整为非独占状态,还需要将空闲状态的处理器中处于非独占状态的部分处理器调度来执行目标任务,这部分处理器的数量可以等于第二数量与第三数量的差值。101.若第二数量大于第三数量与第四数量之和,说明即使将空闲状态中所有处于非独占状态的处理器调度来执行目标任务,仍然无法满足目标任务的需求。为执行目标任务,不仅需要将运行状态中处于独占状态的全部处理器调整为非独占状态,还需要将空闲状态中处于独占状态的部分处理器的状态调整为非独占状态,从而使多处理器系统中处于非独占状态的处理器数量(包括状态调整后当前处于运行状态的所有处理器和空闲状态中处于非独占状态的处理器)可以达到第二数量。102.更进一步地,若第二数量还大于第三数量与处于空闲状态的处理器数量之和,即是说,第二数量已经超过了多处理器系统中所有处理器的总数量,目标任务超出了多处理器系统的性能范围,该在实施例下,可以将目标任务迁移到运算力高于当前多处理器系统的其他多处理器系统。103.需要说明的是,由于多处理器系统的系统控制信息通常会限制系统允许处于独占状态、非独占状态的最大处理器数量和最小处理器数量,因此,在一些典型的实施例中,除了可以根据多处理器系统当前处于运行状态或空闲状态的处理器数量以及非独占状态或独占状态的处理器数量来进行任务调度外,还可以将系统控制信息也作为任务调度的参考标准。104.综上所述,本技术实施例提供的任务调度方法,应用于多处理器系统。首先获取多处理器系统当前执行的目标任务,然后获取所述多处理器系统当前执行目标任务时的目标状态信息,基于场景分类模型确定所述目标状态信息对应的目标场景类型,接着基于强化学习模型确定所述目标场景类型对应的目标控制参数,作为所述目标任务对应的目标控制参数。然后获取多处理器系统中当前处于运行状态的处理器,所述运行状态包括非独占状态和独占状态。将所述当前处于运行状态的处理器中处于非独占状态的处理器数量作为第一数量;获取所述多处理器系统中当前正在运行的任务数量,基于所述目标控制参数以及所述当前正在运行的任务数量对所述多处理器系统中的处理器进行调度,得到执行所述目标任务时所需的处理器数量,作为所述第二数量。接着,然后基于第一数量和第二数量调整当前处于运行状态的多个处理器中处于非独占状态的处理器的数量,以使当前处于运行状态的处理器中处于非独占状态的处理器数量达到第二数量。本技术可以根据当前系统正在执行的不同任务来动态调整处理器的状态,使系统中的处理器在执行当前任务的同时,可以达到满足使用需求以及消耗更低功耗的目的。除此之外,通过软件控制模块、模型训练模块和硬件控制模块实现的任务调度方法,还可以更准确、更快速地实现对处理器的控制。105.请参阅图10,其示出了本技术一实施例提供的任务调度装置的结构框图。该任务调度装置可以应用于多处理器系统。该任务调度装置包括:第一获取单元1010、第二获取单元1020、第一确定单元1030、第二确定单元1040以及调整单元1050。其中,第一获取单元1010,用于获取多处理器系统当前执行的目标任务,确定与所述目标任务对应的目标控制参数,所述目标控制参数用于表示执行所述目标任务所需的处理器性能参数;第二获取单元1020,用于获取所述多处理器系统中当前处于运行状态的处理器,所述运行状态包括非独占状态和独占状态;第一确定单元1030,用于将所述当前处于运行状态的处理器中处于非独占状态的处理器数量作为第一数量;第二确定单元1040,用于确定与所述目标控制参数对应的处理器数量,作为第二数量;调整单元1050,用于基于所述第一数量和所述第二数量,调整当前处于运行状态的多个处理器中处于非独占状态的处理器的数量,以使所述当前处于运行状态的处理器中处于非独占状态的处理器数量达到第二数量。106.进一步地,所述调整单元1050可以包括:第一调整单元,用于若所述第一数量大于所述第二数量,将所述当前处于运行状态的处理器中指定数量个处于非独占状态的处理器的状态调整为独占状态,其中,所述指定数量为第一数量与第二数量的差值。107.更进一步地,所述调整单元1050还可以包括:第二调整单元,用于若所述第一数量小于所述第二数量,将所述当前处于运行状态的处理器中指定数量个处于独占状态的处理器的状态调整为非独占状态,其中,所述指定数量为第二数量与第一数量的差值。108.作为一种方式,所述第一获取单元1010包括:第三获取单元,用于获取所述多处理器系统当前执行目标任务时的目标状态信息;场景确定单元,用于基于场景分类模型确定所述目标状态信息对应的目标场景类型;参数确定单元,用于基于强化学习模型确定所述目标场景类型对应的目标控制参数,作为所述目标任务对应的目标控制参数。109.进一步地,所述任务调度装置还可以包括:第四获取单元,用于获取所述多处理器系统执行过的历史任务以及执行每个所述历史任务时所述多处理器系统的历史状态信息,其中,每个所述历史任务对应一个场景类型;第一训练单元,用于基于所述历史任务及所述多处理器系统的历史状态信息训练所述场景分类模型,以使每个所述场景类型对应一种多处理器系统的状态信息。110.更进一步地,所述任务调度装置还可以包括:第二训练单元,用于基于所述历史任务、所述多处理器系统的历史状态信息及所述场景分类模型对执行不同场景类型下的任务时所需的处理器性能参数进行强化学习训练,得到所述强化学习模型。111.在一些实施方式中,第二确定单元1040可以包括:第五获取单元,用于获取所述多处理器系统中当前正在运行的任务数量;确定子单元,用于基于所述目标控制参数以及所述当前正在运行的任务数量对所述多处理器系统中的处理器进行调度,得到执行所述目标任务时所需的处理器数量,作为所述第二数量。112.在一些实施方式中,上述第五获取单元可以包括:时间获取单元,用于获取所述多处理器系统的任务队列中的任务以及每个任务的运行时间;任务获取单元,用于基于所述运行时间以及处理所述任务队列中的任务所需的调度时间,确定所述当前正在运行的任务数量。113.作为一种实施方式,所述处理器性能参数包括所述多处理器系统可运行的任务数量、所述多处理器系统可运行的处理器数量以及处理器负载。114.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置、模块单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。115.在本技术所提供的几个实施例中,模块或单元相互之间的耦合可以是电性,机械或其它形式的耦合。116.另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。117.综上所述,本技术提供的任务调度装置,应用于多处理器系统。所述装置包括第一获取单元、第二获取单元、第一确定单元、第二确定单元以及调整单元。其中,第一获取单元,用于获取多处理器系统当前执行的目标任务,确定与所述目标任务对应的目标控制参数,所述目标控制参数用于表示执行所述目标任务所需的处理器性能参数;第二获取单元,用于获取所述多处理器系统中当前处于运行状态的处理器,所述运行状态包括非独占状态和独占状态;第一确定单元,用于将所述当前处于运行状态的处理器中处于非独占状态的处理器数量作为第一数量;第二确定单元,用于确定与所述目标控制参数对应的处理器数量,作为第二数量;调整单元,用于基于所述第一数量和所述第二数量,调整当前处于运行状态的多个处理器中处于非独占状态的处理器的数量,以使所述当前处于运行状态的处理器中处于非独占状态的处理器数量达到第二数量。本技术可以根据当前系统正在执行的不同任务来动态调整处理器的状态,使系统中的处理器在执行当前任务的同时,可以达到满足使用需求以及消耗更低功耗的目的。118.请参考图11,其示出了本技术一实施例提供的电子设备的结构框图。所述电子设备一个或多个如下部件:处理器1110、存储器1120以及一个或多个应用程序。一个或多个应用程序可以被存储在存储器1120中并被配置为由一个或多个处理器1110执行,一个或多个应用程序配置用于执行如前述方法实施例所描述的方法。119.电子设备可以为移动、便携式并执行无线通信的各种类型的计算机系统设备中的任何一种。具体的,电子设备可以为移动电话或智能电话(例如,基于iphonetm,基于androidtm的电话)、便携式游戏设备(例如nintendodstm,playstationportabletm,gameboyadvancetm,iphonetm)、膝上型电脑、pda、便携式互联网设备、音乐播放器以及数据存储设备,其他手持设备以及诸如智能手表、智能手环、耳机、吊坠等,电子设备还可以为其他的可穿戴设备(例如,诸如电子眼镜、电子衣服、电子手镯、电子项链、电子纹身、电子设备或头戴式设备(hmd))、智能家居设备、车载智能设备等。120.电子设备还可以是多个电子设备中的任何一个,多个电子设备包括但不限于蜂窝电话、智能电话、智能手表、智能手环、其他无线通信设备、个人数字助理、音频播放器、其他媒体播放器、音乐记录器、录像机、照相机、其他媒体记录器、收音机、医疗设备、车辆运输仪器、计算器、可编程遥控器、寻呼机、膝上型计算机、台式计算机、打印机、上网本电脑、个人数字助理(pda)、便携式多媒体播放器(pmp)、运动图像专家组(mpeg-1或mpeg-2)音频层3(mp3)播放器,便携式医疗设备以及数码相机及其组合。121.在一些情况下,电子设备可以执行多种功能(例如,播放音乐,显示视频,存储图片以及接收和发送电话呼叫)。如果需要,电子设备可以是诸如蜂窝电话、媒体播放器、其他手持设备、腕表设备、吊坠设备、听筒设备或其他紧凑型便携式设备。122.处理器1110可以是由一个或多个处理器组成的集合,也可以包括一个或者多个处理核。处理器1110利用各种接口和线路连接整个电子设备内的各个部分,通过运行或执行存储在存储器1120内的指令、应用程序、代码集或指令集,以及调用存储在存储器1120内的数据,执行电子设备的各种功能和处理数据。可选地,处理器1110可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器1110可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1110中,单独通过一块通信芯片进行实现。123.存储器1120可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。存储器1120可用于存储指令、应用程序、代码、代码集或指令集。存储器1120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以电子设备在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。124.请参考图12,其示出了本技术一实施例提供的计算机可读存储介质的结构框图。该计算机可读存储介质1200中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。125.计算机可读存储介质1200可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读存储介质1200包括非易失性计算机可读存储介质(non-transitorycomputer-readablestoragemedium)。计算机可读存储介质1200具有执行上述方法中的任何方法步骤的程序代码1210的存储空间。这些程序代码1210可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1210可以例如以适当形式进行压缩。126.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1