CN104281495B - 多核处理器共享高速缓存任务调度方法 - Google Patents
多核处理器共享高速缓存任务调度方法 Download PDFInfo
- Publication number
- CN104281495B CN104281495B CN201410537569.1A CN201410537569A CN104281495B CN 104281495 B CN104281495 B CN 104281495B CN 201410537569 A CN201410537569 A CN 201410537569A CN 104281495 B CN104281495 B CN 104281495B
- Authority
- CN
- China
- Prior art keywords
- task
- shared cache
- process cores
- deadline
- execution
- 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.)
- Expired - Fee Related
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种多核处理器共享高速缓存任务调度方法。第一步,把多核处理器共享Cache划分成若干块,同时初始化处理核相关参数;第二步,对多核处理器任务队列中每个任务和任务所需不同共享高速缓存Cache块,计算所有处理核与任务共享Cache块相对应的最早任务执行完成时间;第三步,判断有没有能满足任务所需共享Cache块条件的任务处理核对;第四步,查找最优可调度任务处理核对,并将任务调度到相应处理核上执行,更新多核处理器参数相关参数。第五步,判断任务队列中所有任务是否调度完毕,如果调度完毕则输出任务处理核对序列,否则循环执行第二、三、四步。本方法较之现有面向多核处理器任务调度理论相比具有调度长度和平均响应时间短等性能优势。
Description
技术领域
本发明属于计算机软件以及片上多核处理器资源管理与任务调度技术领域,涉及一种考虑共享高速缓存Cache的任务调度方法。
背景技术
近年来,随着超大规模集成电路集成度和主频的不断提高,集成电路技术遇到了诸如互连线延时、短沟道效应、漂移速度饱和、热载流子退化效应等不可逾越的物理极限挑战。这种挑战给单核处理器技术带来了制造成本、功耗、散热等问题,促使芯片厂商转向在芯片上集成多个处理器核的多核处理器。目前,集成数十核的商业多核U处理器,如十二核Intel Xeon E5、AMD皓龙等已广泛应用在机群、数据中心、云计算等大型计算服务领域。
片上多核处理器最关键的结构特点在于:其所有处理器核并不是独立存在的,而是通过诸多公共资源互相连接,这些资源包括高速缓存Cache、访存通道等。这种体系结构特点使得多个用户应用或并行线程在多核处理器上执行时,即使不存在任何跨应用的资源与通讯需求,各个应用或线程仍然由于共享资源而受到彼此干扰,例如共享高速缓存Cache。由于多个应用或线程共享片上多核处理器最后一级Cache(L2或L3),使彼此间相互竞争Cache资源产生冲突,导致多核处理器并发性能下降。
多核处理器由于共享Cache资源导致性能下降问题一直是是国内外研究热点,本发明采用软件任务调度策略来克服此问题,试图通过合理的任务分配与调控来缓解资源冲突带来的干扰,有效减少并发性能下降。
任务调度问题本质上属于组合优化问题,而组合优化问题的最优解属于NP完全问题,特别是本发明需要满足任务共享Cache块需求,因而更是NP完全问题。实际上获得NP完全问题解代价太大。
发明内容
本发明针对多核处理器并行线程由于共享二级或三级高速缓存Cache而导致线程间因竞争资源产生冲突,使多核处理器并发性能下降现象,提出共享Cache驱动的任务调度方法。
为实现上述技术目的,本发明所采用的技术方案为:
一种多核处理器共享高速缓存任务调度方法,该方法包括如下步骤:
步骤1:对多核处理器***共享高速缓存Cache进行Cache块划分,首先按列地址空间把共享Cache分成若干Cache页,然后再将共享Cache划分成由Cache页构成的Cache块;
步骤2:分别初始化任务最早开始执行时间、单个处理核最早执行完成时间、单个处理核所拥有共享Cache块数、***可用共享Cache块数;
步骤3:对于多核处理器***任务队列中的每个任务,根据其执行时所需求的共享Cache块数,来对***中的每个处理核进行判断,如满足***可用共享Cache块数与相应处理核所拥有共享Cache块数之和不小于该任务所需共享Cache块数,则计算该任务在该处理核上的最早执行完成时间,否则不进行计算,遍历所有处理核之后再对下一个任务进行判断,直至判断完所有的任务为止;
步骤4:根据步骤3的结果,判断是否存在能够执行任务队列中任务的处理核,即有没有计算出任一任务在任一处理核上最早执行完成时间,如有则执行步骤6,否则执行步骤5;
步骤5:查询所有处理核处理现有自身任务的执行完成时间,找到当前处理任务剩余的执行完成时间最短的处理核,将此处理核的执行完成时间更新为不再是所有处理核中最早的执行完成时间,并等待此处理核完成任务,然后释放此处理核所拥有的共享Cache块数,多核处理器***可用共享Cache块数即更新为原有块数+此处理核所拥有的共享Cache块数,此处理核所拥有的共享Cache块置为0,转步骤7;
步骤6:根据步骤3得到的每个任务在相应处理核上的最早执行完成时间,找出其中最早的执行完成时间以及所对应的任务vi及相应处理核pk;***把任务vi分配给处理核pk,更新处理核pk的最早执行完成时间为该任务vi在处理核pk上的最早执行完成时间,处理核pk所拥有的共享Cache块数量更新为原处理核pk所拥有的共享Cache块与任务vi所需的共享Cache块数之和,多核处理器所拥有的可用共享Cache块的数量更新为原多核处理器所拥有的可用共享Cache块减去任务所需共享Cache块数,转步骤7;
步骤7:查询任务队列中是否还有任务在等待调度,如果没有任务则输出任务处理核调度序列对,否则返回步骤3重新计算所有任务在处理核上的最早执行完成时间并循环执行直至所有任务调度完毕。
所述的一种多核处理器共享高速缓存任务调度方法,所述的步骤1中,Cache页的大小为512B。
所述的一种多核处理器共享高速缓存任务调度方法,所述的步骤1中,Cache块的容量=共享Cache容量/(处理器核数*10)。
所述的一种多核处理器共享高速缓存任务调度方法,所述的步骤3中,多核处理器***任务队列中的每个任务在提交时,同时会提交所需的Cache块数和相应的执行时间。
所述的一种多核处理器共享高速缓存任务调度方法,所述步骤5中,在找到当前处理任务剩余的执行完成时间最短的处理核后,将此处理核的执行完成时间更新为所有处理核执行完成时间中第三早的执行完成时间。
所述的一种多核处理器共享高速缓存任务调度方法,所述的步骤7中,查询任务队列中是否还有任务在等待调度即检查任务队列是否为空。
本发明的技术效果在于,采用启发式调度策略来提供合理的解空间以提高多核处理器并发执行任务能力,提升处理器性能,采用该方法,较之现有面向多核处理器任务调度理论相比具有调度长度和平均响应时间短等性能优势。
附图说明
图1是本发明提供的多核处理器共享高速缓存任务调度方法流程图;
图2是本发明实施提供的多核处理器高速缓存Cache层级示例图;
图3是4核处理器拥有28共享Cache块的60到200任务实验结果;
具体实施方式
下面结合附图和实施例对本发明所述方法进行详细说明。
本发明提出了一种多核处理器共享Cache驱动的任务调度方法,其流程图如图1所示。该方法能充分利用多核处理器Cache来实现一种高效的任务调度机制,从而提高多核处理器并发处理性能。
本发明通过下述技术方案实现:
本实施例针对具有独立性的并行应用程序任务,这些任务相互间不具有数据和控制等依赖关系,能对其数据集独立运行。但由于多核处理器共享Cache而发生竞争,导致任务数据不能有效装载进入Cache而使处理器性能降低。本发明中每个任务相对于共享Cache块而具有的执行时间表示为:wi,j,其中i表示任务vi,j表示任务vi执行时所需的共享Cache块数。如w1,6=19.3表示任务v1获得6个共享Cache块的执行时间为19.3s,w1,10=17.5表示任务v1获得10个共享Cache块的执行时间为17.5s。本实施例中任务获得共享Cache块在一定范围内是越多执行时间就越少,但超出此范围后共享Cache块的多少不影响任务执行时间。
多核处理器由于把多个处理核集成在一块芯片上,因此大量采用资源共享技术。其中高速缓存Cache是其最重要的一项共享技术,图2是AMD的多核处理器,每个处理核有其局部的L1和L2Cache,但都共享L3Cache。本实施例用pk表示多核处理器第k处理核。
本实施例对共享Cache提出基于软件支持的Cache块划分方法,其基本想法是利用OS页面分配机制来控制任务使用Cache的大小。首先利用多核处理器OS功能按列地址空间把共享Cache分成最小的页面,然后依据多核处理器核数把共享Cache划分成若干块,如共享Cache为4M的四核处理器可划分为40Cache块。其目的是在调度算法计算出任务所需Cache块,在多核处理器OS软件支持下采用组相联实现数据代码向共享Cache的有效映射。
多核处理器共享高速缓存任务调度方法首先会对任务在各处理核上的最早开始执行时间、处理核最早执行任务时间、所有处理核拥有的共享Cache块数和处理器可用共享Cache块数进行初始化,分别给下列参数给予初值。EST(vi,pk)=0表示任务vi在处理核pk上的初始开始执行时间为0;FT(pk)=0表示当前分配给处理核pk上任务的最早执行完成时间为0;pSCache[k]=0表示所有处理核所拥有的共享Cache块初始值为0;AvailCache=MaxCache表示当前处理器可用共享Cache块为当前***最大可用共享Cache块数,如上例子中的40Cache块。
对于多核处理器***任务队列中的每个任务,依据其对共享Cache块数需求的不同,本实施例依次对各个处理核计算其任务最早执行完成时间。其计算方法依据如下公式:
EFT(vi,pk)=EST(vi,pk)+ET(vi,j,pk)
=FT(pk)+wi,j
subject to j≤AvailCache+pSCache[k]
当多核处理器能提供的可用共享Cache块AvailCache+pSCache[k]满足任务所需共享Cache块时,计算任务在处理核上的最早执行完成时间EFT(vi,pk)。任务最早执行完成时间就是任务所在处理核已分配任务最早执行完成时间FT(pk)与任务执行时间wi,j之和。本实施例重复此计算过程,直到所有任务,任务的不同共享Cache块数和所有处理核都计算出任务的最早执行完成时间EFT(vi,pk)。
当多核处理器分配一些任务在各处理核上执行后,可用共享Cache块AvailCache将会减少。条件AvailCache+pSCache[k]在某些情况下对于所有可能情况都不能满足,此时多核处理器资源管理***将释放一些处理核。调度方法将查询所有处理核处理自身当前任务的最早执行完成时间FT(pk),找到所有处理核中具有最小的最早执行完成时间FT(pm),并更新多核处理器参数:最早执行完成时间FT(pm)赋值为第三早的执行完成时间FT(pk);可用共享Cache块AvailCache更新为AvailCache+pSCache[m];处理核pm所拥有的共享Cache块pSCache[m]置为0。多核处理器更新所有***参数后,将继续返回上一步重新计算所有任务,不同共享Cache块数和处理核下任务的最早执行完成时间。
如果有任务满足条件可以调度到某台处理核上执行,本实施例任务调度方法将查询所有可能的任务最早执行完成时间,找出最小的任务最早执行完成时间EFT(vi,pk)。***将会把任务vi分配给处理核pk,并更新多核处理器相关参数:处理核pk最早执行完成时间FT(pk)=EFT(vi,pk);处理核pk所捅有的共享Cache块pSCache[k]=pSCache[k]+j;多核处理器所拥有的可用共享Cache块AvailCache=AvailCache-j。
本实施例采用的共享高速缓存任务调度方法将继续以上各个步骤,直到多核处理器任务队列中所有任务都调度完成。
性能分析及结果验证:
本实施例的多核处理器共享高速缓存任务调度方法是一种低时间复杂度、高效率的调度技术,其时间复杂度为O(N2ML)。其中N为任务数,M为多核处理器处理核数,L为所有任务的最大所需不同共享Cache块数。
模拟实验中本发明提出的多核处理器共享高速缓存任务调度方法命名为SCAS,主要与经典任务调度算法MIN-MIN进行比较。为了有效了解调度方法SCAS的性能,实验对SCAS做了一点改变,在选择最优任务时不是最小最早执行完成时间任务和处理核对,而是最大最早执行完成时间任务和处理核对,此方法命名为MSCAS。性能评价指标主要有调度长度(Makespan)和平均响应时间(Average response time)。
实验结果如图3所示,所有的实验数据都是多次实验的平均值。图3是4核处理器拥有28共享Cache块的60到200任务实验结果。从图3可知,多核处理器共享高速缓存任务调度方法SCAS无论是在调度长度还是平均响应时间都要优于MIN-MIN、MSCAS。实际上,在平均调度长度方面,SCAS要比MSCAS短16.1%、比MIN-MIN短8.37%。对于平均响应时间而言,SCAS比MSCAS优149%、比MIN-MIN优10.5%。以上实验结果表明共享高速缓存任务调度方法能有效提高多核处理器性能。
综上所述,本发明提出的多核处理器共享高速缓存任务调度方法能克服现有多核处理器由于共享Cache带来的并发性能降低,有效提高多核处理器性能。
尽管本发明的内容已经通过上述实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
Claims (6)
1.一种多核处理器共享高速缓存任务调度方法,其特征在于,该方法包括如下步骤:
步骤1:对多核处理器***共享高速缓存Cache进行Cache块划分,首先按列地址空间把共享Cache分成若干Cache页,然后再将共享Cache划分成由Cache页构成的Cache块;
步骤2:分别初始化任务最早开始执行时间、单个处理核最早执行完成时间、单个处理核所拥有共享Cache块数、***可用共享Cache块数;
步骤3:对于多核处理器***任务队列中的每个任务,根据其执行时所需求的共享Cache块数,来对***中的每个处理核进行判断,如满足***可用共享Cache块数与相应处理核所拥有共享Cache块数之和不小于该任务所需共享Cache块数,则计算该任务在该处理核上的最早执行完成时间,否则不进行计算,遍历所有处理核之后再对下一个任务进行判断,直至判断完所有的任务为止;
步骤4:根据步骤3的结果,判断是否存在能够执行任务队列中任务的处理核,即有没有计算出任一任务在任一处理核上最早执行完成时间,如有则执行步骤6,否则执行步骤5;
步骤5:查询所有处理核处理现有自身任务的执行完成时间,找到当前处理任务剩余的执行完成时间最短的处理核,将此处理核的执行完成时间更新为不再是所有处理核中最早的执行完成时间,并等待此处理核完成任务,然后释放此处理核所拥有的共享Cache块数,多核处理器***可用共享Cache块数即更新为原有块数加上此处理核所拥有的共享Cache块数,此处理核所拥有的共享Cache块置为0,转步骤7;
步骤6:根据步骤3得到的每个任务在相应处理核上的最早执行完成时间,找出其中最早的执行完成时间以及所对应的任务vi及相应处理核pk;***把任务vi分配给处理核pk,更新处理核pk的最早执行完成时间为该任务vi在处理核pk上的最早执行完成时间,处理核pk所拥有的共享Cache块数量更新为原处理核pk所拥有的共享Cache块与任务vi所需的共享Cache块数之和,多核处理器所拥有的可用共享Cache块的数量更新为原多核处理器所拥有的可用共享Cache块减去任务所需共享Cache块数,转步骤7;
步骤7:查询任务队列中是否还有任务在等待调度,如果没有任务则输出任务处理核调度序列对,否则返回步骤3重新计算所有任务在处理核上的最早执行完成时间并循环执行直至所有任务调度完毕。
2.根据权利要求1所述的一种多核处理器共享高速缓存任务调度方法,其特征在于,所述的步骤1中,Cache页的大小为512B。
3.根据权利要求1所述的一种多核处理器共享高速缓存任务调度方法,其特征在于,所述的步骤1中,Cache块的容量=共享Cache容量/(处理器核数*10)。
4.根据权利要求1所述的一种多核处理器共享高速缓存任务调度方法,其特征在于,所述的步骤3中,多核处理器***任务队列中的每个任务在提交时,同时会提交所需的Cache块数和相应的执行时间。
5.根据权利要求1所述的一种多核处理器共享高速缓存任务调度方法,其特征在于,所述步骤5中,在找到当前处理任务剩余的执行完成时间最短的处理核后,将此处理核的执行完成时间更新为所有处理核执行完成时间中第三早的执行完成时间。
6.根据权利要求1所述的一种多核处理器共享高速缓存任务调度方法,其特征在于,所述的步骤7中,查询任务队列中是否还有任务在等待调度即检查任务队列是否为空。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410537569.1A CN104281495B (zh) | 2014-10-13 | 2014-10-13 | 多核处理器共享高速缓存任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410537569.1A CN104281495B (zh) | 2014-10-13 | 2014-10-13 | 多核处理器共享高速缓存任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104281495A CN104281495A (zh) | 2015-01-14 |
CN104281495B true CN104281495B (zh) | 2017-04-26 |
Family
ID=52256396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410537569.1A Expired - Fee Related CN104281495B (zh) | 2014-10-13 | 2014-10-13 | 多核处理器共享高速缓存任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104281495B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9582329B2 (en) * | 2015-02-17 | 2017-02-28 | Qualcomm Incorporated | Process scheduling to improve victim cache mode |
CN105468567B (zh) * | 2015-11-24 | 2018-02-06 | 无锡江南计算技术研究所 | 一种异构众核离散访存优化方法 |
CN107329822B (zh) * | 2017-01-15 | 2022-01-28 | 齐德昱 | 面向多源多核***的基于超任务网的多核调度方法 |
CN106789447B (zh) * | 2017-02-20 | 2019-11-26 | 成都欧飞凌通讯技术有限公司 | 一种多核中实现超有限自动机图变更时不丢包的方法 |
CN109766168B (zh) * | 2017-11-09 | 2023-01-17 | 阿里巴巴集团控股有限公司 | 任务调度方法和装置、存储介质以及计算设备 |
US10642657B2 (en) * | 2018-06-27 | 2020-05-05 | The Hong Kong Polytechnic University | Client-server architecture for multicore computer system to realize single-core-equivalent view |
CN109144720A (zh) * | 2018-07-13 | 2019-01-04 | 哈尔滨工程大学 | 一种基于共享资源敏感的多核处理器任务调度选择方法 |
CN111582629B (zh) * | 2020-03-24 | 2023-11-17 | 青岛奥利普奇智智能工业技术有限公司 | 资源调度方法、装置、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010093003A1 (ja) * | 2009-02-13 | 2010-08-19 | 日本電気株式会社 | 演算資源割当装置、演算資源割当方法、及び、演算資源割当プログラム |
JP2011059777A (ja) * | 2009-09-07 | 2011-03-24 | Toshiba Corp | タスクスケジューリング方法及びマルチコアシステム |
CN102591843A (zh) * | 2011-12-30 | 2012-07-18 | 中国科学技术大学苏州研究院 | 多核处理器的核间通信方法 |
CN103440173A (zh) * | 2013-08-23 | 2013-12-11 | 华为技术有限公司 | 一种多核处理器的调度方法和相关装置 |
CN103440223A (zh) * | 2013-08-29 | 2013-12-11 | 西安电子科技大学 | 一种实现高速缓存一致性协议的分层***及其方法 |
-
2014
- 2014-10-13 CN CN201410537569.1A patent/CN104281495B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010093003A1 (ja) * | 2009-02-13 | 2010-08-19 | 日本電気株式会社 | 演算資源割当装置、演算資源割当方法、及び、演算資源割当プログラム |
JP2011059777A (ja) * | 2009-09-07 | 2011-03-24 | Toshiba Corp | タスクスケジューリング方法及びマルチコアシステム |
CN102591843A (zh) * | 2011-12-30 | 2012-07-18 | 中国科学技术大学苏州研究院 | 多核处理器的核间通信方法 |
CN103440173A (zh) * | 2013-08-23 | 2013-12-11 | 华为技术有限公司 | 一种多核处理器的调度方法和相关装置 |
CN103440223A (zh) * | 2013-08-29 | 2013-12-11 | 西安电子科技大学 | 一种实现高速缓存一致性协议的分层***及其方法 |
Non-Patent Citations (1)
Title |
---|
基于NUCA结构的同构单芯片多处理器;陈宏铭,林昶志,陈麒安;《中国集成电路》;20111105;32-54 * |
Also Published As
Publication number | Publication date |
---|---|
CN104281495A (zh) | 2015-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104281495B (zh) | 多核处理器共享高速缓存任务调度方法 | |
CN105579959B (zh) | 硬件加速器虚拟化 | |
CN112328380B (zh) | 一种基于异构计算的任务调度方法及装置 | |
CN109697185A (zh) | 多瓦片处理阵列中的同步 | |
US8707320B2 (en) | Dynamic partitioning of data by occasionally doubling data chunk size for data-parallel applications | |
CN105468439B (zh) | 在cpu-gpu异构框架下遍历固定半径内邻居的自适应并行方法 | |
Agullo et al. | Multifrontal QR factorization for multicore architectures over runtime systems | |
CN107341041B (zh) | 基于优先队列的云任务多维约束回填调度方法 | |
CN109697082A (zh) | 指令组 | |
US10467722B2 (en) | Combined rendering and computing resource allocation management system | |
CN110308982B (zh) | 一种共享内存复用方法及装置 | |
CN111104211A (zh) | 基于任务依赖的计算卸载方法、***、设备及介质 | |
US8615770B1 (en) | System and method for dynamically spawning thread blocks within multi-threaded processing systems | |
US20130145373A1 (en) | Information processing apparatus, information processing method, and storage medium | |
Shafique et al. | Minority-game-based resource allocation for run-time reconfigurable multi-core processors | |
CN101833439A (zh) | 基于分合思想的并行计算硬件结构 | |
WO2019086765A1 (en) | Combined rendering and compute resource allocation management system | |
Kim et al. | Las: locality-aware scheduling for GEMM-accelerated convolutions in GPUs | |
Gonthier et al. | Memory-aware scheduling of tasks sharing data on multiple gpus with dynamic runtime systems | |
CN113222099A (zh) | 卷积运算方法及芯片 | |
US8090762B2 (en) | Efficient super cluster implementation for solving connected problems in a distributed environment | |
US11966783B1 (en) | Real time scheduling using expected application resource usage | |
Ermiş et al. | Accelerating local search algorithms for the travelling salesman problem through the effective use of GPU | |
CN105573834B (zh) | 一种基于异构平台的高维词汇树构建方法 | |
Yin et al. | A data-aware workflow scheduling algorithm for heterogeneous distributed systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170426 Termination date: 20171013 |