我安装了C ++和Fortran编译器并测试了(C ++)程序 (串行和并行版本)。
在没有启用$!omp
选项的情况下编译(并行化)代码时,Fortran中的应该在(默认)串行模式下编译代码
但是在C ++中我得到的错误就像
对$!omp id = omp_get_thread_num()
但是在Fortran中编译没有-fopenmp标志的代码时,它会忽略任何以r
开头的代码,如
cell
在C ++中是否有类似的选项?
答案 0 :(得分:2)
您可以使用_OPENMP定义保护C / C ++代码。这样,您可以避免在应用程序未链接到OpenMP运行时时引入对OpenMP运行时的调用。
例如,您可以拥有以下代码
void foo (void)
{
#ifdef _OPENMP
printf ("I have been compiled with OpenMP support\n");
#else
printf ("I have been compiled without OpenMP support\n");
#endif
}