VS2012中运用OpenMP测试并行处理效率

来源:互联网 发布:asp 防sql注入 编辑:程序博客网 时间:2024/05/17 22:02

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;

结果分析:虽然是四核电脑但是并行时的运行时间,并不是串行时的四倍,而是约3.11倍!其中会有以下的几个原因:

               1.并行运行时,系统本身也有一部分运算,故而四个CPU核心并非一直全部投入上述的计算中;

               2.并行是多线程的,线程的创建以及销毁都是需要一定的时间的;

总结:由此可见,并行带来的优势还是十分巨大的!!!

此篇主要是为"任务:串行FDTD算法转化为并行"而努力的~!

 

 

0 0