3.1.7 omp_set_dynamic função
O omp_set_dynamic função ativa ou desativa o ajuste dinâmico do número de threads disponíveis para a execução de regiões paralelas.O formato é o seguinte:
#include <omp.h>
void omp_set_dynamic(int dynamic_threads);
Se dynamic_threads for avaliada como um valor diferente de zero, o número de segmentos que são usados para a execução de regiões paralelas subseqüentes pode ser ajustado automaticamente pelo ambiente de tempo de execução para melhor utilizar os recursos do sistema.Como conseqüência, o número de segmentos especificado pelo usuário é a contagem máxima de segmentos.O número de threads na equipe de execução de uma região paralela permanece fixo para a duração da região paralela e for reportado pela omp_get_num_threads função.
Se dynamic_threads for avaliada como 0, o ajuste dinâmico está desabilitado.
Esta função tem os efeitos descritos acima, quando chamado a partir de uma parte do programa em que o omp_in_parallel função retorna zero.Se ela é chamada a partir de uma parte do programa em que o omp_in_parallel função retorna um valor diferente de zero, o comportamento desta função é indefinido.
Uma chamada para omp_set_dynamic tem precedência sobre o OMP_DYNAMIC variável de ambiente.
O padrão para o ajuste dinâmico de segmentos é definidos na implementação.Como resultado, os códigos de usuário que dependem de um número específico de threads para execução correta devem explicitamente desativar threads dinâmicos.Implementações não são necessárias para fornecer a capacidade de ajustar dinamicamente o número de segmentos, mas eles são necessários para fornecer a interface para oferecer suporte a portabilidade em todas as plataformas.
Entre as referências:
omp_get_num_threads funcionam, consulte seção 3.1.2 na página 37.
OMP_DYNAMIC consulte variável, do ambiente seção 4.3 na página 49.
omp_in_parallel funcionam, consulte seção 3.1.6 na página 38.