我想在运行时知道是否在启用OPENMP的情况下编译了C ++程序。 OPENMP 2.0有些事情无法轻松完成,因此我想用另一种机制来伪造它们。但是,如果代码是在禁用OPENMP的情况下编译的,那么我也想禁用其他机制,然后依次运行所有程序。
例如
if( isOpenMPEnabled() )
runFakeParallelAlgorithm();
else
runSequentialAlgorithm();
我该如何实施
bool isOpenMPEnabled()
我应该说我们正在使用OPENMP 2.0
答案 0 :(得分:4)
如果将/ openmp标志传递给编译器,并且编译成功,则会添加预处理器指令,您可以在运行时检查该指令:
#if defined(_OPENMP)
#pragma omp ...
#endif