CN103136113A - 面向多核处理器的共享Cache冲突预测方法 - Google Patents
面向多核处理器的共享Cache冲突预测方法 Download PDFInfo
- Publication number
- CN103136113A CN103136113A CN2011103826749A CN201110382674A CN103136113A CN 103136113 A CN103136113 A CN 103136113A CN 2011103826749 A CN2011103826749 A CN 2011103826749A CN 201110382674 A CN201110382674 A CN 201110382674A CN 103136113 A CN103136113 A CN 103136113A
- Authority
- CN
- China
- Prior art keywords
- cache
- task
- probability
- state
- core processor
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及多核处理器的共享Cache冲突预测方法,具体的说它是一种在多核处理器环境下,对并发任务的共享Cache性能分析及预测。以任务独立执行时的Cache静态复用距离为输入,建立基于二阶Markov链的共享Cache状态模型并通过计算模型底层Markov链和顶层的随机事件得到每次Cache访问后输出的状态观察序列值,最终形成一组符合概率分布的观察值向量,根据观察值向量预测任务的Cache空间占用率,失效率和并发任务间发生Cache访问冲突的概率。本发明预测精度更高,扩展性较强,无须额外硬件支持,功能全面,应用更加广泛。
Description
技术领域
本发明涉及多核处理器的共享Cache冲突预测方法,具体的说它是一种在多核处理器环境下,对并发任务的共享Cache性能分析及预测。
背景技术
现代多核处理器仍具有多级Cache结构即每个处理器核心独占一个小容量的L1Cache,多个核心共享一个较大容量的L2Cache。这种结构缓解了处理器和内存之间的速度差异问题,但也对实时系统的设计带来了新挑战。在实时系统中,并发任务对共享Cache的访问冲突增加了任务的Cache失效率。系统被迫频繁地置换Cache中的数据,延长了任务的执行时间,导致任务集不可调度,并且降低了系统的整体性能。
图1A显示在多核处理器环境下,并发任务数量与共享Cache丢失率之间的关系。当4个任务并发执行时,Cache丢失数显著高于2个任务并发执行与单个任务执行时的情况。这说明Cache丢失数随着并发任务数量的增加而增加。图1B说明了任务单独执行和并发执行时Cache丢失的增加情况,当实时检测工具任务与art程序和gzip程序并发执行时Cache丢失数分别增加了360%和120%。
为了解决实时系统中的共享Cache访问冲突的问题,Cache划分,Cache感知的实时线程调度算法等技术已成为实时系统领域的研究热点。然而,这些技术并没有对共享Cache冲突进行预测、分析与评价。而共享Cache冲突的预测与分析则是Cache划分与Cache感知的实时调度的先决条件。因此,一些共享Cache的分析与评价模型应运而生。如:StatCache模型根据程序单独执行时的复用距离,可以预测该程序在不同Cache容量下的失效率。但是StatCache模型为降低模型的复杂度而假设Cache的替换策略为Random策略。StatShare模型对StatCache模型进一步改造,使其能够适用于多核处理器平台,分析了共享Cache对多个并发任务的影响。但是,该模型依然使用简单Random替换策略。Prob模型支持LRU的Cache替换策略,根据程序独立运行时的共享Cache访问序列,获得在多个程序并发执行的情况下,由于Cache访问冲突而造成的Cache失效率。然而,该模型依赖于特定的硬件,并且使用数学期望代替随机变量,降低了预测的精度。现有的Cache冲突预测与分析模型大多面向单核处理器,虽然一些模型通过改造适应了多核处理器的计算机系统,然而仍存在精度低,性能参数少等缺点。
发明内容
针对现有的Cache冲突预测方法的不足,本发明要解决的技术问题是针对多核处理器共享Cache体系结构和最广泛应用的LRU Cache替换策略,对多个并发任务访问共享Cache行为的预测并能够对并发任务的Cache空间占用率,失效率和Cache访问冲突的概率等方面进行评价。
本发明为实现上述目的所采用的技术方案是:面向多核处理器的共享Cache冲突预测方法,包括以下步骤:
获取任务独立执行时的共享Cache静态复用距离;
根据各任务的共享Cache静态复用距离,确定多核处理器环境下并发任务的共享Cache状态;
建立模型参数;
计算模型得到观察值向量;
根据观察值向量预测任务的Cache空间占用率,失效率和并发任务间发生Cache访问冲突的概率。
所述共享Cache状态为在LRU替换策略下的共享Cache状态,记为S(L(1,1),L(1,2)......L(i,j)),其中,元组L(i,j)表示任务i占共享Cache中第j组位置,0≤i≤任务总数,0≤j≤共享Cache相联度。
所述模型参数包括:
内存中所有任务的并发度:在内存中共驻有M个任务,而这些任务的并发度为M;
N+1个计数器:在LRU替换策略下,命中的Cache访问计数,记为C(1),C(2)......C(N);失效的Cache访问计数C(N+1),记为C(>N),即公式(1)
其中,i为内存中并发的任务的标号;
状态间的转移矩阵为A:由状态转移概率构成MN×MN的状态转移矩阵,第i行第j列元素为aij,意义是从状态Si到Sj的状态转移概率。
观察概率B:Cache访问观察概率B{bj(k)},bj(k)表示在状态j时,模型输出符号ok的概率为bj(τ)=P(ok|j)1≤k≤τ,1≤j≤MN;
初始状态概率分布π:系统初始时,共享Cache各状态的概率。
所述状态间的转移矩阵为A由MN×MN个状态转移概率
构成,其中Afi表示任务i平均每周期发生Cache访问的概率,
其中Execution cycle count是任务的执行周期计数。
所述观察概率B由正则Markov链性质及观察概率概念得到,
求解bi得到观察概率,其中b为B的第i行行向量。
所述计算模型得到观察值向量的步骤具体为:
设t=1,按照初始状态概率分布π,选择一个初始状态S1=Si;
按照状态i输出符号的概率分布bi(k),选择t时刻输出值ok;
按照状态转移概率分布aij选择一个后继状态St+1=Sj;
若t<T,令t=t+1,并且转移到本算法步骤的第2步继续执行,否则结束;
每发生一次Cache访问就能确定一个Cache观察序列值,最终模型输出观察序列向量O(o1,o2…oτ)。
所述根据观察值向量预测任务的Cache空间占用率通过
计算得出,其中,Spacei(t)={Lx,y|Lx,y∈ot∧x=i},表示任务i所在观察序列t时刻所占共享Cache的大小。
所述根据观察值向量预测任务的失效率具体为,任务i在Cache状态Sj下发生失效的概率为
系统Cache失效率为M个任务失效率的和与任务对Cache访问次数的比值即
所述根据观察值向量预测并发任务间发生Cache访问冲突的概率具体为,任务i与其他任务发生Cache访问冲突的概率为
系统平均每次访问Cache引起任务间Cache访问冲突的概率为
其中,CDFij(Ot)在输出概率为Ot时,任务i和任务j发生冲突的累计值。
所述Cache访问冲突的条件为
本发明具有以下优点:
1.本发明预测精度更高。本发明使用基于Markov链的随机事件模型,避免了传统Cache预测模型使用概率统计方式计算随机共享Cache访问发生概率带来的误差。
2.本发明扩展性较强。现有模型中Prob模型精度最高,本发明相比Prob模型扩展性更强,因为Prob模型现在只建模了两个线程使用共享Cache的情况,当两个以上线程使用共享Cache时,需要从计算循环访问序列重新建模,而此时模型随机变量的数量随着任务的增加成倍数增加,模型将变得异常复杂。而本模型只是转移矩阵增加,模型步骤不变,因此本发明的扩展性较强。
3.本发明无须额外硬件支持。本发明的输入是任务单独执行时的Cache复用距离,可以通过操作系统读取处理器中共享Cache计数器值做累加得到静态复用距离,除此还可以通过分析离线的Profile和模拟器的模拟执行的方式获取无需硬件支持。而其他模型如Prob模型需要Tag和LRU阵列支持才能在程序执行过程中动态获得循环访问序列。
4.本预测模型功能全面。由于在多核处理器环境下,共享Cache需要为多个核心提供数据,因此情况比单核环境中更为复杂,不能只从任务失效率对Cache进行评价,还需要对任务的Cache占用率和任务间Cache冲突概率等多方面对Cache进行评价。这三个参数相辅相成、互相影响。Cache空间占用率反映了多个任务并发执行时的Cache资源使用情况,从共享Cache的角度分析了并发任务的执行行为;失效率是反映任务和Cache性能的重要指标,从任务性能的角度分析了并发任务的执行行为;任务间冲突反映了任务间互相影响的情况,从并发任务之间的关系角度分析了并发任务的执行情况。
5.本发明应用更加广泛。由于本发明功能更全面,不但可以评价共享Cache和并发任务的性能,还可以为共享Cache划分技术和基于Cache感知的实时调度方法提供重要的参数支持。
附图说明
图1A是不同数量任务并发时系统Cache丢失数示意图;
图1B是检测工具与其他程序并发时共享Cache丢失数对比图;
图2是Cache状态示意图;
图3是状态转移图;
图4是模型计算流程图;
图5HCDM模型与PROM模型的失效率比较示意图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
本发明基于开源虚拟机openVZ平台,模拟多核处理器环境下多个任务并发使用共享Cache的执行情况。
表1实验平台计算单元设置
表2实验平台Cache设置
在Linux+RTAI实时操作系统环境下,设置实时任务rt,rttask,其中程序rt为实时系统检测工具的实时任务,rttask为设置的周期实时任务。选择非实时程序gzip,PyQt4,art,利用这些并发任务模拟了多种类型任务共存的环境。
执行实验步骤:
i.在单核环境中,让2个或4个程序分别独立运行收集静态距离信息。运行程序时应至少运行同一程序2遍用来预热Cache。
ii 并发执行两个程序,使用中断触发的方式当其中之一执行完毕立即中断模拟,生成系统镜像。
iii.以shell方式重启模拟器,读取镜像,加载存储系统的时序模块,清空统计信息。
iv.并发两个任务,统计使用的L2 Cache的性能参数。
v.使用实时系统检测工具,收集真实的L2 Cache参数。
计算流程如图2所示,确定相联度为2的共享Cache中有2个任务有四种状态S1,S2,S3,S4。状态S1的意义是任务1在共享Cache第1组的中,任务1占共享Cache第2组中,依此类推。
将Cache Set的4个状态视为随机序列X,则序列X满足引理1,构成隐马尔科夫模型的正则马尔科夫链,根据隐马尔科夫模型设置其参数,给定模型u=(A,B,π)。
其中,模型的状态转移矩阵计算步骤如下:
状态转移矩阵由MN×MN个状态转移概率决定。2个任务共享相联度为2的Cache状态转移图如图3所示。图中节点表示Cache的状态,边表示状态之间的转移关系,边上的权值表示转移概率。如:由任务2发生Cache命中或失效时状态S1转移到状态S3,没有边从状态S1到达S4表示一次Cache操作无法从状态S1转移到状态S4。
符号Afi表示任务i平均每周期发生Cache访问的概率。故Afi为任务i的Cache访问次数与Cache的执行周期的比值。特别的,当i为0时表示没有任务发生Cache访问操作。因此,Afi为式(2)所示,其中Execution cycle count是任务的执行周期计数。当Cache访问发生时,Cache Set的状态发生转移。
如果任务Cache命中,Cache状态不发生状态Si到状态Sj的改变i=j,转移概率aij为发生Cache访问的命中率加上能够由状态Si转移到状态Sj的Cache访问发生概率的总和。当发生Cache失效时,Si转移到状态Sj,其中i≠j,转移概率aij为状态Si转移到状态Sj的Cache访问发生概率的总和。如果状态之间不能发生转移则转移概率为0。如公式(3)所示。
可以得出,由状态转移图和公式得出任务数为2相联度为2的共享Cache状态转移概率矩阵为:
模型的观察概率:
若A为正则Markov链对应的状态转移矩阵,则随着n的渐增趋近于有限矩阵B,并且B每行具有相同维数的行向量b。若A为正则Markov链对应的状态转移矩阵,设b为B的任意行向量,则bA=b。由于,隐马尔科夫模型是2阶正则Markov链,转移矩阵A为正则Markov链对应的状态阵则b可求。并且,由观察概率概念可知因此,对于图所示的Cache状态转移图,其Cache set状态转移概率矩阵为A,则状态输出概率向量可以通过求解方程组的非平凡解获得:
方程组(5)的秩为4小于方程组方程数,所以该方程组存在唯一解,通过解方程获得输出概率向量B。
模型的初始状态概率分布:
计算机系统处于初始正常执行程序时Cache的各状态的概率,可由调度算法分析具体任务集的调度情况而确定Cache初始状态。也可以通过模拟实验或分析离线Profile的方式得到初始状态,本发明根据分析模拟平台的离线Profile的得出初始状态为。
根据流程图所示产生观察序列向量O(o1,o2…oτ)。根据观察序列向量使用本专利发明内容中所示计算公式,计算各任务的Cache占用率,并发任务的失效率和任务间的Cache冲突概率。得出表3预测值。
表3模型预测值与真实值比较
从表3中可以看出,模型预测两个任务并发执行时精度较高,空间占用率的平均误差为4.4%,失效率的平均误差为3.8%,而系统平均每次访问Cache引起任务间冲突概率的平均误差约为6.15%。系统并发4个任务时模型预测误差增大,空间占用率误差均值为6%,失效率的误差均值为7.8%,冲突率误差均值为8.9%。任务数增加或Cache相连度增加引起状态集几何倍数增长,状态转移矩阵急剧增大是误差增大的主要原因。因此,可以借鉴隐马尔科夫模型的状态压缩方法[7]使得模型的状态转移矩阵压缩变小提高模型精度。
传统的Cache预测模型中PROB模型的精度最高,而PROB模型只预测了任务的失效率和由于其他任务引起的额外失效率,因此本模型只与PROB对比失效率预测的准确性。
图4给出了多个程序并发执行时,HCDM模型和Prob模型对失效率的预测值和实际值的比较。比较得出,系统并行2个任务时,HCDM模型更接近真实值,其平均误差为3.8%精确于PROB的平均误差4.9%。而当4个任务并发时HCDM模型精确度小于PROB模型,其误差分别为7.8%和5.9%。由于PROB模型使用的数学期望代替的随机过程,这样不会带来转移矩阵的增大,所以在并发多个任务时PROB模型预测更精确。如图5所示,曲线HC为本发明。
Claims (10)
1.一种面向多核处理器的共享Cache冲突预测方法,其特征在于,包括以下步骤:
获取任务独立执行时的共享Cache静态复用距离;
根据各任务的共享Cache静态复用距离,确定多核处理器环境下并发任务的共享Cache状态;
建立模型参数;
计算模型得到观察值向量;
根据观察值向量预测任务的Cache空间占用率,失效率和并发任务间发生Cache访问冲突的概率。
2.根据权利要求1所述的面向多核处理器的共享Cache冲突预测方法,其特征在于,所述共享Cache状态为在LRU替换策略下的共享Cache状态,记为S(L(1,1),L(1,2)......L(i,j)),其中,元组L(i,j)表示任务i占共享Cache中第j组位置,0≤i≤任务总数,0≤j≤共享Cache相联度。
3.根据权利要求1所述的面向多核处理器的共享Cache冲突预测方法,其特征在于,所述模型参数包括:
内存中所有任务的并发度:在内存中共驻有M个任务,而这些任务的并发度为M;
N+1个计数器:在LRU替换策略下,命中的Cache访问计数,记为C(1),C(2)......C(N);失效的Cache访问计数C(N+1),记为C(>N),即公式(1)
其中,i为内存中并发的任务的标号;
状态间的转移矩阵为A:由状态转移概率构成MN×MN的状态转移矩阵,第i行第j列元素为aij,意义是从状态Si到Sj的状态转移概率。
观察概率B:Cache访问观察概率B{bj(k)},bj(k)表示在状态j时,模型输 出符号ok的概率为bj(τ)=P(ok|j)1≤k≤τ,1≤j≤MN;
初始状态概率分布π:系统初始时,共享Cache各状态的概率。
6.根据权利要求1所述的面向多核处理器的共享Cache冲突预测方法,其特征在于,所述计算模型得到观察值向量的步骤具体为:
设t=1,按照初始状态概率分布π,选择一个初始状态S1=Si;
按照状态i输出符号的概率分布bi(k),选择t时刻输出值ok;
按照状态转移概率分布aij选择一个后继状态St+1=Sj;
若t<T,令t=t+1,并且转移到本算法步骤的第2步继续执行,否则结 束;
每发生一次Cache访问就能确定一个Cache观察序列值,最终模型输出观察序列向量O(o1,o2…oτ)。
7.根据权利要求1所述的面向多核处理器的共享Cache冲突预测方法,其特征在于,所述根据观察值向量预测任务的Cache空间占用率通过
计算得出,其中,Spacei(t)={Lx,y|Lx,y∈ot∧x=i},表示任务i所在观察序列t时刻所占共享Cache的大小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110382674.9A CN103136113B (zh) | 2011-11-25 | 2011-11-25 | 面向多核处理器的共享Cache冲突预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110382674.9A CN103136113B (zh) | 2011-11-25 | 2011-11-25 | 面向多核处理器的共享Cache冲突预测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103136113A true CN103136113A (zh) | 2013-06-05 |
CN103136113B CN103136113B (zh) | 2016-01-13 |
Family
ID=48495963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110382674.9A Active CN103136113B (zh) | 2011-11-25 | 2011-11-25 | 面向多核处理器的共享Cache冲突预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103136113B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426978A (zh) * | 2014-09-04 | 2016-03-23 | 中兴通讯股份有限公司 | 一种业务并发性预测方法与预测系统 |
TWI578327B (zh) * | 2014-09-18 | 2017-04-11 | 上海兆芯集成電路有限公司 | 診斷快取記憶體回寫之處理器及其操作方法、以及利用其操作方法控制處理器之電腦程式產品 |
CN107145453A (zh) * | 2017-06-12 | 2017-09-08 | 上海优刻得信息科技有限公司 | 一种缓存失效率的预测方法、装置、可读介质和设备 |
CN109445914A (zh) * | 2018-09-25 | 2019-03-08 | 佛山科学技术学院 | 一种面向并发的调度方法及系统 |
CN111753258A (zh) * | 2020-06-10 | 2020-10-09 | 燕山大学 | 基于实时数据监测的机械设备剩余寿命预测方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7487317B1 (en) * | 2005-11-03 | 2009-02-03 | Sun Microsystems, Inc. | Cache-aware scheduling for a chip multithreading processor |
US20100107142A1 (en) * | 2008-10-24 | 2010-04-29 | Microsoft Corporation | Scalability analysis for server systems |
CN101719105A (zh) * | 2009-12-31 | 2010-06-02 | 中国科学院计算技术研究所 | 一种多核系统中对内存访问的优化方法和系统 |
-
2011
- 2011-11-25 CN CN201110382674.9A patent/CN103136113B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7487317B1 (en) * | 2005-11-03 | 2009-02-03 | Sun Microsystems, Inc. | Cache-aware scheduling for a chip multithreading processor |
US20100107142A1 (en) * | 2008-10-24 | 2010-04-29 | Microsoft Corporation | Scalability analysis for server systems |
CN101719105A (zh) * | 2009-12-31 | 2010-06-02 | 中国科学院计算技术研究所 | 一种多核系统中对内存访问的优化方法和系统 |
Non-Patent Citations (2)
Title |
---|
ERIK BERK ER AL.: "StatCache: A Probabilistic Approach to Efficient and Accurate Data Locality Analysis", 《IEEE INTERNATIONAL SYMPOSIUM ON PERFORMANCE ANALYSIS OF SYSTEMS AND SOFTWARE》 * |
付雄 等: "基于复用距离的cache失效率分析", 《小型微型计算机系统》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426978A (zh) * | 2014-09-04 | 2016-03-23 | 中兴通讯股份有限公司 | 一种业务并发性预测方法与预测系统 |
TWI578327B (zh) * | 2014-09-18 | 2017-04-11 | 上海兆芯集成電路有限公司 | 診斷快取記憶體回寫之處理器及其操作方法、以及利用其操作方法控制處理器之電腦程式產品 |
CN107145453A (zh) * | 2017-06-12 | 2017-09-08 | 上海优刻得信息科技有限公司 | 一种缓存失效率的预测方法、装置、可读介质和设备 |
CN109445914A (zh) * | 2018-09-25 | 2019-03-08 | 佛山科学技术学院 | 一种面向并发的调度方法及系统 |
CN111753258A (zh) * | 2020-06-10 | 2020-10-09 | 燕山大学 | 基于实时数据监测的机械设备剩余寿命预测方法 |
CN111753258B (zh) * | 2020-06-10 | 2022-04-01 | 燕山大学 | 基于实时数据监测的机械设备剩余寿命预测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103136113B (zh) | 2016-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Nagasaka et al. | High-performance and memory-saving sparse general matrix-matrix multiplication for nvidia pascal gpu | |
CN103136113B (zh) | 面向多核处理器的共享Cache冲突预测方法 | |
CN103543987B (zh) | 用于高效并行运行的反馈驱动调节 | |
JP6784780B2 (ja) | 大規模再生可能エネルギーのデータについて確率モデルを構築する方法 | |
CN110187990A (zh) | 一种基于模式转移的虚拟机混合备用动态可靠性评估方法 | |
CN113762486B (zh) | 换流阀故障诊断模型的构建方法、装置和计算机设备 | |
CN107247651A (zh) | 云计算平台监测预警方法和系统 | |
CN108052387B (zh) | 一种移动云计算中的资源分配预测方法及系统 | |
CN107273302A (zh) | 管理工作负载存储器分配的方法、设备和系统 | |
CN107908536B (zh) | Cpu-gpu异构环境中对gpu应用的性能评估方法及系统 | |
CN104484548B (zh) | 一种改进的序贯故障诊断策略优化方法 | |
CN107632590A (zh) | 一种基于优先级的底事件排序方法 | |
CN102360333B (zh) | 基于hisqm排队模型考虑故障排除过程的构件软件可靠性分析方法 | |
CN106681830B (zh) | 一种任务缓存空间监测方法和装置 | |
Barnat et al. | A time-optimal on-the-fly parallel algorithm for model checking of weak LTL properties | |
CN103942315B (zh) | 一种基于装载因子的缓存数据预加载与替换方法 | |
Zhu et al. | Component rearrangement and system replacement for a system with stochastic degradation processes | |
Li et al. | An experimental study on deep learning based on different hardware configurations | |
CN111414961A (zh) | 一种基于任务并行的细粒度分布式深度森林训练方法 | |
CN118193978A (zh) | 一种基于dqn深度强化学习算法的汽车路障规避方法 | |
Vu et al. | High-performance mesoscopic traffic simulation with GPU for large scale networks | |
CN103455364B (zh) | 一种多核环境并行程序Cache性能在线获取系统及方法 | |
CN100420209C (zh) | 自动进行方案对比的可信网络仿真系统 | |
Cui et al. | Modeling the performance of MapReduce under resource contentions and task failures | |
Meyer et al. | Performance modeling of heterogeneous 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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |