CN105677792A - 一种基于重用距离的数据亲缘性分析方法 - Google Patents
一种基于重用距离的数据亲缘性分析方法 Download PDFInfo
- Publication number
- CN105677792A CN105677792A CN201511029801.1A CN201511029801A CN105677792A CN 105677792 A CN105677792 A CN 105677792A CN 201511029801 A CN201511029801 A CN 201511029801A CN 105677792 A CN105677792 A CN 105677792A
- Authority
- CN
- China
- Prior art keywords
- sequence
- reuse distance
- variable
- affinity
- reuse
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种基于重用距离的数据亲缘性分析方法,根据所有不相同的变量地址的重用距离序列的集合计算出每个变量地址重用距离序列中重用距离值的个数,根据所有不相同的变量地址的重用距离序列的集合得到该集合的项的集合,根据项的集合和相应的公式得到所有变量地址的重用距离序列集合的序列元素的集合,再根据相应的公式得到每个变量地址重用距离序列的序列元素的集合。使用n维向量表示每个变量地址重用距离序列的序列元素的集合对所有变量地址的重用距离序列的序列元素的包含关系,最后根据公式计算任意两个变量地址的数据亲缘性。本发明通过分析程序中变量之间的关系,为数据布局优化提供指导,从而提高cache命中率,优化程序性能。
Description
技术领域
本发明属于计算机程序优化技术领域,特别涉及了一种数据亲缘性分析方法。
背景技术
在过去几十年的技术发展中,相对于内存存取速度,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},其中,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之间的数据亲缘性。
在步骤(8)中,向量Vi中的元素
在步骤(9)中,使用|SE(ari)∧SE(arj)|表示重用距离序列ari和arj所共有的序列元素的个数,其中,SE(ari)∧SE(arj)={vi,1∧vj,1,vi,2∧vj,2,...,vi,t∧vj,t,...,vi,q∧vj,q},“∧”表示与运算。
在步骤(10)中,使用|SE(ari)∨SE(arj)|表示重用距离序列ari和arj所包含的全部序列元素的个数,其中,SE(ari)∨SE(arj)={vi,1∨vj,1,vi,2∨vj,2,...,vi,t∨vj,t,...,vi,q∨vj,q},“∨”表示或运算。
在步骤(11)中,变量地址ai和aj之间的数据亲缘性其中,|nai-naj|表示nai和naj相减的绝对值,0<=affinity(ai,aj)<=1,affinity(ai,aj)越接近1说明这两个变量地址数据亲缘性越高,affinity(ai,aj)等于0表示这两个变量地址没有数据亲缘性。
采用上述技术方案带来的有益效果:
本发明较目前主流的数据亲缘性分析方法而言的主要优势在于,现在主流的数据亲缘性分析方法主要有两种:一种是k-means聚类方法,另一种是k%-clustering方法。在k-means方法中,任何具有亲缘性的变量地址的确定不是由它们自己的特征确定,而是由所有其他变量地址的特征决定的。所以k-means方法是相对的数据亲缘性分析方法;在k%-clustering方法中,它可以绝对地比较两个变量地址之间的数据亲缘性,但是要求这两个变量地址的复用距离序列的个数相同,最重要的是不能排除复用距离序列中干扰序列的影响。本方法中的|nai-naj|不必要求变量地址的重用距离序列个数相同,本方法是根据变量地址的重用距离序列的序列元素比较数据亲缘性,可以排除复用距离序列中干扰序列对数据亲缘性结果的影响。
附图说明
图1是本发明的流程图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
如图1所示本发明的基于重用距离的数据亲缘性分析方法,具体步骤如下:
步骤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中的序列元素的包含关系,其中,向量Vi中的元素 q是集合SE中序列元素的个数;
步骤9、对任意的i、j,i≠j并且1≤i,j≤m,计算重用距离序列ari和重用距离序列arj所共有的序列元素的个数|SE(ari)∧SE(arj)|,其中,SE(ari)∧SE(arj)={vi,1∧vj,1,vi,2∧vj,2,...,vi,t∧vj,t,...,vi,q∧vj,q},“∨”表示或运算,
步骤10、计算重用距离序列ari和重用距离序列arj中的全部序列元素的个数|SE(ari)∨SE(arj)|,其中,SE(ari)∨SE(arj)={vi,1∨vj,1,vi,2∨vj,2,...,vi,t∨vj,t,...,vi,q∨vj,q},“∨”表示或运算,
步骤11、根据重用距离序列ari和重用距离序列arj所共有的序列元素的个数和重用距离序列ari和重用距离序列arj中的全部序列元素的个数,得到变量地址ai和aj之间的数据亲缘性其中,|nai-naj|表示nai和naj相减的绝对值。0<=affinity(ai,aj)<=1,affinity(ai,aj)越接近1说明这两个变量地址数据亲缘性越高,affinity(ai,aj)等于0表示这两个变量地址没有数据亲缘性。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (5)
1.一种基于重用距离的数据亲缘性分析方法,其特征在于,包括以下步骤:
(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之间的数据亲缘性。
2.根据权利要求1所述基于重用距离的数据亲缘性分析方法,其特征在于:在步骤(8)中,向量Vi中的元素
3.根据权利要求2所述基于重用距离的数据亲缘性分析方法,其特征在于:在步骤(9)中,使用|SE(ari)∧SE(arj)|表示重用距离序列ari和arj所共有的序列元素的个数,其中,SE(ari)∧SE(arj)={vi,1∧vj,1,vi,2∧vj,2,...,vi,t∧vj,t,...,vi,q∧vj,q},“∧”表示与运算。
4.根据权利要求3所述基于重用距离的数据亲缘性分析方法,其特征在于:在步骤(10)中,使用|SE(ari)∨SE(arj)|表示重用距离序列ari和arj所包含的全部序列元素的个数,其中,SE(ari)∨SE(arj)={vi,1∨vj,1,vi,2∨vj,2,...,vi,t∨vj,t,...,vi,q∨vj,q},“∨”表示或运算。
5.根据权利要求4所述基于重用距离的数据亲缘性分析方法,其特征在于:在步骤(11)中,变量地址ai和aj之间的数据亲缘性其中,|nai-naj|表示nai和naj相减的绝对值,0<=affinity(ai,aj)<=1,affinity(ai,aj)越接近1说明这两个变量地址数据亲缘性越高,affinity(ai,aj)等于0表示这两个变量地址没有数据亲缘性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511029801.1A CN105677792B (zh) | 2015-12-31 | 2015-12-31 | 一种基于重用距离的数据亲缘性分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511029801.1A CN105677792B (zh) | 2015-12-31 | 2015-12-31 | 一种基于重用距离的数据亲缘性分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105677792A true CN105677792A (zh) | 2016-06-15 |
CN105677792B CN105677792B (zh) | 2019-04-19 |
Family
ID=56298379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511029801.1A Active CN105677792B (zh) | 2015-12-31 | 2015-12-31 | 一种基于重用距离的数据亲缘性分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677792B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11210125B2 (en) | 2018-01-19 | 2021-12-28 | Hossein Asadi | Cache allocation to a virtual machine |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060085549A1 (en) * | 2004-10-18 | 2006-04-20 | Srinivas Hasti | Methods, systems and computer program products for dynamically updating session state affinity |
CN101031935A (zh) * | 2004-09-28 | 2007-09-05 | 科塔迪公司 | 用于信息管理的交互型智能系统和方法 |
US20090100289A1 (en) * | 2007-10-15 | 2009-04-16 | Benson Kwuan-Yi Chen | Method and System for Handling Failover in a Distributed Environment that Uses Session Affinity |
EP2741074A1 (en) * | 2012-12-04 | 2014-06-11 | F. Hoffmann-La Roche AG | Device for use in the detection of binding affinities |
-
2015
- 2015-12-31 CN CN201511029801.1A patent/CN105677792B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101031935A (zh) * | 2004-09-28 | 2007-09-05 | 科塔迪公司 | 用于信息管理的交互型智能系统和方法 |
US20060085549A1 (en) * | 2004-10-18 | 2006-04-20 | Srinivas Hasti | Methods, systems and computer program products for dynamically updating session state affinity |
CN1764191A (zh) * | 2004-10-18 | 2006-04-26 | 国际商业机器公司 | 用于动态更新会话状态亲缘性的方法和系统 |
US20090100289A1 (en) * | 2007-10-15 | 2009-04-16 | Benson Kwuan-Yi Chen | Method and System for Handling Failover in a Distributed Environment that Uses Session Affinity |
CN101821993A (zh) * | 2007-10-15 | 2010-09-01 | 国际商业机器公司 | 对使用会话亲缘性的分布式环境中的故障恢复进行处理的方法和系统 |
EP2741074A1 (en) * | 2012-12-04 | 2014-06-11 | F. Hoffmann-La Roche AG | Device for use in the detection of binding affinities |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11210125B2 (en) | 2018-01-19 | 2021-12-28 | Hossein Asadi | Cache allocation to a virtual machine |
Also Published As
Publication number | Publication date |
---|---|
CN105677792B (zh) | 2019-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104200087B (zh) | 用于机器学习的参数寻优及特征调优的方法及系统 | |
CN102799647B (zh) | 网页去重方法和设备 | |
CN109388565B (zh) | 基于生成式对抗网络的软件系统性能优化方法 | |
CN106528647B (zh) | 一种基于cedar双数组字典树算法进行术语匹配的方法 | |
US11288266B2 (en) | Candidate projection enumeration based query response generation | |
CN106557777A (zh) | 一种基于SimHash改进的Kmeans聚类方法 | |
JP6318303B2 (ja) | 並列マージソート | |
CN105359142B (zh) | 哈希连接方法和装置 | |
CN106933954A (zh) | 基于决策树分类算法实现搜索引擎优化技术 | |
Hu et al. | Parallel clustering of big data of spatio-temporal trajectory | |
CN103020319A (zh) | 一种实时移动空间关键字近似Top-k查询方法 | |
CN104537280A (zh) | 基于文本关系相似性的蛋白质交互关系识别方法 | |
CN104615723A (zh) | 查询词权重值的确定方法和装置 | |
CN105677792A (zh) | 一种基于重用距离的数据亲缘性分析方法 | |
CN105550208A (zh) | 基于谱哈希的相似性存储设计方法 | |
CN105654120A (zh) | 一种基于SOM和K-means两阶段聚类的软件负载特征提取方法 | |
Yang et al. | Top k probabilistic skyline queries on uncertain data | |
CN103699687B (zh) | 一种基于枚举的网络实体爬取方法 | |
CN105808631A (zh) | 一种数据依赖的多索引哈希算法 | |
Li et al. | TPCaps: a framework for code clone detection and localization based on improved CapsNet | |
CN107818347A (zh) | Gga数据质量的评定预测方法 | |
CN103106283B (zh) | 去重处理方法及装置 | |
Zhang et al. | Gcmddbscan: Multi-density dbscan based on grid and contribution | |
CN107564289B (zh) | 一种合并交通节点的道路网预处理方法 | |
Choi et al. | Optimization of dominance testing in skyline queries using decision trees |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: No. 66, New Model Road, Gulou District, Nanjing City, Jiangsu Province, 210000 Applicant after: Nanjing Post & Telecommunication Univ. Address before: 210023 9 Wen Yuan Road, Qixia District, Nanjing, Jiangsu. Applicant before: Nanjing Post & Telecommunication Univ. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |