omp_set_nested

使嵌套并行。

void omp_set_nested(
   int val
);

备注

其中,

  • val
    如果非零,启用嵌套并行。 如果零,禁用嵌套并行。

备注

OMP 嵌套并行可打开与 omp_set_nested,或者通过设置 OMP_NESTED 环境变量。

设置 omp_set_nested 的将重写设置 OMP_NESTED 环境变量。

当启用,环境变量可以中断一否则操作的过程,因为线程数成指数增加,如果嵌套并行区域时。 例如递归 6 计时与 OMP 线程数设置为 4 的功能需要 4,096 (4 到 6 的次幂) 线程应用程序的性能会通常,会降低,如果线程的数量超出处理器的数目。 此操作的一个例外是 I/O 绑定应用程序。

使用 omp_get_nested 显示当前设置 omp_set_nested。

有关更多信息,请参见 3.1.9 omp_set_nested功能

示例

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

int main( ) 
{
    omp_set_nested(1);
    omp_set_num_threads(4);
    printf_s("%d\n", omp_get_nested( ));
    #pragma omp parallel
        #pragma omp master
        {
            printf_s("%d\n", omp_get_nested( ));
        }
}
  

请参见

概念

OpenMP功能