si OpenMP ()
Spécifie si une boucle doit être exécutée en parallèle ou dans l'interface série.
if(expression)
Notes
où,
- expression
Une expression complète qui, si elle prend la valeur true (différent de zéro), fait pour exécuter du code dans une région parallèle en parallèle.Si l'expression a la valeur false (zéro), la région parallèle est exécutée dans l'interface série (par un thread unique).
Notes
if s'applique aux directives suivantes :
Pour plus d'informations, consultez élément 2,3 parallèle.
Exemple
// 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);
}