OpenMP:并行部分是否超时?

时间:2015-06-03 13:13:18

标签: c++ parallel-processing timeout scheduled-tasks openmp

我在这里遇到OpenMP问题。有两个功能应并行执行。在foo()中,有一个循环将被stop中断。正如您所看到的那样,它是在另一个OMP部分中分配的。

代码是:

char stop;
#pragma omp parallel
{
    #pragma omp sections
    {
        #pragma omp section
        {
            foo(&stop);
        }
        #pragma omp section
        {
            bar();
            stop = getch();
        }
   }
}

void foo(char *foo) 
{
     while(*stop != 'q')
     {
        // do stuff
     }
}

现在当我执行该代码时会发生什么:它会卡在第一个(foo())部分。更具体地说,在给定的循环中 - 现在是一个无限循环,因为它永远不会切换到bar部分,所以永远不能调整中断条件。

现在,一个简单的方法是暂停foo()部分。我搜索了互联网,但无法找到任何适用的代码。

有人有想法吗?

感谢您的任何建议!

1 个答案:

答案 0 :(得分:1)

OpenMP:并行部分是否超时?

答案:不。

OpenMP没有超时。