Я экспериментирую с OpenMP. Я написал код для проверки его производительности. На 4-ядерном процессоре Intel с процессором Kubuntu 11.04 следующая программа, скомпилированная с OpenMP, примерно в 20 раз медленнее, чем программа, скомпилированная без OpenMP. Почему?
Я скомпилировал его с помощью g++ -g -O2 -funroll-loops -fomit-frame-pointer -march = native -fopenmp
#include <math.h>
#include <iostream>
using namespace std;
int main ()
{
long double i=0;
long double k=0.7;
#pragma omp parallel for reduction(+:i)
for(int t=1; t<300000000; t++){
for(int n=1; n<16; n++){
i=i+pow(k,n);
}
}
cout << i<<"\t";
return 0;
}