CN109144691B - 一种面向多核处理器的任务调度分配方法 - Google Patents
一种面向多核处理器的任务调度分配方法 Download PDFInfo
- Publication number
- CN109144691B CN109144691B CN201810776768.6A CN201810776768A CN109144691B CN 109144691 B CN109144691 B CN 109144691B CN 201810776768 A CN201810776768 A CN 201810776768A CN 109144691 B CN109144691 B CN 109144691B
- Authority
- CN
- China
- Prior art keywords
- task
- core
- core processor
- cores
- scheduling
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及处理器任务分配领域,具体涉及一种面向多核处理器的任务调度分配方法。当任务到达任务队列时,当前多核处理器的所有可利用核转换为分发状态,从任务队列领取任务;领取任务后,执行一种任务调度选择算法,选择一个可调度核;将领取的任务放入被选择的可调度核所对应的任务队列中;当任务到达任务队列时,当前多核处理器的所有可利用核转换为计算状态,从任务队列中取任务并进行计算。本发明可使多核处理器所有核的利用率最大程度的均衡,而没有调度核和计算核能力的不均衡带来的浪费;通过使多核处理器所有核心运行着两个模式,调度模式与计算模式,提高任务调度成功率、减少自旋损失。
Description
技术领域
本发明涉及处理器任务分配领域,具体涉及一种面向多核处理器的任务调度分配方法。
背景技术
由于现有的多核处理器调度分配模型一般分为两种:第一种为全局调度,即整个系统中只维护一个全局的任务队列,动态的分配任务,并且允许任务在核间进行迁移。第二种为局部调度,系统会为每一个核维护一个局部任务队列,一般来说,局部调度中的任务就不允许进行任务的迁移。对于全局调度来,一般多个计算核争抢任务队列中的任务,更容易做到负载均衡,使各核心满载。但对于支持全局调度的调度器来说,计算开销明显过大,并且任务频繁的迁移会导致Cache命中的效率降低。对于局部调度来说,负载均衡是一个严重的问题,如何改进均衡策略是局部调度的一个研究重点。
目前使用最多的模型是将两种方式结合起来,使用一个核专门作为调度核,其余的核作为计算核,整个系统不但有全局任务队列,每个计算核还有自己的任务队列。任务到达系统中的时候,先进入全局任务队列,由调度核选择任务调度到一个计算核的任务队列上去。但是这种模式也存在一个问题,就是调度核利用率与计算核利用率的不均等,容易产生其中一方空闲,计算资源却无法得到利用的情况。
集中式调度从本质上来说将所有核分为两部分,调度核与计算核。调度核只负责调度,计算核只负责对任务进行处理。在之前使用集中式调度模型的算法中,研究点都是对于任务如何选择核进行调度,对核的利用率都是只对计算核进行计算,没有考虑过调度核的处理能力的问题。但在实验研究中,会有这样的事情发生:调度核与计算核的计算能力并不能够均衡。具体体现的现象就是任务队列中的任务不断在堆积。如果调度核计算能力不足,那么全局任务队列会不断堆积任务导致太多的任务无法处理,而任务核又无法进行任务的处理;如果计算核计算能力不足,那么会导致计算能力不足的核对应的任务队列积压任务,而全局任务队列没有任务,调度核处于空闲当中。这两种情况都会导致任务调度成功率的下降、自旋损失的增加。
本发明根据这两个问题对现有任务调度分配方法进行改进。
发明内容
本发明的目的在于提供具有更高的性能并且可以提高多核处理器整体的处理能力的一种面向多核处理器的任务调度分配方法。
本发明的目的是这样实现的:
本发明实施例提供一种面向多核处理器的任务调度分配方法,包括:
步骤一:定义多核处理器的核拥有两种状态,分别为:分发状态与计算状态;
步骤二:当任务到达主任务队列时,执行转换命令,当前多核处理器的所有可利用核转换为分发状态,多核处理器的所有可利用核从任务队列领取任务;
步骤三:多核处理器的所有可利用核领取任务后,执行一种任务调度选择算法,选择一个可调度核;
步骤四:将多核处理器的所有可利用核领取的任务放入被选择的可调度核所对应的任务队列中;
步骤五:当任务到达被选择的可调度核的任务队列时,执行转换命令,当前多核处理器的所有可利用核转换为计算状态,多核处理器的所有可利用核从任务队列中取任务并进行计算;
步骤六:循环执行步骤二~步骤五,直至所有任务完成,运算结束。
所述步骤一,包括:
定义多核处理器的核拥有两种状态,分别为:分发状态与计算状态;
其中,本方法取消核的分类,加入运行模式概念,处理器的所有核心均运行两个模式,调度模式与计算模式,在调度模式下进行调度,在计算模式下对任务进行处理。
所述步骤二~步骤五,包括:
当任务到达主任务队列时,执行转换命令,当前多核处理器的所有可利用核转换为分发状态,多核处理器的所有可利用核从任务队列领取任务;多核处理器的所有可利用核领取任务后,执行一种任务调度选择算法,选择一个可调度核;将多核处理器的所有可利用核领取的任务放入被选择的可调度核所对应的任务队列中;当任务到达被选择的可调度核的任务队列时,执行转换命令,当前多核处理器的所有可利用核转换为计算状态,多核处理器的所有可利用核从任务队列中取任务并进行计算;
其中,所述执行顺序调动多核处理器全部核的处理能力,处理核在没有任务处理时取全局队列中的任务进行调度,没有任务调度时去局部任务队列的任务进行处理,所有核的利用率最大程度的均衡。
本发明的有益效果在于:
1.本发明使多核处理器所有核的利用率最大程度的均衡,而没有调度核和计算核能力的不均衡带来的浪费;
2.通过使多核处理器所有核心运行着两个模式,调度模式与计算模式,提高任务调度成功率、减少自旋损失;
3.通过本发明使调度核利用率与计算核利用率达到均等,不会产生其中一方空闲,计算资源却无法得到利用的情况;
附图说明
图1为一种面向多核处理器的任务调度分配方法的任务流动趋势图;
图2为本发明与现有的调度模型核利用率对比图;
具体实施方式
下面结合附图对本发明做进一步描述:
图1为一种一种面向多核处理器的任务调度分配方法的任务流动趋势图;
图2为本发明与现有的调度模型核利用率对比图;
本发明的技术方案是这样实现的:
1.附图1是本发明的任务流动趋势图,该图表明了任务的流动趋势。
2.当任务到达任务队列的时候,处于调度模式的核开始收取任务
3.收取任务后,对任务做正常的调度选择,并将结果记录下来。
4.而后将当前处理的任务发送到记录的核对应的任务队列上去,无论此时核处于什么状态。
5.相应的核若处于计算状态则直接从任务队列中收包,若处于调度状态,则在当前一次调度完成后查看局部队列是否有任务,如果有则立刻转换为计算状态来运行当前任务队列中的任务。
Claims (3)
1.一种面向多核处理器的任务调度分配方法,其特征在于,包括:
步骤一:定义多核处理器的核拥有两种状态,分别为:分发状态与计算状态;
步骤二:当任务到达主任务队列时,执行转换命令,当前多核处理器的所有可利用核转换为分发状态,多核处理器的所有可利用核从任务队列领取任务;
步骤三:多核处理器的所有可利用核领取任务后,执行一种任务调度选择算法,选择一个可调度核;
步骤四:将多核处理器的所有可利用核领取的任务放入被选择的可调度核所对应的任务队列中;
步骤五:当任务到达被选择的可调度核的任务队列时,执行转换命令,当前多核处理器的所有可利用核转换为计算状态,多核处理器的所有可利用核从任务队列中取任务并进行计算;
步骤六:循环执行步骤二~步骤五,直至所有任务完成,运算结束。
2.根据权利要求1所述的一种面向多核处理器的任务调度分配方法,其特征在于:所述步骤一,包括:
定义多核处理器的核拥有两种状态,分别为:分发状态与计算状态;
其中,本方法取消核的分类,加入运行模式概念,处理器的所有核心均运行两个模式,调度模式与计算模式,在调度模式下进行调度,在计算模式下对任务进行处理。
3.根据权利要求1所述的一种面向多核处理器的任务调度分配方法,其特征在于:所述步骤二~步骤五,包括:
当任务到达主任务队列时,执行转换命令,当前多核处理器的所有可利用核转换为分发状态,多核处理器的所有可利用核从任务队列领取任务;多核处理器的所有可利用核领取任务后,执行一种任务调度选择算法,选择一个可调度核;将多核处理器的所有可利用核领取的任务放入被选择的可调度核所对应的任务队列中;当任务到达被选择的可调度核的任务队列时,执行转换命令,当前多核处理器的所有可利用核转换为计算状态,多核处理器的所有可利用核从任务队列中取任务并进行计算;
其中,执行顺序调动多核处理器全部核的处理能力,处理核在没有任务处理时取全局队列中的任务进行调度,没有任务调度时去局部任务队列的任务进行处理,所有核的利用率最大程度的均衡。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810776768.6A CN109144691B (zh) | 2018-07-13 | 2018-07-13 | 一种面向多核处理器的任务调度分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810776768.6A CN109144691B (zh) | 2018-07-13 | 2018-07-13 | 一种面向多核处理器的任务调度分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109144691A CN109144691A (zh) | 2019-01-04 |
CN109144691B true CN109144691B (zh) | 2021-08-20 |
Family
ID=64800466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810776768.6A Active CN109144691B (zh) | 2018-07-13 | 2018-07-13 | 一种面向多核处理器的任务调度分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144691B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413397B (zh) * | 2019-07-31 | 2021-09-10 | 北京智行者科技有限公司 | 一种面向自动驾驶的任务调度方法 |
CN110879746B (zh) * | 2019-11-11 | 2023-03-31 | 西北工业大学 | 基于核间迁移的高安全关键任务调度方法 |
CN116185582B (zh) * | 2022-12-29 | 2024-03-01 | 国科础石(重庆)软件有限公司 | 多核调度的方法、装置、车辆、电子设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100070556A (ko) * | 2008-12-18 | 2010-06-28 | 삼성전자주식회사 | 실시간 스케쥴링 방법 및 이를 이용한 중앙처리장치 |
CN102779075A (zh) * | 2012-06-28 | 2012-11-14 | 华为技术有限公司 | 一种在多处理器核系统中进行调度的方法、装置及系统 |
CN105045658A (zh) * | 2015-07-02 | 2015-11-11 | 西安电子科技大学 | 一种利用多核嵌入式dsp实现动态任务调度分发的方法 |
CN105260237A (zh) * | 2015-09-29 | 2016-01-20 | 中南大学 | 异构多核平台的任务调度系统及其调度方法 |
CN106371914A (zh) * | 2015-07-23 | 2017-02-01 | 中国科学院声学研究所 | 一种基于负载强度的多核任务调度方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011059777A (ja) * | 2009-09-07 | 2011-03-24 | Toshiba Corp | タスクスケジューリング方法及びマルチコアシステム |
-
2018
- 2018-07-13 CN CN201810776768.6A patent/CN109144691B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100070556A (ko) * | 2008-12-18 | 2010-06-28 | 삼성전자주식회사 | 실시간 스케쥴링 방법 및 이를 이용한 중앙처리장치 |
CN102779075A (zh) * | 2012-06-28 | 2012-11-14 | 华为技术有限公司 | 一种在多处理器核系统中进行调度的方法、装置及系统 |
CN105045658A (zh) * | 2015-07-02 | 2015-11-11 | 西安电子科技大学 | 一种利用多核嵌入式dsp实现动态任务调度分发的方法 |
CN106371914A (zh) * | 2015-07-23 | 2017-02-01 | 中国科学院声学研究所 | 一种基于负载强度的多核任务调度方法及系统 |
CN105260237A (zh) * | 2015-09-29 | 2016-01-20 | 中南大学 | 异构多核平台的任务调度系统及其调度方法 |
Non-Patent Citations (2)
Title |
---|
Dynamic scheduler for multi-core systems;Vaidya等;《International Conference on Software Technology and Engineering》;20101231;全文 * |
一种新的实时多处理器系统的动态调度算法;乔颖等;《软件学报》;20021231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109144691A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016082370A1 (zh) | 一种分布式节点组内任务调度方法及系统 | |
CN109144691B (zh) | 一种面向多核处理器的任务调度分配方法 | |
CN109861850B (zh) | 一种基于sla的无状态云工作流负载均衡调度的方法 | |
CN104572305A (zh) | 均衡负载的集群渲染任务调度方法 | |
JP2012522320A5 (zh) | ||
CN107122233B (zh) | 一种面向tsn业务的多vcpu自适应实时调度方法 | |
US20150121387A1 (en) | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium | |
CN102779075A (zh) | 一种在多处理器核系统中进行调度的方法、装置及系统 | |
CN102043675A (zh) | 一种基于任务处理请求任务量大小的线程池管理方法 | |
CN104598426A (zh) | 用于异构多核处理器系统的任务调度方法 | |
CN114780227B (zh) | 一种基于芯粒化网络处理器架构的任务调度映射方法及系统 | |
CN102681895A (zh) | 一种动态自迁移云服务方法 | |
CN104866379A (zh) | 一种多核处理器调度方法、装置及终端 | |
CN104199739A (zh) | 一种基于负载均衡的推测式Hadoop调度方法 | |
CN104461673B (zh) | 一种虚拟机迁移判定方法及装置 | |
CN108446179A (zh) | 基于负载均衡机制的权重优先Task任务调度方法 | |
CN113672391A (zh) | 一种基于Kubernetes的并行计算任务调度方法与系统 | |
CN106775975B (zh) | 进程调度方法及装置 | |
CN103677959B (zh) | 一种基于组播的虚拟机集群迁移方法及系统 | |
CN112181689A (zh) | 一种在云端下进行gpu内核程序高效率调度的运行时系统 | |
CN105955816A (zh) | 一种事件调度方法及装置 | |
CN109298919B (zh) | 面向高利用率任务集合的软实时系统的多核调度方法 | |
CN112506640B (zh) | 一种用于加密运算芯片的多处理器架构及调配方法 | |
Sarvabhatla et al. | A network aware energy efficient offloading algorithm for mobile cloud computing over 5g network | |
US20120042322A1 (en) | Hybrid Program Balancing |
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 | ||
GR01 | Patent grant |