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算法转化为并行"而努力的~!