一种基于重用距离的数据亲缘性分析方法技术

技术编号:13502670 阅读:194 留言:0更新日期:2016-08-10 00:23
本发明专利技术公开了一种基于重用距离的数据亲缘性分析方法,根据所有不相同的变量地址的重用距离序列的集合计算出每个变量地址重用距离序列中重用距离值的个数,根据所有不相同的变量地址的重用距离序列的集合得到该集合的项的集合,根据项的集合和相应的公式得到所有变量地址的重用距离序列集合的序列元素的集合,再根据相应的公式得到每个变量地址重用距离序列的序列元素的集合。使用n维向量表示每个变量地址重用距离序列的序列元素的集合对所有变量地址的重用距离序列的序列元素的包含关系,最后根据公式计算任意两个变量地址的数据亲缘性。本发明专利技术通过分析程序中变量之间的关系,为数据布局优化提供指导,从而提高cache命中率,优化程序性能。

【技术实现步骤摘要】

本专利技术属于计算机程序优化
,特别涉及了一种数据亲缘性分析方法。
技术介绍
在过去几十年的技术发展中,相对于内存存取速度,CPU的计算性能已经取得了明显改善。1982专利技术的英特尔80286处理器处理一个指令操作延迟320ns和内存访问延迟225ns,而英特尔Corei7处理器只有4ns的操作延迟和37ns内存访问延迟,这说明处理器操作延迟和内存访问延迟已经不在一个数量级了。在这两个处理器的处理吞吐量峰值和内存带宽峰值方面,英特尔80286处理器是2MIPS和13MBytes/sec,英特尔Corei7处理器是50000MIPS和16000MBytes/sec,所以这两个处理器吞吐量峰值的比值和内存访问带宽峰值的比值也不在一个数量级。因为处理器的操作延迟与吞吐量和内存访问延迟与访问带宽之间的差距,所以现代计算机体系结构中广泛采用cache来降低这种影响。现在个人电脑和工作站中使用的cache块大小至少64个字节,如果每个cache块中只有很少的数据能命中,那么cache块中的其他数据就起不到预取的作用,cache中数据起不到预取的作用时形成的cache失效会引起较长时间的内存存取,最终影响程序的性能。实际中,cache能否有效地利用取决于程序局部性和数据的重用模式。重用距离是程序局部性的度量标准之一,但重用距离分析具有较高的时空代价,目前在精确分析程序数据的重用距离的各种算法中,最好的时间和空间复杂度分别为O(NlogM)和O(M),其中N和M分别为访问数据的次数和访问数据集的大小。分析的复杂度仍然很高,并且N和M都与程序及其输入相关;当M比较大,如达到上亿时,很容易导致系统物理内存甚至32位地址空间溢出。利用重用距离分析算法可以得到程序中变量的重用距离序列,我们把变量之间的相关性定义为数据亲缘性,数据亲缘性分析其实就是利用变量的重用距离序列来分析变量之间的相关性,如果这两个变量的亲缘性比较好,则表示这两个变量之间的空间局部性较好,相互临近访问的概率很大,这样就可以把这两个变量进行内存布局优化来提高程序的空间局部性,从而提高cache命中率,所以研究数据亲缘性分析方法对提高程序的性能具有重要意义。
技术实现思路
为了解决上述
技术介绍
提出的技术问题,本专利技术旨在提供一种基于重用距离的数据亲缘性分析方法,通过分析程序中变量之间的关系,为数据布局优化提供指导,从而提高cache命中率,优化程序性能。为了实现上述技术目的,本专利技术的技术方案为:一种基于重用距离的数据亲缘性分析方法,包括以下步骤:(1)定义程序中按访问时间顺序形成的变量地址序列A=a1a2...ax...ay...an,其中,n表示程序中按访问时间顺序形成的变量地址序列的长度,且序列A中存在同一个变量地址在不同时间被访问,即ax=ay,x≠y;(2)根据序列A得到程序中所有不相同的变量地址集合AD={a1,a2,...,az,...am本文档来自技高网
...

【技术保护点】
一种基于重用距离的数据亲缘性分析方法,其特征在于,包括以下步骤:(1)定义程序中按访问时间顺序形成的变量地址序列A=a1a2...ax...ay...an,其中,n表示程序中按访问时间顺序形成的变量地址序列的长度,且序列A中存在同一个变量地址在不同时间被访问,即ax=ay,x≠y;(2)根据序列A得到程序中所有不相同的变量地址集合AD={a1,a2,...,az,...am},其中,az∈A,m表示程序中所有不相同的变量地址的个数;(3)根据重用距离的定义、序列A以及集合AD,得到程序中所有不相同的变量地址的重用距离序列集合AR={ar1,ar2,...,ari,...,arm},其中,ari表示变量地址ai的重用距离序列,ai∈AD,ai,k表示重用距离序列ari中的第k个重用距离值,si表示重用距离序列ari的长度;(4)根据集合AR得到所有不相同的变量地址的重用距离序列的长度集合NA={na1,na2,...,nai,...,nam},其中,nai=si,1≤i≤m,si是变量地址ai的重用距离序列ari的长度;(5)定义集合L={a1,a2,...,ar,...,au}表示集合AR的项的集合,集合AR的项的集合是指把集合AR中所有重用距离序列中不相同的重用距离值取出来组成一个新集合,其中,ar∈ari,u表示集合L中元素的个数;(6)定义集合AR的所有序列元素集合SE={se1,se2,...,set,...,seq},其中,set=ajak,且aj∈L,ak∈L,j≠k;(7)定义变量地址ai的重用距离序列ari的所有序列元素集合SE(ari),其中,集合SE(ari)={se(ari)|se(ari)=ai,jai,k,ai,j∈ari,ai,k∈ari,j<k,1≤i≤m};(8)使用q维向量Vi={vi1,vi,2,...,vi,t,...,vi,q}表示集合SE(ari)中的序列元素对集合SE中的序列元素的包含关系,其中,q是集合SE中序列元素的个数;(9)对任意的i、j,i≠j并且1≤i,j≤m,计算重用距离序列ari和重用距离序列arj所共有的序列元素的个数;(10)计算重用距离序列ari和重用距离序列arj中的全部序列元素的个数;(11)根据重用距离序列ari和重用距离序列arj所共有的序列元素的个数和重用距离序列ari和重用距离序列arj中的全部序列元素的个数,得到变量地址ai和aj之间的数据亲缘性。...

【技术特征摘要】
1.一种基于重用距离的数据亲缘性分析方法,其特征在于,包括以下步骤:
(1)定义程序中按访问时间顺序形成的变量地址序列A=a1a2...ax...ay...an,其中,n
表示程序中按访问时间顺...

【专利技术属性】
技术研发人员:付雄朱广中邓松程春玲王俊昌
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1