si (OpenMP)
Especifica si un bucle se debe ejecutar en paralelo o en serie.
if(expression)
Comentarios
donde
- expression
Una expresión entera que, si se evalúa como true (cero), hace que el código de la región paralela para ejecutarse en paralelo.Si la expresión se evalúa en false (cero), la región paralela se ejecuta en serie (por un subproceso).
Comentarios
if se aplica a las siguientes directivas:
Para obtener más información, vea construcción paralela 2,3.
Ejemplo
// 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);
}