se (OpenMP)
Specifica se un ciclo deve essere eseguito in parallelo o in serie.
if(expression)
Note
dove:
- expression
Un'espressione integrale che, se restituisce true (diverso da zero, fa in modo che il codice nell'area parallela a eseguire in parallelo.Se l'espressione restituisce false (zero), area parallela viene eseguita in serie (da un singolo thread).
Note
if si applica alle direttive seguenti:
Per ulteriori informazioni, vedere costrutto parallelo 2,3.
Esempio
// 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);
}