Questão de Arquitetura de Computadores — Processamento Paralelo — FGV 2024
Arquitetura de Computadores›Processamento 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,
AV – V – V – V.
BF – V – F – V.
CV – F – V – F.
DV – V – F – V.
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.