I am writing simple parallel program in C++ using OpenMP.
I am working on Windows 7 and on Microsoft Visual Studio 2010 Ultimate.
I changed the Language property of the project to “Yes/OpenMP” to support OpenMP
Here I provide the code:
#include <iostream>
#include <omp.h>
using namespace std;
double sum;
int i;
int n = 800000000;
int main(int argc, char *argv[])
{
omp_set_dynamic(0);
omp_set_num_threads(4);
sum = 0;
#pragma omp for reduction(+:sum)
for (i = 0; i < n; i++)
sum+= i/(n/10);
cout<<"sum="<<sum<<endl;
return EXIT_SUCCESS;
}
But, I couldn’t get any acceleration by changing the x in omp_set_num_threads(x);
It doesn’t matter if I use OpenMp or not, the calculating time is the same, about 7 seconds.
Does Someone know what is the problem?
Your
pragmastatement is missing theparallelspecifier:Sequential:
Parallel:
Here’s a version that some speedup with Hyperthreading. I had to increase the # of iterations by 10x and bump the datatypes to
long long:Threads: 1
Threads: 2
Threads: 4
Threads: 8