Pular para o conteúdo principal

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

Arquitetura de ComputadoresProcessamento Paralelo
Código
fg085288
Banca
FGV
Órgão
INPE
Ano
2024
Nível
Superior
Cargo
Tecnologista Júnior I - Ambiente de Supercomputação e HPC (High-Performance Computing)
CUDA e MPI são duas tecnologias amplamente utilizadas em Computação de Alto Desempenho. Assinale a alternativa que apresenta a principal diferença entre CUDA e MPI.
  1. ACUDA e MPI são linguagens de programação concorrentes, cada uma projetada para tarefas específicas de processamento paralelo em GPUs e CPUs, respectivamente.
  2. BCUDA e MPI são ambas linguagens de programação para programação paralela, mas CUDA é específica para programação em GPUs, enquanto MPI é utilizada para comunicação entre processos em sistemas distribuídos.
  3. CCUDA e MPI são bibliotecas de comunicação, cada uma projetada para permitir a troca de dados entre processos em sistemas distribuídos, como clusters de computadores.
  4. DCUDA e MPI são abordagens alternativas para a programação paralela em CPUs, com CUDA focada em processamento gráfico e MPI em processamento de dados.
  5. ECUDA e MPI são tecnologias complementares, onde CUDA é utilizada para processamento paralelo em GPUs e MPI é utilizada para comunicação entre processos em sistemas distribuídos.
Revelar gabarito e comentário

GabaritoB — CUDA e MPI são ambas linguagens de programação para programação paralela, mas CUDA é específica para programação em GPUs, enquanto MPI é utilizada para comunicação entre processos em sistemas distribuídos.

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”.

CUDA e MPI: diferenças fundamentais

Gabarito: letra B. CUDA é uma plataforma de computação paralela e modelo de programação para GPUs (NVIDIA), permitindo que código execute em paralelo em milhares de núcleos. MPI (Message Passing Interface) é um padrão para comunicação entre processos em sistemas distribuídos (clusters, multicomputadores), onde os processos trocam mensagens. A alternativa B capta essa essência: ambos são linguagens/modelos para programação paralela, mas CUDA é voltada a GPUs, enquanto MPI é para comunicação entre processos em sistemas distribuídos.

A banca testa a compreensão básica do propósito de cada tecnologia. CUDA é específica para GPUs (processamento massivamente paralelo em um único dispositivo) e MPI é genérica para troca de mensagens em múltiplos nós/computadores.

Característica

CUDA

MPI

Foco

Aceleração em GPUs

Comunicação entre processos

Tipo

Modelo de programação paralela

Biblioteca/padrão de passagem de mensagens

Hardware alvo

GPU (específico NVIDIA)

Sistemas distribuídos (múltiplos nós)

CUDA
MPI
Tipo
Aceleração em GPUs
Comunicação entre processos
Foco
Modelo de programação paralela
Biblioteca/padrão de passagem de mensagens
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que CUDA e MPI são "linguagens concorrentes" e que CUDA é para GPUs e MPI para CPUs. Embora CUDA seja de fato para GPUs, MPI não é para CPUs – MPI é para comunicação entre processos, independentemente de onde eles rodam (CPU, GPU, etc.). Além disso, não são concorrentes; são complementares em muitos cenários (por exemplo, MPI para comunicação entre nós e CUDA para aceleração dentro de cada nó). O erro está em rotular MPI como uma linguagem para CPUs e em apresentá-las como concorrentes.

Alternativa B — ✅ Correta ⟵ GABARITO

Correta porque descreve com precisão: CUDA é uma linguagem/modelo para programação paralela em GPUs, enquanto MPI é um padrão para comunicação entre processos em sistemas distribuídos. A expressão "ambas linguagens de programação para programação paralela" é razoável (CUDA é uma extensão de linguagens, MPI é uma biblioteca de funções), e a distinção de domínio (GPU vs. comunicação distribuída) é a principal diferença cobrada.

Alternativa C — ❌ Incorreta

Afirma que ambas são "bibliotecas de comunicação" para sistemas distribuídos. Isso é falso para CUDA: CUDA não é uma biblioteca de comunicação, mas sim uma plataforma de computação paralela para GPUs. MPI, por sua vez, é de fato um padrão de comunicação, mas CUDA não. A alternativa inverte o propósito de CUDA.

Alternativa D — ❌ Incorreta

Diz que ambas são abordagens para programação paralela em CPUs, com CUDA focada em processamento gráfico e MPI em processamento de dados. O erro principal é afirmar que CUDA é para CPUs – na verdade, CUDA é exclusivamente para GPUs. Além disso, MPI não é especificamente para "processamento de dados", mas para comunicação entre processos em geral.

Alternativa E — ❌ Incorreta

Esta alternativa descreve corretamente cada tecnologia (CUDA para GPUs, MPI para comunicação), mas erra ao afirmar que elas são "complementares" como principal diferença. A questão pede a principal diferença entre elas, não a relação de complementaridade. Embora sejam de fato complementares, isso não é uma diferença; é uma característica de como podem ser usadas juntas. Portanto, foge ao que foi solicitado.

PEGA ESSA DICA!

Em questões de conceito, leia atentamente o que o enunciado pede. Aqui, o foco é a diferença – alternativas que descrevem corretamente as tecnologias mas não destacam a diferença podem estar incorretas.

Conclusão: A única alternativa que apresenta a principal diferença (GPU vs. comunicação distribuída) é a letra B.

Link permanente: /questoes/fg085288