omp_set_nested

Włącza równoległości zagnieżdżone.

void omp_set_nested(
   int val
);

Uwagi

w przypadku gdy

  • val
    Jeśli jest różna od zera, umożliwia równoległości zagnieżdżone.Jeśli zero, wyłącza równoległości zagnieżdżone.

Uwagi

Zagnieżdżone OMP równoległości mogą być włączane z omp_set_nested, lub przez ustawienie OMP_NESTED zmiennej środowiskowej.

Ustawienie dla omp_set_nested spowoduje zastąpienie ustawienia z OMP_NESTED zmiennej środowiskowej.

Po włączeniu zmiennej środowiskowej można podzielić programu operacyjnego inaczej, ponieważ liczba wątków wzrasta wykładniczo, gdy zagnieżdżanie równoległych regionów.Na przykład funkcja, że recurses z 6 razy liczba wątków OMP, ustaw wartość 4 wymaga równa 4 096 (4-moc 6) wątki w ogóle, zmniejszy wydajność aplikacji, jeśli liczba wątków przekracza liczbę procesorów.Jedynym wyjątkiem byłyby wejścia/wyjścia.

Użyj omp_get_nested , aby wyświetlić bieżące ustawienie z omp_set_nested.

Aby uzyskać więcej informacji, zobacz 3.1.9 Funkcja omp_set_nested.

Przykład

// omp_set_nested.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>

int main( ) 
{
    omp_set_nested(1);
    omp_set_num_threads(4);
    printf_s("%d\n", omp_get_nested( ));
    #pragma omp parallel
        #pragma omp master
        {
            printf_s("%d\n", omp_get_nested( ));
        }
}
  

Zobacz też

Koncepcje

OpenMP — Funkcje