omp_set_nested
Habilita o paralelismo aninhado.
void omp_set_nested(
int val
);
Comentários
onde,
- val
Se for diferente de zero, permite o paralelismo aninhado.Se for zero, desativa o paralelismo aninhado.
Comentários
OMP aninhado paralelismo pode ser ativado com omp_set_nested, ou definindo a OMP_NESTED variável de ambiente.
A configuração para omp_set_nested cancelará a definição da OMP_NESTED variável de ambiente.
Quando ativada, a variável de ambiente pode quebrar um programa de outra forma operacional porque o número de threads aumenta exponencialmente quando regiões paralelas de aninhamento.Por exemplo, uma função que recurses 6 vezes com o número de segmentos do OMP definido como 4 requer 4.096 (4 à potência de 6) segmentos em geral, degrada o desempenho do seu aplicativo se o número de segmento excede o número de processadores.Uma exceção a isso seria que aplicativos ligados de i/O.
Use omp_get_nested para exibir a configuração atual da omp_set_nested.
Para obter mais informações, consulte 3.1.9 omp_set_nested função.
Exemplo
// 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( ));
}
}