实验八cache和程序访问的局部性

实验八cache和程序访问的局部性

ID:31026360

大小:68.50 KB

页数:3页

时间:2019-01-05

实验八cache和程序访问的局部性_第1页
实验八cache和程序访问的局部性_第2页
实验八cache和程序访问的局部性_第3页
资源描述:

《实验八cache和程序访问的局部性》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验八cache和程序访问的局部性201411011120高敏一、实验目的通过实际程序的执行结果,了解程序访问的局部性对带有cache的计算机系统性能的影响。二、实验要求在main函数屮定义一个16*16二维整形数组,然后分别调用程序A和程序B对二维数组中的元素进行求和。在代码中增加计时函数,比较程序A和程序B执行时间是否有差异。程序段Adoublesum_array_rows(doublea[16][16]){doublesum=0;for(intr=0;r<16;r++){for(intc=0;c<16

2、;c++){sum+=a[r][c];}}returnsum;}程序Bdoublesum_array_cols(doublea[16][16]){doublesum二0;for(intc=0;c<16;c卄){for(intr=0;r<16;r++){sum+二a[r][c];}}returnsum;}三、实验报告1、给出源程序(文本文件)和执行结果。程序Aintmain(intargc,constchar*argv[]){doublesum;intcount;doubleTotal_time;clock_

3、tstart,finish;doublea[16][16];inti,j;for(i=0;i<16;i++){for(j=0;j<16;j++){}}start=clock();for(count=0;count<1000;counl++)sum=sum_aiTay_rows(a);finish=clock();Total_time=(double)(finish-start)/CLOCKS_PER_SEC;printf("A=%fseconds",Total_time);return0;)运行结果A=

4、8.000788secondsProgramendedwithexitcode:0程序B:intmain(intargc,constchar*argvfl){doublesum;intcount;doubleTotal_time;clock_tstart,finish;doublea[16][16];inti,j;for(i=0;i<16;i++){for(j=0;j<16;j++){afilUM;}}start=clock();for(count=0;count<1000;count++)sum=sum_

5、array_cols(a);finish=clock();Total_time=(double)(finish-start)/CLOCKS_PER_SEC;printf(”A=%fseconds'n”,Total_time);return0;}运行结果A=8.000790secondsProgramendedwithexitcode:0执行时间有差异,计算二维数组和时,先算行的计算时间比先算列的时间更短。2、对实验结果进行分析,说明局部数据块大小、数组访问顺序等和执行时间之间的关系。在局部数据块大小相同情况

6、下,数组访问顺序按照行优先访问的顺序,执行吋间更短。因为计算机内存是一维的,多维数组的元索应排成线性序列后存人存储器。数组一般不做插入和删除操作,即结构中元素个数和元素间关系不变化。一般采用顺序存储方法表示数组。C语言中,数组按行优先顺序存储。即将数组元素按行向量排列,第i+1个行向量紧接在第i个行向量后面。二维数组Amn的按行优先存储的线性序列为:al1,al2,aIn,a21,a22,…,a2n,,ami,am2,…,amn

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。