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

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

#include
#include
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<


以上仅是一简单测试源码。

硬件配置:四核CPU;  OS:Win8; 编程平台:VS2012

测试结果:1.串行:加注释时,编译后运行显示执行时间为22958ms;

               2.并行:去掉注释时,编译运行显示执行时间为7390ms;

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

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

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

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

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

 

 

你可能感兴趣的:(Project_3DFDTD)