在多个独立线程中使用openmp并行循环

时间:2014-09-23 22:05:01

标签: multithreading parallel-processing task openmp

我在多个独立线程中有#pragma omp parallel for,但我不确定这些并行区域是否可以同时并发运行。

将那些常规线程更改为omp任务区域会很不方便。

那么可以同时在两个独立的线程中执行两个OpenMP并行区域,或者一次只能运行一个区域吗?

实施例

void f1()// executed in thread 1  
{  
#pragma omp parallel for  
for(...)  
    {/*do something*/}  
}  
void f2()//executed in thread 2  
{  
#pragma omp parallel for  
for(...)  
    {/*do something else*/}  
}    

所以我的问题是:f1()f2()中的并行循环是否同时运行,其总线程数是OpenMP用于一个并行区域的两倍,或者它将运行一次只有一个并行块,另一个将等待信号量?

0 个答案:

没有答案