免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1711 | 回复: 3
打印 上一主题 下一主题

OpenMP的问题,难道我的cpu不是双核的? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-12 19:12 |只看该作者 |倒序浏览
我的CPU的信息如下:
Intel(R) Pentium(R) Dual CPU E2160 @ 1.80GHz 1.80GHz

我在网上找到的这段代码,来执行的
#include <stdio.h>
#include <omp.h>
#include <time.h>

void test()
{
&nbsp;&nbsp;&nbsp;&nbsp;int a = 0;
&nbsp;&nbsp;&nbsp;&nbsp;clock_t t1 = clock();
&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i < 100000000; i++)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a = i+1;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;clock_t t2 = clock();
&nbsp;&nbsp;&nbsp;&nbsp;printf("Time = %d\n", t2-t1);
}

int main(int argc, char* argv[])
{
&nbsp;&nbsp;&nbsp;&nbsp;clock_t t1 = clock();
#pragma omp parallel for
&nbsp;&nbsp;&nbsp;&nbsp;for ( int j = 0; j < 2; j++ ){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test();
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;clock_t t2 = clock();
&nbsp;&nbsp;&nbsp;&nbsp;printf("Total time = %d\n", t2-t1);

&nbsp;&nbsp;&nbsp;&nbsp;test();
&nbsp;&nbsp;&nbsp;&nbsp;return 0;
}


最后执行的结果为:
Time = 750
Time = 766
Total time = 766
Time = 453

但按照原作者的执行结果是这样的:
Time = 297
Time = 297
Total time = 297
Time = 297

我怀疑我的cpu有问题了呀……
如果是真的双核的话,上面两个Time应该与最后一个Time的值差不多吧……

我的环境: Vs2005 Sp1
系统: WinXP sp2

谢谢了!

论坛徽章:
0
2 [报告]
发表于 2009-08-12 19:12 |只看该作者
对了,原文的地址在这儿:

http://blog.csdn.net/drzhouweimi ... /08/28/1131537.aspx

论坛徽章:
0
3 [报告]
发表于 2009-08-12 19:29 |只看该作者
刚刚看到这个函数:
omp_get_num_procs();

可以返回cpu核的个数,在我机子上返回的是2……

论坛徽章:
0
4 [报告]
发表于 2009-08-13 08:58 |只看该作者
为什么前两个Time的值比最后一个Time的值大很多?

这个仍然不明白…………
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP