11
私はOpenMPを使ってプログラムの効率を改善しています。OpenMP:#pragmaの条件付き使用
最近、私は小さなループでこのライブラリの使用がパフォーマンスを低下させ、通常の方法を使用する方が良いことを発見しました。条件が満たされた場合にのみ
実際には、私は、OpenMPを使用したいのですが、私のコードは
#pragma omp parallel for
for (unsigned i = 0; i < size; ++i)
do_some_stuff();
ですが、私は何をしたいサイズが十分に小さい場合に#pragmaを無効にすることですすなわち:
if (size > OMP_MIN_VALUE)
#pragma omp parallel for
for (unsigned i = 0; i < size; ++i)
do_some_stuff();
しかし、動作しない、より良い方法は、二回のループを書くことですが、私はそのようにしたくない...
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();
}
これを行うにはどうすればよいですか?
if(size> = OMP_MIN_VALUE)には#pragma omp parallelを使用しましたが、 – Arthur