// OpenMP1.cpp : 定义控制台应用程序的入口点。
//使用reduction子句方法进行求和。
#include "stdafx.h"
#include <omp.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
omp_set_num_threads(2);
long long sum=0;
clock_t t1=clock();
#pragma omp parallel for reduction(+:sum)
for(long i=1;i<=1000000000;i++)
sum=sum+i;
clock_t t2=clock();
printf("sum=%lld\n",sum);
printf("parallel time=%d\n",(t2-t1));
sum=0;
t1=clock();
for(long i=1;i<=1000000000;i+=1)
sum=sum+i;
t2=clock();
printf("sum=%lld\n",sum);
printf("serial time=%d\n",(t2-t1));
system("pause");
return 0;
}
运行结果:
分析:
加速比为:2294/1154=1.988