当我尝试在我的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)
)意味着没有使用并行性。有什么我想念的吗?
领先的支架{
不能在#pragma omp parallel
线上,这是一个预处理器指令。使用
#pragma omp parallel
{
std::cout << "Hello World\n";
}
代替。
请注意,如果没有此语法,在没有OpenMP支持的情况下编译时程序将无效(忽略#pragma omp
指令)。