在运行时检测是否在C ++程序中使用了OPENMP

时间:2019-05-16 10:11:20

标签: c++ openmp

我想在运行时知道是否在启用OPENMP的情况下编译了C ++程序。 OPENMP 2.0有些事情无法轻松完成,因此我想用另一种机制来伪造它们。但是,如果代码是在禁用OPENMP的情况下编译的,那么我也想禁用其他机制,然后依次运行所有程序。

例如

if( isOpenMPEnabled() )
    runFakeParallelAlgorithm();
else
    runSequentialAlgorithm();

我该如何实施

bool isOpenMPEnabled()

我应该说我们正在使用OPENMP 2.0

1 个答案:

答案 0 :(得分:4)

如果将/ openmp标志传递给编译器,并且编译成功,则会添加预处理器指令,您可以在运行时检查该指令:

#if defined(_OPENMP)
   #pragma omp ...
#endif