CN112214299A - 多核处理器及其任务调度方法和装置 - Google Patents
多核处理器及其任务调度方法和装置 Download PDFInfo
- Publication number
- CN112214299A CN112214299A CN202011063362.7A CN202011063362A CN112214299A CN 112214299 A CN112214299 A CN 112214299A CN 202011063362 A CN202011063362 A CN 202011063362A CN 112214299 A CN112214299 A CN 112214299A
- Authority
- CN
- China
- Prior art keywords
- task
- processing core
- scheduled
- threshold
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012545 processing Methods 0.000 claims abstract description 289
- 230000000903 blocking effect Effects 0.000 claims abstract description 39
- 238000004590 computer program Methods 0.000 claims description 15
- 238000009499 grossing Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010195 expression analysis Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请属于处理器领域,公开了一种多核处理器及其任务调度方法和装置,该方法包括:获取第二处理核中处理的已调度任务的任务类型,以及所述已调度任务的资源使用状态信息;根据所述已调度任务的任务类型,确定第二处理核所对应的状态阈值;将所述资源使用状态信息与所述状态阈值进行比较;当所述资源使用状态信息超过所述状态阈值时,所述第一处理核的任务控制模块生成阻塞指令,阻断所述待调度任务的分配。即使***处于高负载状态时,第二处理核可以避免由于过多的已调度任务占用第二处理核的调度资源,使得第二处理核能够对已调度任务进行高速处理或高效处理,从而能够有效的降低***延时,提升用户使用体验。
Description
技术领域
本申请属于处理器领域,尤其涉及多核处理器及其任务调度方法和装置。
背景技术
在日益复杂的嵌入式或AI应用领域,业务***处理的业务流或子任务越来越多,处理过程也越来越复杂。为了提高业务***的处理效率,可以采用多核并行处理的方式,通过跨核的多任务调度,提升处理器的业务处理性能。
目前的多核处理器的任务调度中,通常是基于***的负载均衡的角度,对多个处理核的处理任务的数量进行任务调度,当***处于高负载状态时,容易产生额外的资源损耗,比如,当***处于高负载状态时,由于***在同一时间可以并行处理的任务数量受到限制,***需要消耗额外的资源对有限的资源进行调度,并且过多任务处理时容易引起拥塞,使得***延时增大,处理任务的实时性较差,不利于提升用户使用体验。
发明内容
有鉴于此,本申请实施例提供了一种多核处理器及其任务调度方法和装置,以解决现有技术中通过多核处理器处理任务时,当***处于高负载状态时,容易使得***延时增大,不利于提升用户使用体验的问题。
本申请实施例的第一方面提供了一种多核处理器的任务调度方法,所述多核处理器包括第一处理核和第二处理核,所述第一处理核中存储有待调度任务,所述第二处理核存储有已调度任务,
所述第一处理核包括任务控制模块,所述方法包括:
获取所述第二处理核中处理的所述已调度任务的任务类型,以及所述已调度任务的资源使用状态信息;
根据所述已调度任务的任务类型,确定第二处理核所对应的状态阈值;
将所述资源使用状态信息与所述状态阈值进行比较;
当所述资源使用状态信息超过所述状态阈值时,所述第一处理核的任务控制模块生成阻塞指令,阻断所述待调度任务的分配。
结合第一方面,在第一方面的第一种可能实现方式中,根据所述已调度任务的任务类型,确定第二处理核所对应的状态阈值,包括:
获取所述已调度任务的任务类型所对应的延时要求;
如果延时要求最高的已调度任务的延时要求低于预设的延时阈值,确定所述第二处理核对应的状态阈值为使用率优先状态所对应的第一阈值;
如果延时要求最高的已调度任务的延时要求高于或等于预设的延时阈值,确定所述第二处理核对应的状态阈值为速度优先状态所对应的第二阈值。
结合第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,所述已调度任务的资源使用状态信息包括第一资源使用状态信息和第二资源使用状态信息,所述第一阈值包括第一资源阈值和第二资源阈值,所述状态阈值为第一阈值时,当所述资源使用状态信息超过所述状态阈值时,所述第一处理核的任务控制模块生成阻塞指令,阻断所述待调度任务的分配,包括:
如果所述第一资源使用状态信息超过所述第一资源阈值,所述第一处理核的任务控制模块生成所述第一类型的待调度任务的阻塞指令,阻断第一类型的待调度任务的分配;
如果所述第二资源使用状态信息超过所述第二资源阈值,所述第一处理核的任务控制模块生成所述第二类型的待调度任务的阻塞指令,阻断第二类型的待调度任务的分配。
结合第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,所述第一资源使用状态信息为第二处理核的算力资源使用率,所述第二资源使用状态信息为第二处理核的带宽资源使用率。
结合第一方面的第一种可能实现方式,在第一方面的第四种可能实现方式中,所述状态阈值为第二阈值时,当所述资源使用状态信息超过所述状态阈值时,所述第一处理核的任务控制模块生成阻塞指令,阻断所述待调度任务的分配,包括:
当所述第二处理核处理中处理所述已调度任务所产生的延时信息大于或等于预设的第二阈值时,所述第一处理核的任务控制模块生成所述待调度任务的阻塞指令,阻断所述待调度任务的分配。
结合第一方面的第四种可能实现方式,在第一方面的第五种可能实现方式中,获取所述第二处理核中处理的所述已调度任务的资源使用状态信息,包括:
获取第二处理核处理的任务在预定时长内的延时信息;
对所述预定时长内的延时信息进行平滑处理,将平滑处理后的延时信息作为所述资源使用状态信息。
结合第一方面、第一方面的第一种可能实现方式、第一方面的第二种可能实现方式、第一方面的第三种可能实现方式、第一方面的第四种可能实现方式或第一方面的第五种可能实现方式,在第一方面的第六种可能实现方式中,在将所述资源使用状态信息与状态阈值进行比较之前,所述方法还包括:
获取所述待调度任务所对应的资源占用信息;
在将所述资源使用状态信息与状态阈值进行比较之后,所述方法还包括:
如果所述资源使用状态信息未超过所述状态阈值,且二者的差值所对应的资源信息,大于所述待调度任务所对应的资源占用信息时,所述第一处理核将所述待调度任务分配至第二处理核。
结合第一方面,在第一方面的第七种可能实现方式中,所述资源使用状态信息为已调度任务的种类和数量,根据所述已调度任务的任务类型,确定第二处理核所对应的状态阈值,包括:
根据预先确定的任务类型、任务数量与数量阈值的对应关系,确定已调度任务所对应的数量阈值;
当所述资源使用状态信息超过所述状态阈值时,所述第一处理核的任务控制模块生成阻塞指令,阻断所述待调度任务的分配,包括;
当所述第二处理核中的已调度任务的数量大于或等于所述数量阈值,所述第一处理核的任务控制模块生成阻塞指令,阻断所述待调度任务的分配。
本申请实施例的第二方面提供了一种多核处理器的任务调度装置,所述多核处理器包括第一处理核和第二处理核,所述第一处理核中存储有待调度任务,所述第二处理核存储有已调度任务,所述第一处理核包括任务控制模块,所述装置包括:
任务获取单元,用于获取所述第二处理核中处理的所述已调度任务的任务类型,以及所述已调度任务的资源使用状态信息;
状态阈值确定单元,用于根据所述已调度任务的任务类型,确定第二处理核所对应的状态阈值;
比较单元,用于将所述资源使用状态信息与所述状态阈值进行比较;
阻断单元,用于当所述资源使用状态信息超过所述状态阈值时,所述第一处理核的任务控制模块生成阻塞指令,阻断所述待调度任务的分配。
本申请实施例的第三方面提供了一种多核处理器,包括存储器、处理核以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理核执行所述计算机程序时实现如第一方面任一项所述方法的步骤。
本申请实施例的第四方面提供了一种板卡,所述板卡包括如第三方面所述的多核处理器。
本申请实施例的第五方面提供了一种电子设备,所述电子设备包括如第四方面所述的板卡。
本申请实施例的第六方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述方法的步骤。
本申请实施例与现有技术相比存在的有益效果是:第一处理核存储有待调度任务,第二处理核存储有已调度任务,第二处理核可以对已调度任务进行处理,第一处理核可以获取第二处理核中的已调度任务的任务类型,以及已调试任务的资源使用状态信息,根据已调试任务的任务类型确定第二处理核的状态阈值,从而使得第一处理核可以根据已调试任务的任务类型所确定的状态阈值,由任务控制模块确定是否生成阻塞指令来阻断待调度任务的分配,即使***处于高负载状态时,第二处理核也可以避免由于过多的已调度任务占用第二处理核的调度资源,包括如对过多已调度任务的算力资源或带宽资源的调度等,使得第二处理核能够对已调度任务进行高速处理或高效处理,从而能够有效的降低***延时,提升用户使用体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种多处理核的核间调度的示意图;
图2是本申请实施例提供的一种在高负载状态下的任务处理示意图;
图3是本申请实施例提供的一种任务控制***运行示意图;
图4是本申请实施例提供的一种多核处理器的任务调度处理框架示意图;
图5是本申请实施例提供的一种多核处理器的资源调度方法的实现流程示意图;
图6为本申请实施例提供的一种多核处理器的资源调度装置示意图;
图7是本申请实施例提供的多核处理器的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
图1为本申请实施例提供的一种多处理核的核间调度的示意图。如图1所示,第一处理核和第二处理核为两个独立的处理器,第一处理核为调度方,第二处理核为被调度方。在第一处理核和第二处理核之间的核间通信模块用于两个处理核的消息交互。所交互的消息包括发送消息队列(Tx MQ)和接收消息队列(Rx MQ)。在第一处理核中运行有能够进行任务调度的线程,通过线程可生成待调度任务的发送消息队列。
一般的调度过程为:
第一处理核中的线程生成待调度任务,通过核间通信模块,将待调度任务发送至第二处理核。第二处理核调用***资源,将已接收的任务,即已调度任务,通过任务处理进程进行处理。在处理过程中,第一处理核可以通过核通信模块,接收第二处理核的资源使用状态信息。
当***处于高负载状态时,为了便于将第二处理核的资源与已调度任务进行比较,可以根据已调度任务的资源占用均值,对第二处理核中的资源进行量化。比如,可以通过计算多个任务所占用的资源的平均值,确定单个任务所占用的资源的估计值。根据第二处理核中的资源,结合单个任务所占用的资源的估计值,即可确定第二处理核中的资源数量。图2给出了一种在高负载状态下的任务处理示意图,第一处理核下发至第二处理核的已调度任务的数量为n,第二处理核的资源数量为m,已调度任务的数量n远大于资源数量m。在这种情况下,由于***在同一时间可以并行处理的任务数量受到限制,处于资源等待的任务数量较多。比如,可能任务A已完成计算处理,在等待带宽资源,而任务B正在使用带宽资源,正在等待算力资源。***需要为大量的任务的资源使用进行调度而消耗资源。并且,如果同一时间请求的资源数量过多,可能会引起资源拥塞,导致***的有效处理速度更为缓慢。在这种情况下,第二处理核***处理任务的速度会变得缓慢,资源利用率变低,对于多核处理器来说,处理任务的延时增加,实时性差,影响用户体验。
为了解决处理核延时增加,实时性差的缺陷,本申请在第一处理核中增加反压控制模块,或者也可以称为任务控制模块。第一处理核在获取第二处理核中的已调度任务的任务种类后,根据任务种类可以确定第二处理核中的已调度任务所对应的状态阈值。比如,第二处理核中的已调度任务的任务种类为延时要求高于预定的第一延时阈值时,则可以确定状态阈值为根据延时要求所确定的状态阈值。第二处理核中的已调度任务的任务种类的延时要求低于预定的第二延时阈值时,则可以确定状态阈值为根据第二处理核的效率优先所确定的状态阈值。根据所确定的状态阈值,该任务控制模块可以根据第二处理核的资源使用状态信息,动态的生成阻塞指令,通过阻塞指令阻断待调度任务的下发。
在可能的实现方式中,当第二处理核中的任务类型无法确定,或者无法获取第二处理核的资源使用状态信息时,或者还可以在根据已调度任务的资源使用状态信息进行调度的基础上,可以结合图3所提供的任务控制***运行示意图进行任务调度。在图3中所示的运行示意图中,包括t0和t1两个时刻的运行状态,并且预先设定的状态阈值包括第二处理核中运行的已调度任务的数量,且根据预先的统计分析,该数量为3个。如图3所示,第二处理核中包括两个资源,分别为资源0和资源1,通过资源调度,资源0和资源1可以同时处理3个已调度任务,且在该状态下,第二处理核的调度率,即第二处理核的使用率达到最高值。
在t0时刻,第一处理核中待调度任务为5个,分别为0~4,由于第二处理核上报的资源使用状态信息中,第二处理核中的已调度任务的数量等于预先设定的数量阈值,此时第二处理核的资源使用率(或者也可以称为调度率)最高,不宜再添加任务。此时,任务控制模块生成阻塞指令,阻断待调度任务的分配,收紧第一处理核中的线程的任务调度下发。如图3所示,在t0时刻,任务3和任务4被打回阻塞在第一处理核的线程中。此时,对于第二处理核来说处于较优的任务调度状态。
在t1时刻,第二处理核已完成任务0的处理,通过资源使用状态信息通知第一处理核的任务控制模块。此时,第二处理核中的已调度任务的数量小于预定的数量阈值,第一处理核中的任务3调度下发,因此,任务3可以下发至第二处理核进行处理,此时,接收任务3后,第二处理核仍然处于较优的运行状态。
在可能的实现方式中,可以根据不同的任务类型的排列组合与数量阈值的对应关系,来确定第二处理核中的已调度任务的种类和数量所对应的数量阈值。即根据任务类型、任务数量与数量阈值的对应关系,来确定已调度任务所对应数量阈值。该数量阈值可以包括任务类型所对应的数量的组合。比如,任务类型可以包括A、B、C、D、E、F,可以预先统计第二处理核在达到效率最佳,即第二处理核的资源调度率最高时所对应的任务类型的组合。比如,在一种可能的实现方式中,第二处理核在调度率最高时所对应的任务类型的组合可为:2个任务A和1个任务B、3个任务A和1个任务C、2个任务B和2个任务D、3个任务B和1个任务D、1个任务C和3个任务E等。因此,在可能的实现方式中,即使任务类型相同,总数量相同,但比值不同,可能对应不同的数量阈值。比如,已调度任务中包括2个任务A和1个任务B,或者包括2个任务B和一个任务A,虽然对应的任务数量总数相同,任务类型相同,所对应的数量阈值可能不同。
当然,数量阈值还可以包括更多类型的任务的组合,或者也可以为单个类型的任务所对应的数量。
图4为本申请实施例提供的一种多核处理器的任务调度处理框架示意图。如图4所示,在第一处理核(主核)中包括任务控制模块,第一处理核可以向用户提供三种接口,包括目标资源使用率设置接口,任务期望延时设置接口和任务调度接口。目标资源使用率设置接口可以接收用户所设置的第二处理核的资源使用率阈值(或称为调度率阈值),任务期望延时设置接口可以接收用户所设置的第二处理核中的已调度任务所允许的最大延时。通过任务调度接口可以接收用户的调度指令,根据调度指令将第一处理核中的待调度任务分配至第二处理核。
在本申请实施例中,状态阈值可以根据预先的测试数据计算得到。比如,可以通过第二处理核单独运行待测试的任务,根据待测试任务的资源状态使用信息来计算得到状态阈值。或者,也可以通过编译工作对待测试的任务进行量化计算,得到待测试任务所对应的资源状态使用信息,并根据资源状态使用信息计算得到状态阈值。或者,本申请还可以通过多任务同时运行测试的方式,通过对运行时的资源使用状态信息、任务处理效率、任务处理时长的记录,确定不同的期望要求下,所对应的任务类型和任务数量的状态阈值。
值得说明的是,即使在相同期望要求下,相同的两个或两个以上的任务类型,可能包括多种不同数值所组合的任务数量的状态阈值。
根据所确定的待测试任务的资源状态使用信息,结合第二处理核所包括的资源信息,确定第二处理核所对应的状态阈值,包括第二处理核在使用率优先状态所对应的第一阈值,速度优先状态所对应的第二阈值,或者第二处理核所对应的数量阈值。
如图4所示,在第一处理核与第二处理核之间包括两个队列,包括由第一处理核到第二处理核的待调度任务队列,以及第二处理核发送至第一处理核的资源使用状态信息队列。
其中,待调度任务队列中的任务,可以包括任务的类型,任务的具体参数信息,包括任务的实时性要求等。资源使用状态信息队列可以包括第二处理核当前的资源使用率、第二处理核的延时以及任务饱和度等状态信息。
基于图4所示的框架,图5提出了一种多核处理器的资源调度方法的实现流程示意图。如图5所示,该方法包括:
S501,获取所述第二处理核中处理的所述已调度任务的任务类型,以及所述已调度任务的资源使用状态信息。
本申请实施例中,所述资源使用状态信息,可以包括第二处理核中已调度任务的数量、第二处理核中所包括的任务类型所对应的资源使用率(或者也可以称为调度率)以及第二处理核的延时信息中的一项或者多项。其中:
第二处理核中已调度任务的数量,可以根据第一处理核下发任务至第二处理核的时间点,以及第二处理核完成任务的时间点,来更新第二处理核中已调度任务的数量。当第二处理核接收第一处理核所下发的任务时,更新为第二处理核中已调度任务的数量加一,当第二处理核完成一个已调度任务时,更新为第二处理核中已调度任务的数量减一。
第二处理核中的任务类型,可以根据任务所期望的实时性要求进行划分。比如,可以设定延时阈值,当任务所期望的实时性要求高于所设定的延时阈值时,则可以认为该任务为速度优先型任务。当任务所期望的实时性要求低于或等于所设定的延时阈值时,可以认为该任务为效率优先型任务。其中,速度优先型任务,需要尽量保证任务的完成速度。效率优先型任务则表示均衡所完成的任务的数量和速度。
已调度任务的资源使用状态信息,可以根据所已调度任务所使用的资源类型不同而划分。比如,第二处理核中的已调度任务的资源使用状态信息,可以包括算力使用状态信息、带宽使用状态信息等。对应的资源使用率,可以为算力资源使用率、带宽资源使用率。
所述第二处理核的延时信息,可以根据第二处理核接收到任务的时间点,以及该任务处理完成的时间点之间的时长来确定,或者还可以根据确定延时信息的处理核来选择相应的确定方式,比如,当第一处理核来确定时,可以根据第一处理核发送该任务的时间点,以及第一处理核接收到处理结果的时间点来确定。
S502,根据所述已调度任务的任务类型,确定第二处理核所对应的状态阈值。
根据延时要求所确定的任务类型后,即可通过任务类型的延时要求,确定第二处理核的状态阈值。
在可能的实现方式中,如果延时要求最高的已调度任务的延时要求低于预设的延时阈值,确定所述第二处理核对应的状态阈值为使用率优先状态所对应的第一阈值。
也即,在这种情况下,第二处理核中的已调度任务的实时性要求不是非常突出。可以在第二处理核的资源充分利用的情况下,尽可能的提高***调度率,从而有效的提升***的任务处理效率。
比如,对于所存储的视频图像进行分析时,所包括的提取人脸结构化信息等任务,并不需要追求单个任务高效,可以从***整体层面提升第二处理核的效率,即提高第二处理核的资源的调度率即可。因此,对于这种类型的任务,可以根据***的调度率的提升来确定状态阈值为第一阈值。
或者,如果延时要求最高的已调度任务的延时要求高于或等于预设的延时阈值,确定所述第二处理核对应的状态阈值为速度优先状态所对应的第二阈值。
在这种情况下,***对个别任务的实时性提出高要求,需要保证个别任务的高速完成。比如,在实时抓拍场景下,需要对实时采集的图像进行表情分析,或者对图像进行其它内容分析等,根据分析的结果执行抓拍动作。在这种情况下,需要保证抓拍动作能够有效的执行,则需要高速的完成图像内容分析,可根据***中的个别任务的完成速度确定状态阈值为第二阈值。
在可能的实现方式中,根据已调度任务的任务类型所确定的状态阈值可以为数量阈值。比如,在当前时刻无法获得已调度任务的资源使用状态信息,或者数量阈值与上述的第一阈值相结合,或者数量阈值与第二阈值相结合的方式,确定不同类型的任务所对应的数量阈值。该数量阈值可以通过预先所需要测定类型的任务,然后通过逐个增加的方式,确定第二处理核所对应的数量阈值。比如,对于任务A和B,所对应的数量阈值可以包括3A+1B,以及2A+3B等。
S503,将所述资源使用状态信息与所述状态阈值进行比较。
其中,本申请实施例中的状态阈值,可以为第二处理核处于最佳任务处理效率时所对应的状态信息,或者为第二处理核处于最佳任务处理速度时所对应的状态信息,或者可以为预先设定的任务的数量,即数量阈值。所述状态阈值可以预先通过实验数据统计确定。或者,该状态阈值也可以为当增加一个任务,处理效率开始降低时所对应的状态信息,该状态阈值可以在多核处理器运行过程中来确定。当然,也可以通过多核处理器中的第一处理核所提供的设置接口,设定或调整该状态阈值。
当资源使用状态信息为第二处理核中的已调度任务的数量时,可以将该已调度任务类型所对应的数量,与预设的数量阈值进行比较。当任务类型所对应的任务数量,高于或等于预设的数量阈值,则可以由任务控制模块生成阻塞指令,阻断调度任务的分配。
比如,当所述数量阈值包括任务A和B,且数量阈值包括第一个:3+1(3个任务A和1个任务B),以及第二个:2+3(2个任务A和3个任务B)。如果当前的已调度任务为A和B,且任务A数量为2,任务B数量为2。与第二个数量阈值相比,任务B的数量较小,可以继续增加任务B,使得***能够更有效的运行。
当已调度任务的任务类型所对应的状态阈值为第一阈值,且资源使用状态信息为第二处理核中不同的资源类型的使用率时,在进行比较之前,可以根据待调度任务所对应的资源类型,确定需要比较的状态阈值。比如,当资源类型包括第一类型或第二类型时,所对应的状态阈值分别为第一资源阈值或第二资源阈值。可以将第二处理核中的已调度任务的资源类型的使用率与预设的该类型的资源使用率阈值进行比较,根据比较结果,确定任务控制模块是否生成阻塞指令。
当资源使用状态信息为第二处理核中的已调度任务的实时性要求或延时要求高于预设的延时阈值时,可以将已调度任务中的最高延时要求,作为第二阈值。将第二处理核当前的延时信息与第二阈值进行比较,确定是否需要由任务控制模块生成阻塞指令。
其中,第二处理核中的延时信息,可以通过平滑滤波处理的方式获得。比如,可以获取第二处理核在预定时长内的延时信息,将该预定时长内的延时信息进行平滑延时,将平滑处理后的延时信息作为所述资源使用状态信息,从而有效的避免噪声所带来的干扰。其中,平滑处理可以为求平均的方式,或者噪声过滤的方式进行处理。
在可能的实现方式中,延时阈值可以通过多个已调度任务的延时要求确定。比如,可以选择最短的延时要求作为延时阈值,从而满足所有已调度任务的实效要求。
S504,当所述资源使用状态信息超过所述状态阈值时,所述第一处理核的任务控制模块生成阻塞指令,阻断所述待调度任务的分配。
当第二处理核的资源使用状态超过所设定的状态阈值,则表示第二处理核当前的运行状态,未能有效的适应已调度任务的运行要求。为了保持第二处理核能够有效的适应已调度任务的运行要求,可以使第一处理核中的任务调度模块生成阻塞指令,通过阻塞指令阻断待调度任务分配至第二处理核,即通过任务控制模块对待调度任务进行反压控制。
具体的,当资源使用状态信息为第二处理核中的已调度任务的类型和数量时,如果第二处理核中的已调度任务的任务类型所对应的数量大于任务类型所对应的数量阈值,则可以使第一处理核中的任务控制模块生成阻塞指令,阻断所述待调度任务的分配,停止向第二处理核下发任务。如果第二处理核中的已调度任务的任务类型所对应的数量小于预设的数量阈值,则可以使第一处理核向第二处理核下发任务,使第二处理核保持高效任务处理的任务数量。
当资源使用状态信息为第二处理核中,待调度任务的资源类型的使用率时,则将第二处理核中对应的资源类型的使用率与预先设定的使用率阈值,即第一阈值进行比较。比如,当待调度任务的资源类型为算力类型时,则获取第二处理核中的算力使用率,即第一资源阈值,如果算力使用率大于预定的算力使用率阈值,则可以使第一处理核中的任务控制模块生成阻塞指令,阻断待调度任务的分配,停止向第二处理核下发任务。
同样,当待调度任务的资源类型为带宽类型时,则获取第二处理核中的带宽使用率,如果带宽使用率大于预定的带宽使用率阈值,即第二资源阈值,则可以使第一处理核中的任务控制模块生成阻塞指令,阻断待调度任务的分配,停止向第二处理核下发任务。
在本申请的一种实现方式中,还可以获取待调度任务的资源占用信息,如果所述资源使用状态信息未超过所述状态阈值,且二者的差值所对应的资源信息,大于所述待调度任务所对应的资源占用信息时,所述第一处理核将所述待调度任务分配至第二处理核。比如,待调度任务Q的资源类型为算力类型,待调度任务Q的资源占用信息为a,而第二处理核当前的算力资源使用率与预定的算力使用率阈值之间的差值所对应的资源占用信息为b,如果b大于a,则第一处理核允许该待调度任务Q下发至第二处理核。
另外,当状态阈值为速度优先状态所对应的第二阈值时,该第二阈值可以为已调度任务中的最高的延时要求。当已调度任务的延时高于或等于该第二阈值时,则由第一处理核的任务控制模块生成阻塞指令,阻断待分配任务的分配。在可能的实现方式中,第二阈值也可以通过已调度任务的种类所对应的数量来表示。
值得注意的是,本申请实施例中所述的资源使用状态信息的类型,可以任选其一执行,也可以选择效率优先的第一阈值和速度优先的第二阈值,与数量阈值组合调度。其中,效率优先的第一阈值与数量阈值组合时,可以通过效率优先时所确定的数量阈值,即确定不同种类的任务所对应的数量,通过数量阈值的形式来实现效率优选。速度优先的第二阈值与数量阈值组合时,可以通过速度优先时所确定的数量阈值,即确定的不同种类的任务所对应的数量。通过数量阈值的形式来实现速度优先。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图6为本申请实施例提供的一种多核处理器的任务调度装置的结构示意图,该装置包括:
所述第一处理核包括任务控制模块,所述装置包括:
任务获取单元601,用于获取所述第二处理核中处理的所述已调度任务的任务类型,以及所述已调度任务的资源使用状态信息;
状态阈值确定单元602,用于根据所述已调度任务的任务类型,确定第二处理核所对应的状态阈值;
比较单元603,用于将所述资源使用状态信息与所述状态阈值进行比较;
阻断单元604,用于当所述资源使用状态信息超过所述状态阈值时,所述第一处理核的任务控制模块生成阻塞指令,阻断所述待调度任务的分配。。
图6所示的多核处理器的任务调度装置,与图4所示的多核处理器的任务调度方法对应。
另外,本申请还提供了一种多核处理器,在多核处理器中包括存储器、处理核以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理核执行所述计算机程序时实现图4所示的任务调度方法的步骤。
图7是本申请一实施例提供的多核处理器的示意图。如图7所示,该实施例的多核处理器7包括:处理核70、存储器71以及存储在所述存储器71中并可在所述处理核70上运行的计算机程序72,例如多核处理器的任务调度程序。所述处理核70执行所述计算机程序72时实现上述各个多核处理器的任务调度方法实施例中的步骤。或者,所述处理核70执行所述计算机程序72时实现上述各装置实施例中各模块/单元的功能。
示例性的,所述计算机程序72可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器71中,并由所述处理核70执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述多核处理器7中的执行过程。
所述多核处理器可包括,但不仅限于,处理核70、存储器71。本领域技术人员可以理解,图7仅仅是多核处理器7的示例,并不构成对多核处理器7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述多核处理器还可以包括输入输出设备、网络接入设备、总线等。
所称多核处理核7可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述处理核70可以包括第一处理核和第二处理核,通过第一处理核向第二处理核分发任务。
所述存储器71可以是所述多核处理器7的内部存储单元,例如多核处理器7的硬盘或内存。所述存储器71也可以是所述多核处理器7的外部存储设备,例如所述多核处理器7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述多核处理器7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述多核处理器所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例提供了一种板卡,该板卡上包括上述的多核处理器。本申请实施例还提供了一种电子设备,该电子设备中包括上述的板卡。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (13)
1.一种多核处理器的任务调度方法,其特征在于,所述多核处理器包括第一处理核和第二处理核,所述第一处理核中存储有待调度任务,所述第二处理核存储有已调度任务,所述第一处理核包括任务控制模块,所述方法包括:
获取所述第二处理核中处理的所述已调度任务的任务类型,以及所述已调度任务的资源使用状态信息;
根据所述已调度任务的任务类型,确定第二处理核所对应的状态阈值;
将所述资源使用状态信息与所述状态阈值进行比较;
当所述资源使用状态信息超过所述状态阈值时,所述第一处理核的任务控制模块生成阻塞指令,阻断所述待调度任务的分配。
2.根据权利要求1所述的方法,其特征在于,根据所述已调度任务的任务类型,确定第二处理核所对应的状态阈值,包括:
获取所述已调度任务的任务类型所对应的延时要求;
如果延时要求最高的已调度任务的延时要求低于预设的延时阈值,确定所述第二处理核对应的状态阈值为使用率优先状态所对应的第一阈值;
如果延时要求最高的已调度任务的延时要求高于或等于预设的延时阈值,确定所述第二处理核对应的状态阈值为速度优先状态所对应的第二阈值。
3.根据权利要求2所述的方法,其特征在于,所述已调度任务的资源使用状态信息包括第一资源使用状态信息和第二资源使用状态信息,所述第一阈值包括第一资源阈值和第二资源阈值,所述状态阈值为第一阈值时,当所述资源使用状态信息超过所述状态阈值时,所述第一处理核的任务控制模块生成阻塞指令,阻断所述待调度任务的分配,包括:
如果所述第一资源使用状态信息超过所述第一资源阈值,所述第一处理核的任务控制模块生成所述第一类型的待调度任务的阻塞指令,阻断第一类型的待调度任务的分配;
如果所述第二资源使用状态信息超过所述第二资源阈值,所述第一处理核的任务控制模块生成所述第二类型的待调度任务的阻塞指令,阻断第二类型的待调度任务的分配。
4.根据权利要求3所述的方法,其特征在于,所述第一资源使用状态信息为第二处理核的算力资源使用率,所述第二资源使用状态信息为第二处理核的带宽资源使用率。
5.根据权利要求2任一项所述的方法,其特征在于,所述状态阈值为第二阈值时,当所述资源使用状态信息超过所述状态阈值时,所述第一处理核的任务控制模块生成阻塞指令,阻断所述待调度任务的分配,包括:
当所述第二处理核处理中处理所述已调度任务所产生的延时信息大于或等于预设的第二阈值时,所述第一处理核的任务控制模块生成所述待调度任务的阻塞指令,阻断所述待调度任务的分配。
6.根据权利要求5所述的方法,其特征在于,获取所述第二处理核中处理的所述已调度任务的资源使用状态信息,包括:
获取第二处理核处理的任务在预定时长内的延时信息;
对所述预定时长内的延时信息进行平滑处理,将平滑处理后的延时信息作为所述资源使用状态信息。
7.根据权利要求1-6任一项所述的方法,其特征在于,在将所述资源使用状态信息与状态阈值进行比较之前,所述方法还包括:
获取所述待调度任务所对应的资源占用信息;
在将所述资源使用状态信息与状态阈值进行比较之后,所述方法还包括:
如果所述资源使用状态信息未超过所述状态阈值,且二者的差值所对应的资源信息,大于所述待调度任务所对应的资源占用信息时,所述第一处理核将所述待调度任务分配至第二处理核。
8.根据权利要求1所述的方法,其特征在于,所述资源使用状态信息为已调度任务的种类和数量,根据所述已调度任务的任务类型,确定第二处理核所对应的状态阈值,包括:
根据预先确定的任务类型、任务数量与数量阈值的对应关系,确定已调度任务所对应的数量阈值;
当所述资源使用状态信息超过所述状态阈值时,所述第一处理核的任务控制模块生成阻塞指令,阻断所述待调度任务的分配,包括;
当所述第二处理核中的已调度任务的数量大于或等于所述数量阈值,所述第一处理核的任务控制模块生成阻塞指令,阻断所述待调度任务的分配。
9.一种多核处理器的任务调度装置,其特征在于,所述多核处理器包括第一处理核和第二处理核,所述第一处理核中存储有待调度任务,所述第二处理核存储有已调度任务,所述第一处理核包括任务控制模块,所述装置包括:
任务获取单元,用于获取所述第二处理核中处理的所述已调度任务的任务类型,以及所述已调度任务的资源使用状态信息;
状态阈值确定单元,用于根据所述已调度任务的任务类型,确定第二处理核所对应的状态阈值;
比较单元,用于将所述资源使用状态信息与所述状态阈值进行比较;
阻断单元,用于当所述资源使用状态信息超过所述状态阈值时,所述第一处理核的任务控制模块生成阻塞指令,阻断所述待调度任务的分配。
10.一种多核处理器,包括存储器、处理核以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理核执行所述计算机程序时实现如权利要求1至8任一项所述方法的步骤。
11.一种板卡,其特征在于,所述板卡包括如权利要求10所述的多核处理器。
12.一种电子设备,其特征在于,所述电子设备包括如权利要求11所述的板卡。
13.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011063362.7A CN112214299B (zh) | 2020-09-30 | 多核处理器及其任务调度方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011063362.7A CN112214299B (zh) | 2020-09-30 | 多核处理器及其任务调度方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112214299A true CN112214299A (zh) | 2021-01-12 |
CN112214299B CN112214299B (zh) | 2024-07-26 |
Family
ID=
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806049A (zh) * | 2021-09-17 | 2021-12-17 | 金蝶软件(中国)有限公司 | 任务排队方法、装置、计算机设备和存储介质 |
CN116521234A (zh) * | 2023-06-09 | 2023-08-01 | 芯动微电子科技(珠海)有限公司 | 一种处理器管线指令轮询调度的方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145461A1 (en) * | 2008-08-19 | 2011-06-16 | Zte Corporation | Method and device for balancing interrupt load of multicore processor |
CN107621973A (zh) * | 2016-07-13 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 一种跨集群的任务调度方法及装置 |
CN109343941A (zh) * | 2018-08-14 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 任务处理方法、装置、电子设备及计算机可读存储介质 |
CN110995614A (zh) * | 2019-11-05 | 2020-04-10 | 华为技术有限公司 | 一种算力资源分配的方法及装置 |
CN111163018A (zh) * | 2019-12-02 | 2020-05-15 | 华为技术有限公司 | 网络设备及其降低传输时延的方法 |
CN111190739A (zh) * | 2019-12-31 | 2020-05-22 | 西安翔腾微电子科技有限公司 | 一种资源分配方法、装置、电子设备及存储介质 |
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145461A1 (en) * | 2008-08-19 | 2011-06-16 | Zte Corporation | Method and device for balancing interrupt load of multicore processor |
CN107621973A (zh) * | 2016-07-13 | 2018-01-23 | 阿里巴巴集团控股有限公司 | 一种跨集群的任务调度方法及装置 |
CN109343941A (zh) * | 2018-08-14 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 任务处理方法、装置、电子设备及计算机可读存储介质 |
CN110995614A (zh) * | 2019-11-05 | 2020-04-10 | 华为技术有限公司 | 一种算力资源分配的方法及装置 |
CN111163018A (zh) * | 2019-12-02 | 2020-05-15 | 华为技术有限公司 | 网络设备及其降低传输时延的方法 |
CN111190739A (zh) * | 2019-12-31 | 2020-05-22 | 西安翔腾微电子科技有限公司 | 一种资源分配方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
李建刚: "基于异构多核处理器的动态任务调度策略研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》, no. 2018, 15 June 2018 (2018-06-15), pages 138 - 22 * |
马晓慧;陈娟;: "一种基于数据划分和任务映射的并行调度算法", 现代计算机(专业版), no. 14, pages 7 - 10 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806049A (zh) * | 2021-09-17 | 2021-12-17 | 金蝶软件(中国)有限公司 | 任务排队方法、装置、计算机设备和存储介质 |
CN116521234A (zh) * | 2023-06-09 | 2023-08-01 | 芯动微电子科技(珠海)有限公司 | 一种处理器管线指令轮询调度的方法和装置 |
CN116521234B (zh) * | 2023-06-09 | 2023-12-01 | 芯动微电子科技(珠海)有限公司 | 一种处理器管线指令轮询调度的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10445850B2 (en) | Technologies for offloading network packet processing to a GPU | |
CN109697122B (zh) | 任务处理方法、设备及计算机存储介质 | |
WO2022068697A1 (zh) | 任务调度方法及装置 | |
US9973512B2 (en) | Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time | |
CN104580396A (zh) | 一种任务调度方法、节点及*** | |
KR20080041047A (ko) | 멀티 코어 프로세서 시스템에서 로드 밸런싱을 위한 장치및 방법 | |
WO2015101091A1 (zh) | 一种分布式资源调度方法及装置 | |
US9910704B1 (en) | Run time task scheduling based on metrics calculated by micro code engine in a socket | |
US9471387B2 (en) | Scheduling in job execution | |
Dimopoulos et al. | Justice: A deadline-aware, fair-share resource allocator for implementing multi-analytics | |
WO2014114072A1 (zh) | 虚拟化平台下i/o通道的调整方法和调整装置 | |
US20240202024A1 (en) | Thread processing methods, scheduling component, monitoring component, server, and storage medium | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
CN105404554B (zh) | 用于Storm流计算框架的方法和装置 | |
US11061724B2 (en) | Programmable hardware scheduler for digital processing systems | |
US11113101B2 (en) | Method and apparatus for scheduling arbitration among a plurality of service requestors | |
US10979359B1 (en) | Polling resource management system | |
CN112214299B (zh) | 多核处理器及其任务调度方法和装置 | |
CN112214299A (zh) | 多核处理器及其任务调度方法和装置 | |
US10713089B2 (en) | Method and apparatus for load balancing of jobs scheduled for processing | |
CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 | |
CN114661415A (zh) | 调度方法及计算机*** | |
CN112468414B (zh) | 一种云计算多级调度方法、***及存储介质 | |
CN115269131A (zh) | 一种任务调度方法及装置 | |
CN109062707B (zh) | 电子装置及其限制进程间通信的方法、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |