FC ConcursosFC Concursos

Questão FC405962

OpenMP (Open Multi-Processing) é uma API (Interface de Programação de Aplicações) de programação para a criação de aplicações paralelas em sistemas com múltiplos processadores ou n

Questões sem classificação de assunto (TI - Engenharia de Software)

FGV · 2024

OpenMP (Open Multi-Processing) é uma API (Interface de Programação de Aplicações) de programação para a criação de aplicações paralelas em sistemas com múltiplos processadores ou núcleos de processamento.

 

Assinale a opção que descreve corretamente o OpenMP e suas características.

  1. OpenMP oferece várias opções de controle de paralelismo, permitindo que os desenvolvedores ajustem o comportamento do programa de acordo com suas necessidades. Isso inclui a possibilidade de definir o número de threads a serem usados, controlar a divisão do trabalho entre os threads e sincronizar a execução paralela.
  2. OpenMP é uma biblioteca que permite a execução de threads em espaços de memória separados, enquanto processos são executados em um espaço de memória compartilhado. Threads são um recurso do ambiente operacional, e a CPU normalmente possui operações que tornam os threads eficientes.
  3. OpenMP é sinônimo de threads e pode ser usado indistintamente. Ambos referem-se à execução de código em um computador.
  4. OpenMP é uma abstração teórica sem aplicação prática, enquanto threads são unidades de execução de código em um computador.
  5. OpenMP é uma biblioteca que oferece várias opções de controle de paralelismo, mas não permite ajustar o número de threads ou sincronizar a execução paralela.
Mostrar resposta e comentário

Gabarito

A

Comentário do professor

OpenMP é uma API que fornece mecanismos para controlar o paralelismo em aplicações compartilhadas, permitindo ao desenvolvedor ajustar comportamento e desempenho conforme a necessidade.

É possível definir explicitamente o número de threads via variável de ambiente OMP_NUM_THREADS ou pela função omp_set_num_threads, influenciando a largura do paralelismo.

O balanceamento de trabalho entre threads é controlado por cláusulas como schedule (ex.: static, dynamic, guided) em diretivas como #pragma omp for, permitindo distribuir iterações conforme carga.

Para sincronização e correção, OpenMP oferece primitivas como barrier, seções critical, atomic e cláusulas de reduction, evitando condições de corrida e agregando resultados.

Esses controles tornam o modelo flexível: o mesmo código pode ser ajustado em tempo de compilação ou execução para otimizar uso de recursos e escalabilidade.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo