Questão de Arquitetura de Computadores — Processamento Paralelo — FGV 2024
Arquitetura de Computadores›Processamento Paralelo
Código
fg085312
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 da programação paralela com OpenMP, as variáveis declaradas fora de um bloco paralelo são compartilhadas automaticamente, enquanto as variáveis declaradas dentro de um bloco paralelo são tratadas como privadas por padrão. Também existe a possiblidade de uso de cláusulas adequadas para garantir o correto compartilhamento ou privacidade das variáveis entre as threads paralelas.A esse respeito, analise as afirmativas a seguir e assinale (V) para 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 é, cada thread tem sua própria cópia da variável.( ) A cláusula firstprivate(list) especifica que cada variável da lista é privada por todas threads do time, mas são inicializadas com o valor que continha no momento em que a região paralela foi encontrada.( ) A cláusula private(list) especifica que cada variável da lista é privada por todas threads do time, isso é, todas as threads compartilham uma mesma cópia da variável.As afirmativas são, respectivamente,
AV – V – V.
BF – F – F.
CV – V – F.
DF – V – F.
EV – F – V.
Revelar gabarito e comentário▾
GabaritoD — F – V – F.
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”.
Cláusulas OpenMP: shared, private, firstprivate
Gabarito: letra D (F – V – F). A primeira e a terceira afirmativas invertem o significado das cláusulas shared e private, enquanto a segunda descreve corretamente a cláusula firstprivate. A sequência correta é Falsa, Verdadeira, Falsa.
A banca testa o conhecimento das cláusulas de compartilhamento de variáveis no OpenMP. A pegadinha típica é trocar o efeito de shared (cópia única compartilhada) com private (cópia privada por thread).
Primeira afirmativa — ❌ Falsa
"A cláusula shared(list) especifica que cada variável da lista é compartilhada por todas threads do time, isso é, cada thread tem sua própria cópia da variável."
A definição está errada. shared significa que todas as threads compartilham a mesma única cópia da variável, não cada uma com a sua. A descrição de "cada thread tem sua própria cópia" corresponde à cláusula private.
Segunda afirmativa — ✅ Verdadeira
"A cláusula firstprivate(list) especifica que cada variável da lista é privada por todas threads do time, mas são inicializadas com o valor que continha no momento em que a região paralela foi encontrada."
Correto. firstprivate combina privacidade (cada thread tem sua cópia) com inicialização a partir do valor da thread mestre antes da região paralela.
Terceira afirmativa — ❌ Falsa
"A cláusula private(list) especifica que cada variável da lista é privada por todas threads do time, isso é, todas as threads compartilham uma mesma cópia da variável."
Erro similar ao da primeira. private cria uma cópia privada para cada thread (não compartilhada). A frase "compartilham uma mesma cópia" descreve shared, não private.
Afirmativa
Conteúdo
Julgamento
1ª
shared: cada thread tem sua própria cópia
❌ Falsa (shared é cópia única)
2ª
firstprivate: privada e inicializada com valor anterior
✅ Verdadeira
3ª
private: todas threads compartilham mesma cópia
❌ Falsa (private é cópia privada)
shared
private
Cópia por thread
Correto
Errado (é private)
Cópia única
Errado (é shared)
Correto
LEVEL · soulevel.com.br
NÃO CAIA NESSA!
A banca troca os efeitos de shared e private. Lembre-se: shared = uma só cópia para todos; private = cada thread tem a sua própria cópia (não inicializada). firstprivate = private + inicializada.