OpenMP を使用して C++ で単純な並列プログラムを作成しています。私は Windows 7 と Microsoft Visual Studio 2010 Ultimate で作業しています。OpenMP をサポートするために、プロジェクトの Language プロパティを「Yes/OpenMP」に変更しました。
ここでコードを提供します:
#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;
}
OpenMPx
をomp_set_num_threads(x);
使っても使わなくても計算時間は同じで7秒くらいです。
誰かが問題を知っていますか?