if (OpenMP)

指定是否应执行并行循环或序列化的。

if(expression)

备注

其中,

  • expression
    的集成表达式,则为; 如果计算结果为 true (非零),在并行区域导致代码并行执行。 如果表达式的计算结果为 false (0),并行区域序列化的执行 (由单个线程)。

备注

if 适用于以下指令:

有关更多信息,请参见 2.3 parallel 构造

示例

// omp_if.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>

void test(int val)
{
    #pragma omp parallel if (val)
    if (omp_in_parallel())
    {
        #pragma omp single
        printf_s("val = %d, parallelized with %d threads\n",
                 val, omp_get_num_threads());
    }
    else
    {
        printf_s("val = %d, serialized\n", val);
    }
}

int main( )
{
    omp_set_num_threads(2);
    test(0);
    test(2);
}
  

请参见

参考

OpenMP 子句