Atividade 12
Leia com atenção as instruções abaixo.
Valor: 2,0 pontos na 3ª Nota.
Data da Entrega Limite: 16/07/2022
Formato de Entrega:
- Um arquivo chamado atv12_reducao_broadcast.c ou atv12_reducao_broadcast.c.
A entrega deve ser feita via chat privado no Slack.
A atividade é individual.
Questão 01 - 2,0 Pontos
Considere apenas as chamadas ponto a ponto, send e recv, nas suas versões bloqueantes ou não bloqueantes. Você deve desenvolver um programa MPI que realize as seguintes etapas:
- Cada processo deve gerar um número aleatório entre 0 e 1000.
- Cada processo deve imprimir uma mensagem indicando o número do processo e o número gerado.
- Todos os números gerados pelos processos devem ser somados. Isso seria equivalente a uma redução.
- O valor resultante da soma deve ser transmitido para todos os processos. Isso seria equivalente a um broadcast.
- Cada processo deve imprimir uma mensagem indicando o número do processo e a soma resultante.
Operação coletiva all_reduce realizaria as etapas acima, mas nem ela e nem a reduce e a broadcast podem ser utilizadas. Teste com vários processos para garantir que não há deadlock. Como é pouca computação, você pode tentar até com mais do que 16 processos sem sobrecarregar a máquina.