我有内置OpenMP pragma的C++代码.我想测试这个代码的多线程模式(使用OpenMP)和单线程模式(没有OpenMP).
现在,要在模式之间切换,我需要评论#pragma omp
(或至少parallel
).
启用/禁用OpenMP的最简洁或最默认的方法是什么?
sna*_*erk 28
如果不使用-fopenmp选项进行编译,则不会获得并行代码.您可以使用适当的define和makefile来生成所有代码.
OpenMP文档说(仅举例):
#ifdef _OPENMP
#include <omp.h>
#else
#define omp_get_thread_num() 0
#endif
Run Code Online (Sandbox Code Playgroud)
请参阅http://www.openmp.org/mp-documents/spec30.pdf(条件编译).
jan*_*neb 14
查看禁用OpenMP的交换机的编译器手册.对于GCC,默认情况下禁用OpenMP并使用-fopenmp选项启用.
另一种选择是在OMP_NUM_THREADS环境变量设置为1的情况下运行代码,尽管这与首先没有OpenMP的编译不完全相同.
归档时间: |
|
查看次数: |
13905 次 |
最近记录: |