我想在运行时知道 C++ 程序是否在启用 OPENMP 的情况下编译。有些事情 OPENMP 2.0 不能轻易做到,所以我想用另一种机制来伪造它们。但是,如果代码是在禁用 OPENMP 的情况下编译的,那么我还想禁用我的其他机制并串行运行所有内容。
例如
if( isOpenMPEnabled() )
runFakeParallelAlgorithm();
else
runSequentialAlgorithm();
我该如何实现
bool isOpenMPEnabled()
我应该说我们使用的是 OPENMP 2.0
最佳答案
如果/openmp 标志被传递给编译器并且编译成功,将添加一个预处理器指令,您可以使用它在运行时检查它:
#if defined(_OPENMP)
#pragma omp ...
#endif
关于c++ - 在运行时检测 OPENMP 是否正在 C++ 程序中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56166109/