VS2012中运用OpenMP测试并行处理效率
#include<omp.h>
#include<time.h>
int _tmain(int argc, _TCHAR* argv[])
{
clock_t x=clock();
#pragma omp parallel for
for (int i=0;i<10;++i)
{
int a=0;
for (int j=0;j<1000000000;j++)
{
a++;
}
}
clock_t y=clock();
cout<<endl;
cout<<(y-x)<<endl;
system("pause");
return 0;
}
以上仅是一简单测试源码。
硬件配置:四核CPU; OS:Win8; 编程平台:VS2012
测试结果:1.串行:加注释时,编译后运行显示执行时间为22958ms;
2.并行:去掉注释时,编译运行显示执行时间为7390ms;
结果分析:虽然是四核电脑但

在VS2012环境下,通过OpenMP进行并行处理效率测试。四核CPU的Win8系统上,串行执行耗时22958ms,而并行执行耗时7390ms,尽管并未达到四倍速度,但依然体现出并行处理的显著优势,约为3.11倍。并行时CPU核心并非全用于计算,且线程创建销毁有额外开销。测试旨在为将串行FDTD算法转化为并行做准备。
最低0.47元/天 解锁文章
35

被折叠的 条评论
为什么被折叠?



