首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenMP和sections

OpenMP和sections
EN

Stack Overflow用户
提问于 2012-11-18 13:34:07
回答 1查看 193关注 0票数 2

我有以下代码:

代码语言:javascript
复制
#pragma omp parallel sections num_threads(2) {
  #pragma omp section
   Function_1;
   #pragma omp section
   Function_2;
}

但是在Function_1和Function_2中,我有一个并行的,但只有一个线程运行它。那么,如何并行运行Function_1和Function_2,并在这些函数中运行多个线程呢?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-18 22:38:10

将一个parallel区域放在另一个区域中称为嵌套。默认情况下,嵌套区域是非活动的,这意味着它们是串行执行的。为了激活它们,您可以执行以下操作:

在封闭的true

  • insert区域之前,
  • 将环境变量OMP_NESTED设置为parallel以下调用的true
  • insert:omp_set_nested(1);

还可以通过以下方式限制嵌套并行工作的层数:

  • 将环境变量OMP_MAX_ACTIVE_LEVELS设置为num,或
  • 调用omp_set_max_active_levels(num);

其中num是所需的最大活动级别,例如,3值将使嵌套比parallel级别更深的所有3区域处于非活动状态。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13437782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档