Valor: 2,5 Pontos.
Data de Entrega: 04/08/2020.
Nesta atividade vamos exercitar os fundamentos do OpenMP e paralelização de laços. Mas antes precisamos definir algumas regras.
Crie um repositório no GitHub. Se seu nome for José Carlos Silva, o repositório deve ter o nome josecarlosparalela20201. Primeiro e segundo nome, sufixo paralela20201.
No repositório criado, crie um diretório chamado atividades e dentro dele um subdiretório chamado atividade01. É nele que você irá colocar os arquivos desta atividade. Na futura Atividade 02, criaremos o subdiretório atividade02. Obedeça o formato, usando minúsculas e evitando espaços ou outros separadores.
Você irá criar o arquivo mtxMul.c na pasta atividades/atividade01. Ele deve conter, inicialmente, a função:
double **mtxMul(double **c, double **a, double **b, int n) {
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++)
c[i][j] = c[i][j] + a[i][k] * b[k][j];
}
return c;
}
Esta é a versão serial da multiplicação de matrizes. Antes deste código funcionar, você deve:
time ./maxMultSerial 2000
time ./maxMultParallelNoCollapse 2000
time ./maxMultParallel2Collapse 2000
Anote os resultados dos tempos de execução na sua máquina no arquivo results.txt, um valor por linha, e coloque na mesma pasta atividades/atividade01. No começo do arquivo, coloque em uma linha iniciada por # (como se fosse um comentário em Python), o modelo do seu processador e a quantidade de memória RAM instalada. Exemplo para o results.txt:
# Core i5 7200U 16 GB
0m0.000s
0m0.000s
0m0.000s