测试一下这个程序的运行时间

intel_yolanda 2010-05-14 01:51:33
加精
请分别用下列选项或编译器编译下面的程序,并分别给出运行时间。
1. icl /O2
2. icl /O2 /Qvec-
3. cl /O2

参考运行平台:Core 2 Duo CPU, Win Xp, Visual Studio 2005/2008, Intel(R) C++ Compiler 11.1.065

我会在一周后给出我的测试结果,大家也可以考虑一下同样的程序在不同的编译器和选项下,运行时间会有多大差别,原因在哪里呢?

// Simple minded matrix multiply
#include <stdio.h>
#include <time.h>

#define NUM 1024

static double a[NUM][NUM], b[NUM][NUM], c[NUM][NUM];

//routine to initialize an array with data
void init_arr(double row, double col, double off, double a[][NUM])
{
int i,j;

for (i=0; i< NUM;i++) {
for (j=0; j<NUM;j++) {
a[i][j] = row*i+col*j+off;
}
}
}

// routine to print out contents of small arrays
void print_arr(char * name, double array[][NUM])
{
int i,j;

printf("\n%s\n", name);
for (i=0;i<NUM;i++){
for (j=0;j<NUM;j++) {
printf("%g\t",array[i][j]);
}
printf("\n");
}
}

// matrix multiply routine
void multiply_d(double a[][NUM], double b[][NUM], double c[][NUM])
{
int i,j,k;
double temp;
for(i=0;i<NUM;i++) {
for(j=0;j<NUM;j++) {
for(k=0;k<NUM;k++) {
c[i][j] = c[i][j] + a[i][k] * b[k][j];
}
}
}
}

main()
{
clock_t start, stop;
int num;

// initialize the arrays with data
init_arr(3,-2,1,a);
init_arr(-2,1,3,b);

//start timing the matrix multiply code
printf("NUM:%d\n",NUM);
start = clock();
multiply_d(a,b,c);
stop = clock();

// print simple test case of data to be sure multiplication is correct
if (NUM < 5) {
print_arr("a", a);
print_arr("b", b);
print_arr("c", c);
}

// print elapsed time
printf("Elapsed time = %lf seconds\n",
((double)(stop - start)) / CLOCKS_PER_SEC);

}

...全文
976 96 打赏 收藏 转发到动态 举报
写回复
用AI写文章
96 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenxiaojuan_1208 2010-06-03
  • 打赏
  • 举报
回复
up up up up
kate26 2010-06-03
  • 打赏
  • 举报
回复
没有注意过这一点区别,好好学习,顶~~~~~~~~~~~~~~~~~~~~~~~
zhangfk 2010-06-03
  • 打赏
  • 举报
回复
学习,学习
lixia1016 2010-06-03
  • 打赏
  • 举报
回复
看不懂··哎··
qingzn 2010-06-02
  • 打赏
  • 举报
回复
捞积分,捞积分,捞积分
aierda 2010-06-02
  • 打赏
  • 举报
回复
向大家学习!~~
loull 2010-06-02
  • 打赏
  • 举报
回复
看老师用过
显示1 2010-06-02
  • 打赏
  • 举报
回复
学习了
daxiao474 2010-06-01
  • 打赏
  • 举报
回复
学习一下啊 分享中哦 不错哦
arxie 2010-06-01
  • 打赏
  • 举报
回复
学习学习,
jxy008121 2010-06-01
  • 打赏
  • 举报
回复
buxignzinswag s
jxy008121 2010-06-01
  • 打赏
  • 举报
回复
决定是失误造成的
kuangyanan 2010-06-01
  • 打赏
  • 举报
回复
帮你们顶顶
wrqlgd 2010-06-01
  • 打赏
  • 举报
回复
支持一下!虽然目前还不是很懂,不过以后肯定可以达到此高度!
zjAngle 2010-06-01
  • 打赏
  • 举报
回复
。。。
zhangmeeno 2010-06-01
  • 打赏
  • 举报
回复
别无它求~~JF
zyuan1987 2010-06-01
  • 打赏
  • 举报
回复
路过的看看啊
qaz321wsxedc 2010-05-31
  • 打赏
  • 举报
回复
不大清楚,学习学习!
elvintrista 2010-05-31
  • 打赏
  • 举报
回复
帮顶...
zhangzhe19881017 2010-05-31
  • 打赏
  • 举报
回复
这是什么东西啊
加载更多回复(71)

566

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧