if (OpenMP)
ループを並列でもシリアル実行するかどうかを指定します。
if(expression)
解説
指定項目
- expression
true に評価される場合 (以外)並列領域でコードが並列実行に必要な式。式が FALSE と評価された場合 (ゼロ)並列領域ではシリアル実行されます (シングル スレッドによって)。
解説
if は次のディレクティブに対象 :
詳細については、「2.3 parallel コンストラクト」を参照してください。
使用例
// omp_if.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>
void test(int val)
{
#pragma omp parallel if (val)
if (omp_in_parallel())
{
#pragma omp single
printf_s("val = %d, parallelized with %d threads\n",
val, omp_get_num_threads());
}
else
{
printf_s("val = %d, serialized\n", val);
}
}
int main( )
{
omp_set_num_threads(2);
test(0);
test(2);
}