我正在使用 OpenMP 在 C++ 中编写简单的并行程序。我正在使用 Windows 7 和 Microsoft Visual Studio 2010 Ultimate。我将项目的 Language 属性更改为“Yes/OpenMP”以支持 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;
}
但是,我无法通过更改x
in来获得任何加速。omp_set_num_threads(x);
不管我是否使用 OpenMp,计算时间都是一样的,大约 7 秒。
有人知道是什么问题吗?