完成后将openmp线程返回到单线程

时间:2017-08-04 17:26:08

标签: c macos openmp

我使用openmp来平行我的C代码中的特定区域:

#pragma omp parallel private()
{

...

}

当我检查过程时(通过Mac OS X中的Activity Monitor),我注意到退出#pragma块后线程数不会返回到1。完成后,我是否需要编写一些内容以使进程返回到单个线程?

1 个答案:

答案 0 :(得分:3)

大多数OpenMP实现都使用线程池。线程不会被破坏,而是在需要它们的新并行区域时进入休眠状态并唤醒。这样做是为了提高效率,例如,减少创建新并行区域的开销,以及符合关于线程私有变量的生命周期和可访问性的OpenMP规范。