Condividi tramite


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);
}
  

Vedere anche

Riferimenti

Clausole di OpenMP