CN109144693B - 一种功率自适应任务调度方法及*** - Google Patents
一种功率自适应任务调度方法及*** Download PDFInfo
- Publication number
- CN109144693B CN109144693B CN201810882835.2A CN201810882835A CN109144693B CN 109144693 B CN109144693 B CN 109144693B CN 201810882835 A CN201810882835 A CN 201810882835A CN 109144693 B CN109144693 B CN 109144693B
- Authority
- CN
- China
- Prior art keywords
- processor
- state
- scheduling
- subtasks
- task
- 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
-
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Supply And Distribution Of Alternating Current (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种功率自适应任务调度方法及***。该方法包括:获取当前的任务信息;根据大数据编程模型MapReduce对所述任务信息进行划分和统计,得到多个可并行运行的子任务;获取输出功率的变动状态以及任务负载状态,得到状态信息;根据所述状态信息调整处理器的核数及类型;根据调整核数及类型后的处理器,将所述子任务调度到各工作者线程。本方法或***能够解决目前能量收集***在任务调度过程中没有考虑处理器工作功率需求和能量收集单元输出功率的不确定性造成的任务执行中断以及效能低等问题。
Description
技术领域
本发明涉及任务调度领域,特别是涉及一种功率自适应任务调度方法及***。
背景技术
近年来,物联网技术得到了突飞猛进的发展,高性能、低功耗已成为物联网设备的重要发展趋势。高性能的需求意味着***能耗的提升,而目前电池的发展速度已经远远落后于能耗需求的增长,并且电池供电依然存在体积重量大和维护费用高的问题。采用新型能量收集技术将自然界广泛存在的各种环境能源(例如阳光、风、潮汐和振动等)转化为电能并存储和利用是解决能源问题的一种有效途径。然而,由于外界环境资源具有间歇性、随机性及不确定性等特点,能量收集***输出功率波动,因此,物联网节点需要通过合理利用输出功率,并根据不同负载的功率需求进行合理的任务调度,使得功率利用效率最优化。
现有的结合任务调度研究能量收集***的方法,主要集中利用功率调节技术在能量约束下最大化***性能,或者是在能量收集单元输出功率约束下最小化***能耗。例如,使用动态调频调压,来降低处理器能耗。目前,在能耗管理硬件层面,出现了不少功率调节技术,如动态电压频率调整(DVFS)可通过调节电压和时钟频率降低***功耗;CPU热插拔(CPU Hotplug)技术通过在线增加或减少处理器核数调整***处理器功耗。相对硬件层面对能耗管理的快速发展,能耗管理软件技术研究相对滞后,这些技术应用在能量收集***中需要软硬件相互配合才能发挥最大效率,并且在没有足够的供电功率的情况下任务根本不能执行。因此,能量收集***必须能够动态地依据处理器工作功率需求和能量收集单元输出功率来管理和调度任务。
发明内容
本发明的目的是提供一种功率自适应任务调度方法及***,用以解决目前能量收集***在任务调度过程中没有考虑处理器工作功率需求和能量收集单元输出功率的不确定性造成的任务执行中断以及效能低等问题。
为实现上述目的,本发明提供了如下方案:
一种功率自适应任务调度方法,所述方法包括:
获取当前的任务信息;
根据大数据编程模型MapReduce对所述任务信息进行划分和统计,得到多个可并行运行的子任务;
获取输出功率的变动状态以及任务负载状态,得到状态信息;
根据所述状态信息调整处理器的核数及类型;
根据调整核数及类型后的处理器,将所述子任务调度到各工作者线程。
可选的,所述根据大数据编程模型MapReduce对所述任务信息进行划分和统计,得到多个可并行运行的子任务,具体包括:
通过Map函数将所述任务信息进行划分;
通过Reduce函数将划分后的任务信息进行统计,得到多个可并行运行的子任务。
可选的,所述根据所述状态信息调整处理器的核数及类型,具体包括:
获取处理器的工作功率需求;
根据所述工作功率需求以及所述状态信息,利用CPU热插拔技术调整处理器的核数及类型。
可选的,所述根据调整后的处理器的核数及类型,将所述子任务调度到各工作者线程,具体包括:
获取调整核数及类型后的处理器的状态,所述状态包括在线状态和离线状态;
获取调整核数及类型后的处理器的变动情况,所述变动情况包括处理器热移除以及处理器热***;
根据所述处理器的状态以及变动情况,将所述子任务调度到各工作者线程。
可选的,以先入先出的方式依次将所述子任务调度到各工作者线程。
一种功率自适应任务调度***,所述***包括:
任务信息获取模块,用于获取当前的任务信息;
划分和统计模块,用于根据大数据编程模型MapReduce对所述任务信息进行划分和统计,得到多个可并行运行的子任务;
状态信息获取模块,用于获取输出功率的变动状态以及任务负载状态,得到状态信息;
调整模块,用于根据所述状态信息调整处理器的核数及类型;
调度模块,用于根据调整核数及类型后的处理器,将所述子任务调度到各工作者线程。
可选的,所述划分和统计模块具体包括:
划分单元,用于通过Map函数将所述任务信息进行划分;
统计单元,用于通过Reduce函数将划分后的任务信息进行统计,得到多个可并行运行的子任务。
可选的,所述调整模块具体包括:
工作功率需求获取单元,用于获取处理器的工作功率需求;
调整单元,用于根据所述工作功率需求以及所述状态信息,利用CPU热插拔技术调整处理器的核数及类型。
可选的,所述调度模块具体包括:
状态获取单元,用于获取调整核数及类型后的处理器的状态,所述状态包括在线状态和离线状态;
变动情况获取单元,用于获取调整核数及类型后的处理器的变动情况,所述变动情况包括处理器热移除以及处理器热***;
调度单元,用于根据所述处理器的状态以及变动情况,将所述子任务调度到各工作者线程。
可选的,所述调度模块以先入先出的方式依次将所述子任务调度到各工作者线程。
与现有技术相比,本发明具有以下技术效果:本发明在输出功率变动的情况下,通过在线调整***处理器核数及类型,使***处理器工作功率要求适应能量收集单元输出功率的动态变化,并结合操作***任务迁移与线程亲和性管理工作者线程,利用phoenix调度策略将任务调度到工作者线程,从而避免输出功率不足以及输出功率过剩对***效能的不利影响。该方法适用于能量收集***能量收集输出功率波动的场合,并且效能明显优于传统调度方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例功率自适应任务调度方法的流程图;
图2为管理工作者线程示意图;
图3为本发明实施例自适应任务调度***的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,一种功率自适应任务调度方法包括以下步骤:
步骤101:获取当前的任务信息。
步骤102:根据大数据编程模型MapReduce对所述任务信息进行划分和统计,得到多个可并行运行的子任务。将整个数据处理过程归结为两个函数:Map和Reduce。Map负责将数据处理负载划分为多个可并行调度的任务,并将所有任务分块处理。Reduce负责将各个任务处理结果进行数据聚合。
步骤103:获取输出功率的变动状态以及任务负载状态,得到状态信息。
步骤104:根据所述状态信息调整处理器的核数及类型。
根据能量收集单元功率输出的变动情况自动调核。自动调核策略是按照最优匹配算法选择与能量收集单元输出功率最相匹配的处理器核数及类型,最终由OS提供CPU热插拔技术(CPU Hotplug)来实现。利用CPU热插拔技术将当前***工作的处理器核数及类型进行调整,并分别测试不同情况下***处理器工作功率,来分析处理器工作功率需求与***当前处理器核数以及类型之间的关系。功率自适应调核模块根据功率监测单元感知到输出功率,按照对处理器工作功率需求与***当前处理器核数以及类型之间关系的分析结果,对***当前处理器核数以及类型作出调整。
步骤105:根据调整核数及类型后的处理器,将所述子任务调度到各工作者线程。
如图2所示,利用多线程任务调度充分发挥多核处理器***的并行处理能力。根据当前处理器核数的变动情况,结合操作***进程迁移和线程亲和性管理工作者线程,并利用Phoenix调度策略将任务调度到工作者线程。根据当前处理器核在线情况,将处于在线状态的处理器核相应的工作者线程设置线程亲和性,将其绑定在该核上;另外,处于离线状态的处理器核相应的工作者线程不设置线程亲和性,并且休眠该线程。
根据当前处理器核的变动情况,结合操作***进程迁移和线程亲和性管理工作者线程,多线程任务调度基于以下规则进行调整:当某处理器核被热移除时,执行在处理器核上工作者线程将由OS迁移至其他在线处理器核上运行,以清空该工作者线程上正在执行的任务,然后休眠该工作者线程,使其不能够继续从任务队列中获取任务并执行;当某处理器核被热***时,则唤醒相应工作者线程,并设置线程亲和性绑定至该处理器核上。
任务调度器以先进先出的方式依次将任务调度到各个工作者线程。工作者线程任务执行完成后,无需等到所有工作者线程全部任务执行完成,任务调度器直接将新任务调度到该工作者线程。
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明在输出功率变动的情况下,通过在线调整***处理器核数及类型,使***处理器工作功率要求适应能量收集单元输出功率的动态变化,并结合操作***任务迁移与线程亲和性管理工作者线程,利用phoenix调度策略将任务调度到工作者线程,从而避免输出功率不足以及输出功率过剩对***效能的不利影响。该方法适用于能量收集***能量收集输出功率波动的场合,并且效能明显优于传统调度方法。
如图3所示,一种功率自适应任务调度***包括:
任务信息获取模块301,用于获取当前的任务信息。
划分和统计模块302,用于根据大数据编程模型MapReduce对所述任务信息进行划分和统计,得到多个可并行运行的子任务。
所述划分和统计模块302具体包括:
划分单元,用于通过Map函数将所述任务信息进行划分;
统计单元,用于通过Reduce函数将划分后的任务信息进行统计,得到多个可并行运行的子任务。
状态信息获取模块303,用于获取输出功率的变动状态以及任务负载状态,得到状态信息。
调整模块304,用于根据所述状态信息调整处理器的核数及类型。
所述调整模块304具体包括:
工作功率需求获取单元,用于获取处理器的工作功率需求;
调整单元,用于根据所述工作功率需求以及所述状态信息,利用CPU热插拔技术调整处理器的核数及类型。
调度模块305,用于根据调整核数及类型后的处理器,将所述子任务调度到各工作者线程。所述调度模块以先入先出的方式依次将所述子任务调度到各工作者线程。
所述调度模块305具体包括:
状态获取单元,用于获取调整核数及类型后的处理器的状态,所述状态包括在线状态和离线状态;
变动情况获取单元,用于获取调整核数及类型后的处理器的变动情况,所述变动情况包括处理器热移除以及处理器热***;
调度单元,用于根据所述处理器的状态以及变动情况,将所述子任务调度到各工作者线程。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种功率自适应任务调度方法,其特征在于,所述方法包括:
获取当前的任务信息;
根据大数据编程模型MapReduce对所述任务信息进行划分和统计,得到多个可并行运行的子任务;
获取能量收集单元输出功率的变动状态以及任务负载状态,得到状态信息;
根据所述状态信息调整处理器的核数及类型;
根据调整后的处理器的核数及类型,将所述子任务调度到各工作者线程;
所述根据所述状态信息调整处理器的核数及类型,具体包括:
获取处理器的工作功率需求;
根据所述工作功率需求以及所述状态信息,利用CPU热插拔技术调整处理器的核数及类型。
2.根据权利要求1所述的调度方法,其特征在于,所述根据大数据编程模型MapReduce对所述任务信息进行划分和统计,得到多个可并行运行的子任务,具体包括:
通过Map函数将所述任务信息进行划分;
通过Reduce函数将划分后的任务信息进行统计,得到多个可并行运行的子任务。
3.根据权利要求1所述的调度方法,其特征在于,所述根据调整后的处理器的核数及类型,将所述子任务调度到各工作者线程,具体包括:
获取调整核数及类型后的处理器的状态,所述状态包括在线状态和离线状态;
获取调整核数及类型后的处理器的变动情况,所述变动情况包括处理器热移除以及处理器热***;
根据所述处理器的状态以及变动情况,将所述子任务调度到各工作者线程。
4.根据权利要求1所述的调度方法,其特征在于,以先入先出的方式依次将所述子任务调度到各工作者线程。
5.一种功率自适应任务调度***,其特征在于,所述***包括:
任务信息获取模块,用于获取当前的任务信息;
划分和统计模块,用于根据大数据编程模型MapReduce对所述任务信息进行划分和统计,得到多个可并行运行的子任务;
状态信息获取模块,用于获取能量收集单元输出功率的变动状态以及任务负载状态,得到状态信息;
调整模块,用于根据所述状态信息调整处理器的核数及类型;
调度模块,用于根据调整后的处理器的核数及类型,将所述子任务调度到各工作者线程;
所述调整模块具体包括:
工作功率需求获取单元,用于获取处理器的工作功率需求;
调整单元,用于根据所述工作功率需求以及所述状态信息,利用CPU热插拔技术调整处理器的核数及类型。
6.根据权利要求5所述的调度***,其特征在于,所述划分和统计模块具体包括:
划分单元,用于通过Map函数将所述任务信息进行划分;
统计单元,用于通过Reduce函数将划分后的任务信息进行统计,得到多个可并行运行的子任务。
7.根据权利要求5所述的调度***,其特征在于,所述调度模块具体包括:
状态获取单元,用于获取调整核数及类型后的处理器的状态,所述状态包括在线状态和离线状态;
变动情况获取单元,用于获取调整核数及类型后的处理器的变动情况,所述变动情况包括处理器热移除以及处理器热***;
调度单元,用于根据所述处理器的状态以及变动情况,将所述子任务调度到各工作者线程。
8.根据权利要求5所述的调度***,其特征在于,所述调度模块以先入先出的方式依次将所述子任务调度到各工作者线程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810882835.2A CN109144693B (zh) | 2018-08-06 | 2018-08-06 | 一种功率自适应任务调度方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810882835.2A CN109144693B (zh) | 2018-08-06 | 2018-08-06 | 一种功率自适应任务调度方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109144693A CN109144693A (zh) | 2019-01-04 |
CN109144693B true CN109144693B (zh) | 2020-06-23 |
Family
ID=64791566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810882835.2A Active CN109144693B (zh) | 2018-08-06 | 2018-08-06 | 一种功率自适应任务调度方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144693B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110187966A (zh) * | 2019-05-13 | 2019-08-30 | 珠海全志科技股份有限公司 | 一种锁定cpu调度优化的方法、装置、***及程序产品 |
CN113407313B (zh) * | 2020-11-27 | 2022-05-17 | 上海交通大学 | 资源需求感知的多队列调度方法、***及服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049245A (zh) * | 2012-10-25 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种基于cpu多核平台的软件性能优化方法 |
CN104317658A (zh) * | 2014-10-17 | 2015-01-28 | 华中科技大学 | 一种基于MapReduce的负载自适应任务调度方法 |
CN105700959A (zh) * | 2016-01-13 | 2016-06-22 | 南京邮电大学 | 一种面向多核平台的多线程划分及静态均衡调度策略 |
CN107172149A (zh) * | 2017-05-16 | 2017-09-15 | 成都四象联创科技有限公司 | 大数据即时调度方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8677361B2 (en) * | 2010-09-30 | 2014-03-18 | International Business Machines Corporation | Scheduling threads based on an actual power consumption and a predicted new power consumption |
KR101684677B1 (ko) * | 2013-12-26 | 2016-12-09 | 한국전자통신연구원 | 멀티코어 시스템의 시스템 성능 최적화 장치 및 방법 |
-
2018
- 2018-08-06 CN CN201810882835.2A patent/CN109144693B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049245A (zh) * | 2012-10-25 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种基于cpu多核平台的软件性能优化方法 |
CN104317658A (zh) * | 2014-10-17 | 2015-01-28 | 华中科技大学 | 一种基于MapReduce的负载自适应任务调度方法 |
CN104317658B (zh) * | 2014-10-17 | 2018-06-12 | 华中科技大学 | 一种基于MapReduce的负载自适应任务调度方法 |
CN105700959A (zh) * | 2016-01-13 | 2016-06-22 | 南京邮电大学 | 一种面向多核平台的多线程划分及静态均衡调度策略 |
CN107172149A (zh) * | 2017-05-16 | 2017-09-15 | 成都四象联创科技有限公司 | 大数据即时调度方法 |
Non-Patent Citations (1)
Title |
---|
Adaptive Performance Optimization under Power Constraint in Multi-thread Applications with Diverse Scalability;Stefano Conoci, et al.;《arXiv》;20170903;1707.09642v2 * |
Also Published As
Publication number | Publication date |
---|---|
CN109144693A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Goiri et al. | Greenhadoop: leveraging green energy in data-processing frameworks | |
Chen et al. | Green-aware workload scheduling in geographically distributed data centers | |
Cheng et al. | Heterogeneity-aware workload placement and migration in distributed sustainable datacenters | |
CN102043675B (zh) | 一种基于任务处理请求任务量大小的线程池管理方法 | |
CN106254166B (zh) | 一种基于灾备中心的云平台资源配置方法以及*** | |
CN103399626B (zh) | 面向混合计算环境的功耗感知的并行应用调度***及方法 | |
CN110300959B (zh) | 用于动态运行时任务管理的方法、***、设备、装置和介质 | |
CN110795238B (zh) | 负载计算方法、装置、存储介质及电子设备 | |
CN112801331B (zh) | 利用虚拟容量和优选位置实时调度进行计算负载的整形 | |
CN109144693B (zh) | 一种功率自适应任务调度方法及*** | |
CN104331331A (zh) | 任务数目和性能感知的可重构多核处理器的资源分配方法 | |
Aikema et al. | Energy-cost-aware scheduling of HPC workloads | |
Kumar et al. | Task Scheduling in Real Time Systems with Energy Harvesting and Energy Minimization. | |
Fan | Job scheduling in high performance computing | |
US20170090962A1 (en) | Method for Mapping Between Virtual CPU and Physical CPU and Electronic Device | |
Cheng et al. | Heterogeneity aware workload management in distributed sustainable datacenters | |
CN111240461A (zh) | 一种基于任务调度的异构计算***低功耗方法 | |
Li et al. | Managing server clusters on renewable energy mix | |
CN103023802B (zh) | 一种面向web集群的低能耗调度***和方法 | |
Xiang et al. | Run-time management for multicore embedded systems with energy harvesting | |
Fan et al. | A heterogeneity-aware data distribution and rebalance method in Hadoop cluster | |
Zhang et al. | Scheduling challenges for variable capacity resources | |
Peng et al. | Energy-efficient management of data centers using a renewable-aware scheduler | |
CN101685335A (zh) | 基于seda的应用服务器及其节能装置和方法 | |
Zhang et al. | A parallel task scheduling algorithm based on fuzzy clustering in cloud computing environment |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220113 Address after: 200335 room 2547, floor 1, building 8, No. 33, Guangshun Road, Changning District, Shanghai Patentee after: Shanghai Agriculture Information Co.,Ltd. Address before: 200000 No. 999, Hucheng Ring Road, Lingang New Town, Pudong New Area, Shanghai Patentee before: SHANGHAI OCEAN University |
|
TR01 | Transfer of patent right |