Para desenvolver Aula Prática Arquiteturas Paralelas e Distribuídas, comece identificando os objetivos e as entregas solicitadas no roteiro. A seguir, veja os pontos presentes na descrição desta atividade e organize teu relatório de acordo com as orientações do curso.

O que é esta aula prática?
Antes de começar, leia a apresentação e identifique o tema, a unidade e o formato pedido.
Programação paralela aplicada à multiplicação de matrizes.
OpenMP: diretivas de loop paralelos e modelo fork-join.
Implementação em C/C++ e uso de rand() para gerar entradas.
Divisão de trabalho entre threads e combinação de resultados parciais.
Avaliação funcional para diferentes tamanhos N x N e entrega do código fonte.
Objetivos e conhecimentos trabalhados
Use os objetivos do roteiro para definir o que a atividade precisa demonstrar.
Desenvolver o conhecimento e a habilidade para a aplicar os conceitos da programação distribuídas utilizando o OpenMP.
Laboratório de Computação Materiais de consumo:
Quantid. de materiais por procedimento/atividade Computador 01
Sim ( X ) Não ( ) Em caso afirmativo, qual?
Pago ( ) Não Pago ( X ) OpenMP Tipo de Licença: Gratuita.
Descrição do software: OpenMP (Open Multi-Processing) é uma API de programação paralela para a execução em sistemas com arquiteturas de múltiplos processadores ou múltiplos núcleos de processamento. Permite acrescentar simultaneidade aos programas escritos em C, C++ e Fortran sobre a base do modelo de execução fork-join.
Equipamento de Proteção Individual (EPI): NSA.
Como desenvolver a atividade passo a passo
Execute cada etapa na ordem indicada e registre o que foi feito para depois explicar o processo no relatório.
Esta atividade prática, vinculada à disciplina Arquiteturas Paralelas e Distribuídas (Unidade 3, Seção 3.3), propõe a implementação de um programa em C/C++ que explora a API OpenMP para executar cálculo paralelo de produtos matriciais. Realizada em laboratório de computação, a prática visa aplicar conceitos de programação paralela em um exemplo concreto: multiplicação de duas matrizes quadradas N x N preenchidas com valores aleatórios.
O roteiro orienta a divisão do trabalho entre threads por meio das diretivas de loop do OpenMP, a combinação dos resultados parciais para obter a matriz resultante e a apresentação dessa matriz ao final. A atividade também recomenda avaliar o desempenho e a correção usando diferentes tamanhos de matrizes e utilizar a função rand() para povoar os arrays. Infraestrutura e materiais citados incluem computador, software OpenMP (licença gratuita) e Equipamento de Proteção Individual (EPI: NSA).
O que é desenvolvido nesta atividade Desenvolvimento de conhecimento e habilidade para aplicar conceitos de programação paralela usando OpenMP: definir duas matrizes N x N, preencher com valores aleatórios, paralelizar loops de multiplicação com diretivas OpenMP, combinar os resultados parciais gerados por threads e apresentar a matriz resultante. Espera-se a entrega do código fonte com a solução do problema proposto, implementada em C ou C++ e testada para diferentes tamanhos de matriz.
NOME DA DISCIPLINA: Arquiteturas Paralelas e Distribuídas
PROCEDIMENTOS PRÁTICOS Procedimento/Atividade Nº 1
Atividade proposta: Desenvolva um programa em C/C++ que utilize a biblioteca OpenMP para realizar o cálculo paralelo de produtos matriciais.
Procedimentos para a realização da atividade: O programa deve seguir as seguintes etapas:
• Defina duas matrizes quadradas de tamanho N x N, sendo N um valor predeterminado.
• Preencha as matrizes com valores aleatórios.
• Divida o trabalho entre as threads que estão disponíveis usando a diretiva de loop paralelo do OpenMP.
• Usando a diretiva do OpenMP adequada, realize o cálculo paralelo dos produtos matriciais.
• Para obter a matriz resultante, combine os resultados parciais das threads.
• Apresente a matriz resultante. Algumas dicas sobre a implementação:
• Use a biblioteca OpenMP para criar loops paralelos e implementar o cálculo de produtos matriciais em paralelo.
• Utilize as diretrizes do OpenMP para dividir o trabalho entre as threads e combinar os resultados parciais.
• Avalie o programa utilizando diferentes tamanhos de matrizes e verifique se os resultados apresentados estão de acordo.
• Utilize a função rand() para preencher as matrizes com valores aleatórios.
Checklist: Ao final da atividade o aluno deverá saber princípios da programação paralela e entender como ela ocorre.
Resultados e organização do relatório
Apresente o que foi obtido e relacione os resultados com os objetivos da atividade.
É esperado que o aluno ao término da prática consiga utilizar a programação paralela com a ferramenta proposta. Deve ser entregue o código com a solução do problema proposto.
O seu trabalho é disponibilizado pronto, respondido e nas normas já na mesma hora aqui em nosso site na sua área de downloads e também no seu e-mail.
Portfólio em Word, respondido, completo e já nas normas
Se estiver acessando pelo computador, escaneie o QR Code abaixo com a câmera do celular para abrir nosso atendimento no WhatsApp.
Como estruturar o relatório
Organize a entrega em identificação da atividade, objetivos, recursos utilizados, descrição dos procedimentos, registros dos resultados e conclusão. Ajuste essa sequência ao modelo exigido pela instituição e inclua apenas observações e evidências obtidas durante a tua própria execução.
Checklist antes de entregar
- Conferir se todos os objetivos do roteiro foram contemplados.
- Descrever os procedimentos na ordem em que foram realizados.
- Inserir registros, imagens ou arquivos quando a atividade solicitar.
- Relacionar os resultados com as tarefas e revisar o formato de entrega exigido.