当我尝试在我的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)
)意味着没有使用并行性。我有什么遗失的吗?
答案 0 :(得分:1)
前导括号{
不能位于#pragma omp parallel
行,这是预处理程序指令。使用
#pragma omp parallel
{
std::cout << "Hello World\n";
}
代替。
请注意,如果没有此语法,在没有OpenMP支持的情况下编译时程序将无效(忽略#pragma omp
指令)。