Compartilhar via


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.