openMP VS2017不起作用

时间:2018-02-28 12:38:32

标签: c++ openmp

当我尝试在我的VS 2017 c ++程序中使用openMP时,我转到

属性 - > C / C ++ - >允许OpenMP(或类似的东西):是。

然后,我去了我的主要,只写:

void main(){
   #pragma omp parallel for
   for (int n = 0; n<10; ++n)
   {
        printf(" %d", n);
   }
   printf(".\n");
 }

在示例中找到here

预期结果是(在该示例中):0 5 6 7 1 8 2 3 4 9。 意思是使用并行性。 在我的情况下,它每次打印0 1 2 3 4 5 6 7 8 9.(即使我使用#pragma omp parallel num_threads(8))意味着没有使用并行性。我有什么遗失的吗?

1 个答案:

答案 0 :(得分:1)

前导括号{不能位于#pragma omp parallel行,这是预处理程序指令。使用

#pragma omp parallel
{
   std::cout << "Hello World\n";
}

代替。

请注意,如果没有此语法,在没有OpenMP支持的情况下编译时程序将无效(忽略#pragma omp指令)。