3.1.7 função omp_set_dynamic
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.