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 omp_set_nested funkcji.
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( ));
}
}