3.1.9 omp_set_nested功能
omp_set_nested 功能启用或禁用嵌套并行。 格式如下所示:
#include <omp.h>
void omp_set_nested(int nested);
如果 嵌套 的计算结果为 0,嵌套并行禁用,它是默认值,,并且当前线程序列化嵌套并行区域并执行。 嵌套 的计算结果为非零值,嵌套并行有效,并且,嵌套并行区域可以部署其他线程以形成嵌套团队。
该函数具有中描述的效果顶部,在调用从 omp_in_parallel 函数返回零程序的一部分。 如果从 omp_in_parallel 函数返回非零值程序的一部分调用,此功能的行为未定义。
这称为在 OMP_NESTED 环境变量的优先级。
当嵌套并行启用时,用于执行的线程的数目嵌套并行区域实现中定义。 因此,,即使嵌套并行启用, OpenMP 兼容实现允许序列化嵌套并行区域。