小编Art*_*hur的帖子

OpenMP:有条件地使用#pragma

我正在使用OpenMP来提高循环上的程序效率.

但最近我发现在小循环上使用这个库降低了性能,并且使用正常方式更好.

事实上,我只想在满足条件的情况下使用openMP,我的代码是

#pragma omp parallel for
 for (unsigned i = 0; i < size; ++i)
   do_some_stuff ();
Run Code Online (Sandbox Code Playgroud)

但我想要做的是在大小足够小的情况下禁用#pragma ,即:

if (size > OMP_MIN_VALUE)
  #pragma omp parallel for
for (unsigned i = 0; i < size; ++i)
do_some_stuff ();
Run Code Online (Sandbox Code Playgroud)

但是不起作用,更好的方法是编写循环两次,但我不想那样做...

if (size > OMP_MIN_VALUE)
{
  #pragma omp parallel for
  for (unsigned i = 0; i < size; ++i)
    do_some_stuff ();
}
else
{
  for (unsigned i = 0; i < size; ++i)
    do_some_stuff ();
}
Run Code Online (Sandbox Code Playgroud)

有什么更好的方法呢?

c++ pragma openmp

12
推荐指数
1
解决办法
2630
查看次数

标签 统计

c++ ×1

openmp ×1

pragma ×1