gpt4 book ai didi

c++ - OpenMP:并行部分是否有超时?

转载 作者:行者123 更新时间:2023-11-30 05:42:30 25 4
gpt4 key购买 nike

我在使用 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() 部分超时。我在互联网上进行了搜索,但找不到任何适用的代码。

有人有想法吗?

感谢您的任何建议!

最佳答案

OpenMP:并行部分是否有超时?

回答:没有

OpenMP 没有超时。

关于c++ - OpenMP:并行部分是否有超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30621178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com