CN111552553A - 一种基于模拟退火的多任务快速调度方法 - Google Patents
一种基于模拟退火的多任务快速调度方法 Download PDFInfo
- Publication number
- CN111552553A CN111552553A CN202010352881.9A CN202010352881A CN111552553A CN 111552553 A CN111552553 A CN 111552553A CN 202010352881 A CN202010352881 A CN 202010352881A CN 111552553 A CN111552553 A CN 111552553A
- Authority
- CN
- China
- Prior art keywords
- task
- sequence
- index
- scheduled
- 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.)
- Granted
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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于模拟退火的多任务快速调度方法,采用模拟未来固定时间内的服务器的任务调度情况,基于贪心算法计算获得任务调度序列,再对此序列上基于模拟退火的方式,以服务器CPU计算核心数的平均占用率为指标,进一步优化贪心算法获得优化后的任务调度序列,增加了任务调度效率。本发明模拟未来一定时间内的任务调度情况,通过占用率作为指标来衡量任务序列的优化情况,相对于直接对所有任务序列进行模拟退火的方式极大地减少了计算量,大幅度减少了方法的计算时间。
Description
技术领域
本发明属于任务调度的技术领域,具体涉及一种基于模拟退火的多任务快速调度方法。
背景技术
近年来,随着任务调度技术的不断更新和高端科技技术的不断注入,任务趋向于复杂化、多样化、分布式化,同时任务所需的计算资源也在不断剧增,因此目前迫切需要一种面向多任务的可高效利用硬件资源的任务调度方法。目前的任务调度方法大多数是基于任务队列(FIFO),其主要针对少量任务硬件资源充裕的场景,并不适合多任务下硬件资源紧张的场景。同时,也有很多任务调度方法总是尝试花大量时间来计算任务调度序列的全局最优解,而忽视了任务调度方法的实时性,使得算法失去了低延时性和鲁棒性。
发明内容
针对现有技术中的上述不足,本发明提供的一种基于模拟退火的多任务快速调度方法解决了现有任务调度方法调度时间长的问题。
为了达到上述发明目的,本发明采用的技术方案为:一种基于模拟退火的多任务快速调度方法,包括以下步骤:
S1、采集K个待调度的任务,获取每个任务执行时所需CPU核心数目和所需时间,得到第i个待调度任务所需的CPU核心数目为Ci和时间Ti;
S2、按照所需CPU核心数目从大到小将待调度任务的时间Ti进行排序,得到排序后的待调度任务集合S={T1,T2,...,Ti,...,TK};
S3、模拟未来t时刻内服务器任务执行情况,根据待调度任务集合S,使用贪心算法获取初始任务序列S0;
S4、使用模拟退火的方法对初始任务序列进行优化,得到优化后的任务序列;
S5、根据优化后的任务序列进行任务调度,并判断K个待调度的任务是否全部调度完成,若是则结束任务调度,否则进入步骤S6;
S6、判断t时刻内的任务是否调度完成,若是,则结束任务调度,否则返回步骤S3。
进一步地,所述步骤S2待调度任务集合S中Ti<Tj,其中,i<j,j=1,2,...,K。
进一步地,所述步骤S3包括以下分步骤:
S3.1、模拟未来t时刻内服务器任务执行情况,并判断服务器是否存在硬件空缺,若是,则进入步骤S3.2,否则重复步骤S3.1;
S3.2、根据待调度任务集合S,调度所需的CPU核心数目最多的任务,直至未来t时刻内任务调度完成,得到未来t时刻内的初始任务序列S0={T1,T2,...,Tn-1,Tn},n为未来t时刻内待调度任务的总数。
进一步地,所述步骤S4包括以下分步骤:
S4.1、根据初始任务序列S0,计算每个时刻服务器CPU核心的平均占用率指标F(S0),初始化计数器r=0和计数器s=0;
S4.2、令当前最优指标Fbest=F(S0)、当前最优序列Sbest=S0、当前计算序列Spre=S0、当前温度T=T0、循环次数为R和降温次数为S;
S4.3、随机交换当前计算序列Spre中两个任务的位置,得到序列Scur;
S4.4、根据序列Scur,判断指标F(Scur)是否大于指标F(Spre),若是,则令序列Spre等于序列Scur,并进入步骤S4.6,否则进入步骤S4.5;
S4.6、判断指标F(Spre)是否大于指标Fbest,若是,则令指标Fbest的值为F(Spre)和序列Sbest=Spre,并进入步骤S4.7,否则直接进入步骤S4.7;
S4.7、令r的计数值加一和当前温度T的计数值乘以0.98倍,判断计数器r是否等于R,若是,则进入步骤S4.8,否则返回步骤S4.3;
S4.8、令计数器s的计数值加1,并判断计数器s是否等于S,若是,则得到优化后的任务序列为Sbset,否则令r的计数值为0,并返回步骤S4.3;
其中,randmon(0,1)表示0到1之间的一个随机数。
进一步地,所述步骤S4.1-S4.6中指标F(S0)、指标F(Scur)和指标F(Spre)均通过指标计算函数F()获取,所述指标计算函数F()具体为:
其中,Sx表示待计算指标的序列,l=1,2,...,t,l表示t时刻内的第l时刻,Cl表示l时刻服务器CPU核心的占用率。
本发明的有益效果为:
(1)本发明采用模拟未来固定时间内的服务器的任务调度情况,基于贪心算法计算获得任务调度序列,再对此序列上基于模拟退火的方式,以服务器CPU计算核心数的平均占用率为指标,进一步优化贪心算法获得优化后的任务调度序列,增加了任务调度效率。
(2)本发明模拟未来一定时间内的任务调度情况,通过占用率作为指标来衡量任务序列的优化情况,相对于直接对所有任务序列进行模拟退火的方式极大地减少了计算量,大幅度减少了方法的计算时间。
附图说明
图1为本发明提出的一种基于模拟退火的多任务快速调度方法流程图;
图2为本发明提出中步骤S4的分步骤流程图;
图3为本发明的实验结果对比图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
下面结合附图详细说明本发明的实施例。
如图1所示,一种基于模拟退火的多任务快速调度方法,包括以下步骤:
S1、采集K个待调度的任务,获取每个任务执行时所需CPU核心数目和所需时间,得到第i个待调度任务所需的CPU核心数目为Ci和时间Ti;
S2、按照所需CPU核心数目从大到小将待调度任务的时间Ti进行排序,得到排序后的待调度任务集合S={T1,T2,...,Ti,...,TK};
S3、模拟未来t时刻内服务器任务执行情况,根据待调度任务集合S,使用贪心算法获取初始任务序列S0;
S4、使用模拟退火的方法对初始任务序列进行优化,得到优化后的任务序列;
S5、根据优化后的任务序列进行任务调度,并判断K个待调度的任务是否全部调度完成,若是则结束任务调度,否则进入步骤S6;
S6、判断t时刻内的任务是否调度完成,若是,则结束任务调度,否则返回步骤S3。
所述步骤S2待调度任务集合S中Ti<Tj,其中,i<j,j=1,2,...,K。
所述步骤S3包括以下分步骤:
S3.1、模拟未来t时刻内服务器任务执行情况,并判断服务器是否存在硬件空缺,若是,则进入步骤S3.2,否则重复步骤S3.1;
S3.2、根据待调度任务集合S,调度所需的CPU核心数目最多的任务,直至未来t时刻内任务调度完成,得到未来t时刻内的初始任务序列S0={T1,T2,...,Tn-1,Tn},n为未来t时刻内待调度任务的总数。
在本实施例中,t=80s。
如图2所示,所述步骤S4包括以下分步骤:
S4.1、根据初始任务序列S0,计算每个时刻服务器CPU核心的平均占用率指标F(S0),初始化计数器r=0和计数器s=0;
S4.2、令当前最优指标Fbest=F(S0)、当前最优序列Sbest=S0、当前计算序列Spre=S0、当前温度T=T0、循环次数为R和降温次数为S;
S4.3、随机交换当前计算序列Spre中两个任务的位置,得到序列Scur;
S4.4、根据序列Scur,判断指标F(Scur)是否大于指标F(Spre),若是,则令序列Spre等于序列Scur,并进入步骤S4.6,否则进入步骤S4.5;
S4.6、判断指标F(Spre)是否大于指标Fbest,若是,则令指标Fbest的值为F(Spre)和序列Sbest=Spre,并进入步骤S4.7,否则直接进入步骤S4.7;
S4.7、令r的计数值加一和当前温度T的计数值乘以0.98倍,判断计数器r是否等于R,若是,则进入步骤S4.8,否则返回步骤S4.3;
S4.8、令计数器s的计数值加1,并判断计数器s是否等于S,若是,则得到优化后的任务序列为Sbset,否则令r的计数值为0,并返回步骤S4.3;
其中,randmon(0,1)表示0到1之间的一个随机数。
在本实施例中,T0=100,R=50,S=100。
所述步骤S4.1-S4.6中指标F(S0)、指标F(Scur)和指标F(Spre)均通过指标计算函数F()获取,所述指标计算函数F()具体为:
其中,Sx表示待计算指标的序列,l=1,2,...,t,l表示t时刻内的第l时刻,Cl表示l时刻服务器CPU核心的占用率。
如图3所示,分别通过任务队列、贪心算法、全任务模拟退火方法和本申请提出的方法进行任务调度对比,从对比结果可以看出,贪心算法和本申请提出方法的算法运行时间比较接近任务队列的任务规划时间,且远小于全任务模拟退火方法的运行时间,全任务模拟退火方法和本申请提出的方法进行任务调度的时间较少且基本一致,但本申请提出方法的算法运行时间远小于全任务模拟退火方法的运行时间,综上所述,本申请提出的方法不仅算法运行时间短,且任务调度时间短,达到了多任务快速调动的目的。
本发明的有益效果为:采用模拟未来固定时间内的服务器的任务调度情况,基于贪心算法计算获得任务调度序列,再对此序列上基于模拟退火的方式,以服务器CPU计算核心数的平均占用率为指标,进一步优化贪心算法获得优化后的任务调度序列,增加了任务调度效率。本发明模拟未来一定时间内的任务调度情况,通过占用率作为指标来衡量任务序列的优化情况,相对于直接对所有任务序列进行模拟退火的方式极大地减少了计算量,大幅度减少了方法的计算时间。
Claims (5)
1.一种基于模拟退火的多任务快速调度方法,其特征在于,包括以下步骤:
S1、采集K个待调度的任务,获取每个任务执行时所需CPU核心数目和所需时间,得到第i个待调度任务所需的CPU核心数目为Ci和时间Ti;
S2、按照所需CPU核心数目从大到小将待调度任务的时间Ti进行排序,得到排序后的待调度任务集合S={T1,T2,...,Ti,...,TK};
S3、模拟未来t时刻内服务器任务执行情况,根据待调度任务集合S,使用贪心算法获取初始任务序列S0;
S4、使用模拟退火的方法对初始任务序列进行优化,得到优化后的任务序列;
S5、根据优化后的任务序列进行任务调度,并判断K个待调度的任务是否全部调度完成,若是则结束任务调度,否则进入步骤S6;
S6、判断t时刻内的任务是否调度完成,若是,则结束任务调度,否则返回步骤S3。
2.根据权利要求1所述的基于模拟退火的多任务快速调度方法,其特征在于,所述步骤S2待调度任务集合S中Ti<Tj,其中,i<j,j=1,2,...,K。
3.根据权利要求1所述的基于模拟退火的多任务快速调度方法,其特征在于,所述步骤S3包括以下分步骤:
S3.1、模拟未来t时刻内服务器任务执行情况,并判断服务器是否存在硬件空缺,若是,则进入步骤S3.2,否则重复步骤S3.1;
S3.2、根据待调度任务集合S,调度所需的CPU核心数目最多的任务,直至未来t时刻内任务调度完成,得到未来t时刻内的初始任务序列S0={T1,T2,...,Tn-1,Tn},n为未来t时刻内待调度任务的总数。
4.根据权利要求3所述的基于模拟退火的多任务快速调度方法,其特征在于,所述步骤S4包括以下分步骤:
S4.1、根据初始任务序列S0,计算每个时刻服务器CPU核心的平均占用率指标F(S0),初始化计数器r=0和计数器s=0;
S4.2、令当前最优指标Fbest=F(S0)、当前最优序列Sbest=S0、当前计算序列Spre=S0、当前温度T=T0、循环次数为R和降温次数为S;
S4.3、随机交换当前计算序列Spre中两个任务的位置,得到序列Scur;
S4.4、根据序列Scur,判断指标F(Scur)是否大于指标F(Spre),若是,则令序列Spre等于序列Scur,并进入步骤S4.6,否则进入步骤S4.5;
S4.6、判断指标F(Spre)是否大于指标Fbest,若是,则令指标Fbest的值为F(Spre)和序列Sbest=Spre,并进入步骤S4.7,否则直接进入步骤S4.7;
S4.7、令r的计数值加一和当前温度T的计数值乘以0.98倍,判断计数器r是否等于R,若是,则进入步骤S4.8,否则返回步骤S4.3;
S4.8、令计数器s的计数值加1,并判断计数器s是否等于S,若是,则得到优化后的任务序列为Sbset,否则令r的计数值为0,并返回步骤S4.3;
其中,randmon(0,1)表示0到1之间的一个随机数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010352881.9A CN111552553B (zh) | 2020-04-29 | 2020-04-29 | 一种基于模拟退火的多任务快速调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010352881.9A CN111552553B (zh) | 2020-04-29 | 2020-04-29 | 一种基于模拟退火的多任务快速调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111552553A true CN111552553A (zh) | 2020-08-18 |
CN111552553B CN111552553B (zh) | 2023-03-10 |
Family
ID=72003352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010352881.9A Active CN111552553B (zh) | 2020-04-29 | 2020-04-29 | 一种基于模拟退火的多任务快速调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552553B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112394803A (zh) * | 2020-11-25 | 2021-02-23 | 超越科技股份有限公司 | 一种国产服务器功耗实时动态调节方法 |
CN112954012A (zh) * | 2021-01-27 | 2021-06-11 | 北京计算机技术及应用研究所 | 基于负载的改进模拟退火算法的云任务调度方法 |
CN117196263A (zh) * | 2023-11-06 | 2023-12-08 | 四川普鑫物流自动化设备工程有限公司 | 一种货物调度方法、装置、设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593132A (zh) * | 2009-06-25 | 2009-12-02 | 北京航空航天大学 | 基于线程构造模块的多核并行模拟退火方法 |
US20130117752A1 (en) * | 2011-11-07 | 2013-05-09 | Sap Ag | Heuristics-based scheduling for data analytics |
CN106505579A (zh) * | 2016-12-19 | 2017-03-15 | 电子科技大学 | 一种电动汽车参与配电网电压调节的调度控制方法 |
CN106899660A (zh) * | 2017-01-26 | 2017-06-27 | 华南理工大学 | 基于滚动灰色预测模型的云数据中心节能调度实现方法 |
-
2020
- 2020-04-29 CN CN202010352881.9A patent/CN111552553B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593132A (zh) * | 2009-06-25 | 2009-12-02 | 北京航空航天大学 | 基于线程构造模块的多核并行模拟退火方法 |
US20130117752A1 (en) * | 2011-11-07 | 2013-05-09 | Sap Ag | Heuristics-based scheduling for data analytics |
CN106505579A (zh) * | 2016-12-19 | 2017-03-15 | 电子科技大学 | 一种电动汽车参与配电网电压调节的调度控制方法 |
CN106899660A (zh) * | 2017-01-26 | 2017-06-27 | 华南理工大学 | 基于滚动灰色预测模型的云数据中心节能调度实现方法 |
Non-Patent Citations (3)
Title |
---|
MOSTAFA HAGHI KASHANI: ""Using simulated annealing for task scheduling in distributed systems"", 《IEEE》 * |
蒋龙聪: ""模拟退火算法及其改进"", 《工程地球物理学报》 * |
钟小康: ""云计算环境下任务调度算法的研究"", 《中国优秀硕士论文全文和数据库》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112394803A (zh) * | 2020-11-25 | 2021-02-23 | 超越科技股份有限公司 | 一种国产服务器功耗实时动态调节方法 |
CN112394803B (zh) * | 2020-11-25 | 2023-01-24 | 超越科技股份有限公司 | 一种国产服务器功耗实时动态调节方法 |
CN112954012A (zh) * | 2021-01-27 | 2021-06-11 | 北京计算机技术及应用研究所 | 基于负载的改进模拟退火算法的云任务调度方法 |
CN112954012B (zh) * | 2021-01-27 | 2022-09-09 | 北京计算机技术及应用研究所 | 基于负载的改进模拟退火算法的云任务调度方法 |
CN117196263A (zh) * | 2023-11-06 | 2023-12-08 | 四川普鑫物流自动化设备工程有限公司 | 一种货物调度方法、装置、设备及计算机可读存储介质 |
CN117196263B (zh) * | 2023-11-06 | 2024-02-09 | 四川普鑫物流自动化设备工程有限公司 | 一种货物调度方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111552553B (zh) | 2023-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111552553B (zh) | 一种基于模拟退火的多任务快速调度方法 | |
CN113254178B (zh) | 一种任务调度方法、装置、电子设备及可读存储介质 | |
CN106874112B (zh) | 一种结合负载均衡的工作流回填方法 | |
CN107506865A (zh) | 一种基于lssvm优化的负荷预测方法及系统 | |
CN116166405B (zh) | 异构场景下的神经网络任务调度策略确定方法及装置 | |
Wu et al. | A deadline-aware estimation of distribution algorithm for resource scheduling in fog computing systems | |
CN114647515A (zh) | 一种面向gpu集群的动态资源调度方法 | |
CN108132840B (zh) | 一种分布式系统中的资源调度方法及装置 | |
CN116702907A (zh) | 一种服务器无感知的大语言模型推理系统、方法和设备 | |
CN111176637B (zh) | 基于缓存抢占延迟约束下aadl模型的可调度性分析方法 | |
CN109977025B (zh) | 一种工业机器人伺服系统性能单工位测试建模调度方法 | |
CN111290360B (zh) | 一种铸造生产线多目标优化方法 | |
CN115454611A (zh) | 一种基于改进粒子群优化算法的任务调度方法 | |
JP2001350639A (ja) | ソフトリアルタイムにおけるスケジューリング方法 | |
CN116451585A (zh) | 基于目标检测模型的自适应实时学习任务调度方法 | |
CN111798119A (zh) | 一种预制构件流水车间订单接受与调度集成优化方法 | |
CN110765360A (zh) | 文本话题处理方法、装置、电子设备及计算机存储介质 | |
CN116225653A (zh) | 深度学习多模型部署场景下qos感知的资源分配方法及装置 | |
Wei et al. | Composite rules selection using reinforcement learning for dynamic job-shop scheduling | |
Wan et al. | Key technology of embedded system implementation for software-based CNC system | |
Dong et al. | A general analysis framework for soft real-time tasks | |
KR101271854B1 (ko) | 태스크 주기 스케쥴링 장치 및 방법 | |
CN114818570B (zh) | 一种基于蒙特卡罗仿真的嵌入式系统时序分析方法 | |
JPH1153006A (ja) | スケジューリング方法 | |
Huang et al. | The application of improved hybrid particle swarm optimization algorithm in job shop scheduling problem |
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 |