C++ 如何查找OpenMP单个块的内部或外部

C++ 如何查找OpenMP单个块的内部或外部,c++,openmp,C++,Openmp,有些代码不能真正并行运行:要么不在OpenMP并行区域内,要么在OpenMP单个块内。我怎么能断言代码不是真正并行运行的(暂时忽略嵌套并行所带来的复杂性)?我认为没有一种方法可以完全满足您的要求 但是,您可以使用“critical”构造来确保一个代码段一次只由一个线程执行,然后设置一些标志以防止它由另一个线程运行(如果它只运行一次)。对不起,但这显然不能回答我的问题。我会接受一个能够明确证明没有解决办法的答案。

有些代码不能真正并行运行:要么不在OpenMP并行区域内,要么在OpenMP单个块内。我怎么能断言代码不是真正并行运行的(暂时忽略嵌套并行所带来的复杂性)?

我认为没有一种方法可以完全满足您的要求


但是,您可以使用“critical”构造来确保一个代码段一次只由一个线程执行,然后设置一些标志以防止它由另一个线程运行(如果它只运行一次)。

对不起,但这显然不能回答我的问题。我会接受一个能够明确证明没有解决办法的答案。