Cálculos numéricos usam arrays para representar vetores, matrizes e tensores. As operações distribuídas comuns em torno de arrays podem ser encontrados na especificação Message Passing Interface (MPI). Assinale a opção que não figura como uma das operações MPI.
- A)Broadcast: transmite um array de um processo para muitos outros processos.
Correta: Broadcast é uma operação coletiva real da MPI, usada para enviar os mesmos dados de um processo para todos os outros.
- B)Gather/AllGather: coleta arrays de diferentes processos e cria um array maior em um único processo ou em vários processos.
Correta: Gather e AllGather existem na MPI e servem para coletar dados distribuídos em um processo ou em todos os processos.
- C)Expand/OneToAll: distribui arrays para diferentes processos.
Errada: Expand/OneToAll não é uma operação padrão da MPI; a nomenclatura correta nessas situações costuma ser Broadcast.
- D)Scatter/AllToAll: redistribui partes de um array para diferentes processos.
Correta: Scatter e AllToAll são operações coletivas reais e fazem redistribuição de partes de arrays entre processos.
- E)Reduce/AllReduce: redução de arrays elemento a elemento. Operações populares incluem SUM, MIN, MAX, PROD.
Correta: Reduce e AllReduce existem na MPI e aplicam operações elementares como soma, mínimo, máximo e produto.
Gabarito: C
Em MPI, voce encontra várias operações coletivas para distribuir e juntar dados entre processos. Elas aparecem o tempo todo em cálculos com arrays, vetores e matrizes, porque ajudam a mover blocos de dados sem precisar fazer envio individual processo por processo, o que seria bem mais lento e cansativo. As operações clássicas incluem Broadcast, que pega um dado de um processo e manda para todos; Scatter, que divide um array em partes e distribui; Gather, que faz o caminho inverso e junta as partes; e Reduce, que combina valores com uma operação como soma, mínimo ou máximo. Também existem versões "All", como AllGather e AllReduce, que entregam o resultado para todos os processos. A questão explora justamente esse repertório padrão da MPI. O nome "Expand/OneToAll" não é uma operação coletiva definida na especificação MPI como as demais listadas. Em prova, isso costuma aparecer como troca de nome: a banca inventa um termo com cara de MPI para ver se você reconhece o vocabulário verdadeiro. Então o gabarito é a letra C, porque ela traz uma operação que não figura entre as primitivas conhecidas da MPI. Já as demais correspondem a operações reais e muito usadas em programação paralela, especialmente em HPC e clusters.