Pular para o conteúdo principal

Questão de Arquitetura de Computadores — Processamento Paralelo — FGV 2024

Arquitetura de ComputadoresProcessamento Paralelo
Código
fg085315
Banca
FGV
Órgão
INPE
Ano
2024
Nível
Superior
Cargo
Tecnologista Júnior I - Ambiente de Supercomputação e HPC (High-Performance Computing)
No contexto das variáveis utilizadas em programação paralela com OpenMP, analise as afirmativas a seguir e assinale (V) para a verdadeira e (F) para a falsa.( ) A cláusula shared(list) especifica que cada variável da lista é compartilhada por todas threads do time, isso é, todas as threads compartilham uma mesma cópia da variável.( ) Por padrão, variáveis declaradas antes de um bloco paralelo são compartilhadas.( ) A cláusula private(list) especifica que cada variável da lista é privada por todas threads do time, isso é, cada thread tem sua própria cópia da variável.( ) Por padrão, variáveis declaradas dentro de um bloco paralelo são privadas.As afirmativas são, respectivamente,
  1. AV – V – V – V.
  2. BF – V – F – V.
  3. CV – F – V – F.
  4. DV – V – F – V.
  5. EF – F – F – F.
Revelar gabarito e comentário

GabaritoA — V – V – V – V.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

OpenMP: escopo de variáveis em paralelismo

Gabarito: letra A. Todas as quatro afirmativas estão corretas: o comportamento das cláusulas shared e private e as regras padrão de escopo no OpenMP são exatamente como descrito. A sequência é V – V – V – V.

O OpenMP (Open Multi-Processing) é uma API para programação paralela em memória compartilhada. O escopo das variáveis em regiões paralelas é controlado por cláusulas como shared e private, e por regras default.

Afirmativa

Descrição

Valor Verdade

1

A cláusula shared(list) especifica que cada variável da lista é compartilhada por todas threads do time, ou seja, todas as threads compartilham uma mesma cópia da variável.

V

2

Por padrão, variáveis declaradas antes de um bloco paralelo são compartilhadas.

V

3

A cláusula private(list) especifica que cada variável da lista é privada por todas threads do time, ou seja, cada thread tem sua própria cópia da variável.

V

4

Por padrão, variáveis declaradas dentro de um bloco paralelo são privadas.

V

Afirmativa 1 — ✅ Verdadeira

A cláusula shared(list) faz com que cada variável da lista seja compartilhada entre todas as threads do time. Todas as threads acessam a mesma cópia da variável. A descrição está correta.

Afirmativa 2 — ✅ Verdadeira

Por padrão no OpenMP, variáveis declaradas antes de um bloco paralelo (fora do escopo da região paralela) são compartilhadas entre as threads. Isso significa que todas as threads veem a mesma variável. A afirmativa está correta.

Afirmativa 3 — ✅ Verdadeira

A cláusula private(list) cria uma cópia privada de cada variável listada para cada thread. Cada thread tem sua própria cópia, não compartilhada com as demais. A afirmativa descreve corretamente esse comportamento.

Afirmativa 4 — ✅ Verdadeira

Variáveis declaradas dentro de um bloco paralelo (dentro da região #pragma omp parallel) são, por padrão, privadas. Cada thread tem sua própria instância dessas variáveis. A afirmativa está correta.

Análise das alternativas

  • Alternativa A — ✅ V – V – V – V (Correta)GABARITO

    Corresponde exatamente à sequência verdadeira.

  • Alternativa B — ❌ F – V – F – V

    Erro na primeira e terceira afirmativas: ambas são verdadeiras, não falsas.

  • Alternativa C — ❌ V – F – V – F

    Erro na segunda e quarta afirmativas: ambas são verdadeiras.

  • Alternativa D — ❌ V – V – F – V

    Erro na terceira afirmativa: ela é verdadeira.

  • Alternativa E — ❌ F – F – F – F

    Todas as afirmativas são verdadeiras, não falsas.

PEGA ESSA DICA!

No OpenMP, lembre-se: variáveis declaradas antes do bloco parallel são shared por default; variáveis declaradas dentro do bloco são private. As cláusulas shared e private permitem modificar esse comportamento. Essa regra é fundamental para evitar condições de corrida e garantir corretude em programas paralelos.

Link permanente: /questoes/fg085315